Files
Max Isbey 59c066dfce Present v2 as the stable release across the README, docs, and policies
The README, the get-started docs, the What's new page, SECURITY.md, and
the contributor docs all still described v2 as a pre-release: pin an
exact 2.0.0b1, do not use in production, v1.x is the only stable line.
This flips that framing for the stable release. Install lines become
plain `mcp[cli]` (the launch-command page keeps only the exact pin that
`mcp install` itself writes), the pre-release banners and pin warnings
go away, the What's new page drops its beta note and the two stale
"since 2.0.0bN" provenance markers, and SECURITY.md gains a
supported-versions table (2.x current, 1.28.x maintenance).

v1.x is presented as the maintenance line throughout, with its docs at
/v1/ and a `<2` bound for projects that are not ready to migrate. The
branching-model text in AGENTS.md and CONTRIBUTING.md now describes main
as the stable line, and the v2 feedback issue template loses its
pre-release wording and the v2-alpha label.

No-Verification-Needed: doc-only
2026-07-26 09:41:35 +00:00

2.6 KiB

Installation

The Python SDK is on PyPI as mcp. It requires Python 3.10+.

These docs describe v2, the current stable release line:

=== "uv"

```bash
uv add "mcp[cli]"
```

=== "pip"

```bash
pip install "mcp[cli]"
```

!!! note "Coming from v1?" v2 is a major version with breaking changes; the Migration Guide covers every one. If your package depends on mcp and isn't ready to migrate, keep a <2 upper bound (for example mcp>=1.28,<2) so an unpinned resolve stays on the 1.x line.

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. Every from mcp_types import ... in these docs is this package.
  • anyio: the async runtime. The whole SDK is written against anyio, so it runs on either asyncio or trio.
  • pydantic: what every mcp_types model is built on, plus all schema generation and validation.
  • httpx2: the HTTP client behind the Streamable HTTP and SSE client transports, with server-sent events support built in.
  • starlette, uvicorn, sse-starlette, and python-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-extensions and typing-inspection: modern typing features on Python 3.10.
  • pywin32: Windows only, used for stdio subprocess management.

Optional extras

  • mcp[cli] adds typer and python-dotenv for the mcp command-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] adds rich for nicer server logs.