b42d5cd5fe
Convert the repository into a uv workspace mirroring pydantic/httpx2. The root pyproject becomes a pure coordinator (package = false) and the two distributable packages live nested under src/<pkg>/<pkg>/ each with their own pyproject: - src/mcp/mcp/ -> mcp - src/mcp-types/mcp_types/ -> mcp-types (import mcp_types) The protocol types (_types.py, jsonrpc.py) move into mcp_types, which only depends on pydantic and typing-extensions. mcp depends on mcp-types via uv-dynamic-versioning, so installing mcp still pulls the types in. The mcp.types module path is removed; all imports now use mcp_types. The curated re-exports on the top-level mcp package are unchanged.
Simple Task Server
A minimal MCP server demonstrating the experimental tasks feature over streamable HTTP.
Running
cd examples/servers/simple-task
uv run mcp-simple-task
The server starts on http://localhost:8000/mcp by default. Use --port to change.
What it does
This server exposes a single tool long_running_task that:
- Must be called as a task (with
taskmetadata in the request) - Takes ~3 seconds to complete
- Sends status updates during execution
- Returns a result when complete
Usage with the client
In one terminal, start the server:
cd examples/servers/simple-task
uv run mcp-simple-task
In another terminal, run the client:
cd examples/clients/simple-task-client
uv run mcp-simple-task-client