mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-19 14:54:24 +01:00
41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
# MCP Simple StreamableHttp Stateless Server Example
|
|
|
|
A stateless MCP server example demonstrating the StreamableHttp transport without maintaining session state. This example is ideal for understanding how to deploy MCP servers in multi-node environments where requests can be routed to any instance.
|
|
|
|
## Features
|
|
|
|
- Uses the StreamableHTTP transport in stateless mode (mcp_session_id=None)
|
|
- Each request creates a new ephemeral connection
|
|
- No session state maintained between requests
|
|
- Task lifecycle scoped to individual requests
|
|
- Suitable for deployment in multi-node environments
|
|
|
|
|
|
## Usage
|
|
|
|
Start the server:
|
|
|
|
```bash
|
|
# Using default port 3000
|
|
uv run mcp-simple-streamablehttp-stateless
|
|
|
|
# Using custom port
|
|
uv run mcp-simple-streamablehttp-stateless --port 3000
|
|
|
|
# Custom logging level
|
|
uv run mcp-simple-streamablehttp-stateless --log-level DEBUG
|
|
|
|
# Enable JSON responses instead of SSE streams
|
|
uv run mcp-simple-streamablehttp-stateless --json-response
|
|
```
|
|
|
|
The server exposes a tool named "start-notification-stream" that accepts three arguments:
|
|
|
|
- `interval`: Time between notifications in seconds (e.g., 1.0)
|
|
- `count`: Number of notifications to send (e.g., 5)
|
|
- `caller`: Identifier string for the caller
|
|
|
|
|
|
## Client
|
|
|
|
You can connect to this server using an HTTP client. For now, only the TypeScript SDK has streamable HTTP client examples, or you can use [Inspector](https://github.com/modelcontextprotocol/inspector) for testing. |