49b9bb6724
Deploy Docs / deploy-docs (push) Failing after 1s
Conformance Tests / client-conformance (push) Failing after 3s
Conformance Tests / server-conformance (push) Failing after 1s
GitHub Actions Security Analysis / zizmor (push) Failing after 1s
CI / checks (push) Failing after 59m20s
CI / all-green (push) Waiting to run
3.1 KiB
3.1 KiB
Installation
The Python SDK is on PyPI as mcp. It requires Python 3.10+.
These docs describe v2, which is in beta, so the version pin is not optional yet:
=== "uv"
```bash
uv add "mcp[cli]==2.0.0b1"
```
=== "pip"
```bash
pip install "mcp[cli]==2.0.0b1"
```
!!! warning "Why the pin"
Installers never select a pre-release unless you name one, so an unpinned uv add "mcp[cli]"
gives you the latest v1.x release, which these docs do not describe. Check the
release history for the newest beta before you copy
the line above.
The same applies to one-off commands: `uv run --with "mcp==2.0.0b1" ...`, not `uv run --with mcp ...`.
If your *package* depends on `mcp`, add a `<2` upper bound (for example `mcp>=1.27,<2`) before
the stable v2 lands so the major version bump doesn't surprise you.
What gets installed
You don't need to know any of this to use the SDK, but if you're wondering what each dependency is for:
mcp-types: every protocol type (requests, results, content blocks) as its own package, versioned in lockstep with the SDK. Everyfrom mcp_types import ...in these docs is this package.anyio: the async runtime. The whole SDK is written against anyio, so it runs on eitherasyncioortrio.pydantic: what everymcp_typesmodel is built on, plus all schema generation and validation.pydantic-settings: server configuration viaMCP_*environment variables and.envfiles.httpxandhttpx-sse: the HTTP client behind the Streamable HTTP and SSE client transports.starlette,uvicorn,sse-starlette, andpython-multipart: the HTTP server transports.jsonschema: validates a tool's structured output against its declared output schema.pyjwt[crypto]: OAuth token handling for authorization.opentelemetry-api: just the lightweight API, so the SDK's tracing middleware costs nothing unless you install an OpenTelemetry SDK and exporter yourself.typing-extensionsandtyping-inspection: modern typing features on Python 3.10.pywin32: Windows only, used forstdiosubprocess management.
Optional extras
mcp[cli]addstyperandpython-dotenvfor themcpcommand-line tool (mcp dev,mcp run,mcp install). You'll want this during development; you may not need it in a deployed server.mcp[rich]addsrichfor nicer server logs.