Skip to content

Framework

MCP Python SDK

Official Python implementation of the Model Context Protocol, used to build MCP-compliant servers and clients connecting AI agents to tools and data.

Known aliases

  • mcp package
  • mcp Python package
  • MCP Python SDK 2.x
  • MCPServer
  • Model Context Protocol Python SDK
  • modelcontextprotocol python-sdk
  • modelcontextprotocol/python-sdk
  • official MCP Python SDK
  • py.sdk.modelcontextprotocol.io
  • python mcp package

Current stories

buildOne report1 publisher

Of 12,915 MCP servers HISTOR started in a sandbox, 41% never answered

HISTOR started 12,915 npm and PyPI MCP servers in a sandbox, and 5,259 (41%) never answered, according to its own post. About 24% were broken or not stdio servers at all. Another 16% depended on keys, flags or runtimes a client config can supply.

Publishers:dev.to

Reality

Evidence66
Adoption
Not scored
Hype gap−10
Incentives
Not scored
Confidence64
buildOne report1 publisher

MCP's Python SDK fix needs a hard-coded OAuth issuer to protect machine-to-machine clients

MCP Python SDK maintainers rated a flaw that let a connected server choose where OAuth secrets were sent High, at 7.5. For its two machine-to-machine providers, upgrading changes nothing until the client names the issuer it expects.

Publishers:dev.to

Reality

Evidence50
Adoption
Not scored
Hype gap+15
Incentives30
Confidence50
buildOne report1 publisher

MCP Python SDK's credential-theft fix waits on an issuer argument for two OAuth providers

MCP Python SDK releases 1.30.0 and 2.2.0 leave a credential-theft bug open for two OAuth providers unless their constructors pass an issuer. For unattended MCP clients the fix is a one-argument code change, and each team has to find and make it in its own source.

Publishers:dev.to

Reality

Evidence55
Adoption
Not scored
Hype gap+5
Incentives
Not scored
Confidence50
buildOne report1 publisher

A Django MCP handler reaches the ORM with only a tool name and an arguments dict

A consultancy's account of production MCP work on Django client apps calls the protocol a transport layer. Its sample server calls django.setup(), imports the Order model, and dispatches tool calls on a string.

Publishers:dev.to

Reality

Evidence60
Adoption25
Hype gap+12
Incentives55
Confidence55
buildOne report1 publisher

Red-team lab lands attacker prose in an MCP agent's context before any tool runs

Mike Moore's harness shows MCP's server-authored instructions field placing hostile prose in an agent's context, and a caching proxy passing it to a second caller. The harness measures where the text lands, with no model in the loop.

Publishers:runtimewire.com

Reality

Evidence68
Adoption58
Hype gap+8
Incentives45
Confidence66
buildOne report1 publisher

MCP's FastMCP rename breaks first in CI and on the newest contributor's laptop

The Python SDK's v2.0.0 moved mcp.server.fastmcp wholesale on July 28 and shipped no shim, so any project that wrote mcp>=1.0 pulls 2.x on the next fresh install. A second default quietly changed the name clients see.

Publishers:dev.to

Reality

Evidence62
Adoption28
Hype gap+18
Incentives58
Confidence57
buildOne report1 publisher

Two unpinned requirements lines broke a working MCP server on a fresh install

The MCP Python SDK renamed FastMCP in 2.x. Gemini's Interactions API stopped accepting the schema google-genai 1.x sends. Both arrived on a fresh install of unchanged code, and the mocked unit tests never noticed.

Publishers:dev.to

Reality

Evidence74
Adoption28
Hype gap+8
Incentives40
Confidence68
buildOne report1 publisher

MCP's Python SDK 2.0 yields two values where wrapper libraries still unpack three

The official mcp package hit 2.0.0 on 28 July with renamed imports and a shorter context-manager yield, so wrappers that declared no upper bound now fail at runtime on a fresh install of code nobody touched.

Publishers:dev.to

Reality

Evidence62
Adoption45
Hype gap+6
Incentives30
Confidence58
buildOne report1 publisher

Renaming FastMCP to MCPServer closes stdio before an unpinned server finishes its handshake

An AWS EC2 rig with mcp unbounded in requirements.txt picked up mcp 2.2.0 and stopped importing. The server edit is two lines; the pip resolver and the test suite's camelCase attribute reads are where the work sits.

Publishers:dev.to

Reality

Evidence72
Adoption30
Hype gap−8
Incentives35
Confidence68
buildOne report1 publisher

MCP's Python SDK refuses to start when two extensions claim the same method name

A duplicate method name raises ValueError while MCPServer is being constructed. That puts the failure inside whatever code assembles your extensions, and it is why a collision test cannot live in either extension's own package.

Publishers:dev.to

Reality

Evidence62
Adoption
Not scored
Hype gap−5
Incentives25
Confidence56
buildOne report1 publisher

Your MCP tool definitions cost 64% more than your token counter says

A standing measurement of 14 MCP servers finds Claude's tokenizer counts schema text a median 64.1 percent above tiktoken, the counter every published cost study uses.

Publishers:dev.to

Reality

Evidence62
Adoption28
Hype gap−8
Incentives45
Confidence55