mrkeyoor.com_
Mon 02 Nov 19:01 UTC
AI Toolsevaluationupdated 01 Nov 2026

python-sdk review

Choose the MCP Python SDK when you need to build an MCP server or client in Python, but budget separately for contributor setup and integration testing. The MCP Python SDK supports servers exposing tools, resources and prompts, clients connecting to MCP servers, and stdio, Streamable HTTP and SSE transports. Our run on September 29, 2026, at commit f1b6589 installed and built successfully; its test command stopped during conftest import because blockbuster was missing.

+54stars / 7d
Verdict

The MCP Python SDK is a reasonable starting point for Python MCP servers and clients. Our September 29, 2026 run at f1b6589 establishes successful install and build command outcomes, followed by a blockbuster import failure at test startup. Verify the development environment, version requirements and your actual transport behavior before treating that result as readiness for your application.

We ran it

Lab card: what happened when we ran python-sdkScreenshot of python-sdk (py.sdk.modelcontextprotocol.io)
Install✓ · 39s61 packages · 66 MB
Build✓ · 9s
Tests✗ · 11sran, no count parsed
Known vulns0(pip-audit)
Repo1676 files~147,812 lines of source · 15.1 MB · 10 CI workflows · tests dir

Answers from our run

Does python-sdk build from source?

Dependencies installed in 39 seconds (61 packages), and the build succeeded in 9 seconds. We cloned commit f1b6589 into a clean Debian container with 3 CPUs and no project-specific setup.

Do python-sdk's tests pass?

No. The project's own test command exited unsuccessfully after 11 seconds, and its output did not expose an individual test count.

Does python-sdk have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use python-sdk?

Teams treating our successful install and build as proof that a working server, client or deployment was exercised.

What are the alternatives to python-sdk?

MCP TypeScript SDK, FastMCP. The MCP Python SDK is a reasonable starting point for Python MCP servers and clients.

Setup3/5Under the visible rubric, successful install and build provide a usable starting point, but missing blockbuster prevented our test suite from starting.
Docs5/5Assessed only for overview navigation and stated coverage: the supplied README identifies getting-started, v2 changes, migration and API documentation. Linked-page accuracy was not comprehensively assessed.
CommunityN/AThe supplied extracts do not establish adoption, maintainer response times or sustained contributor participation sufficiently to assign a community rating.
Maturity4/5Broad documented server, client and transport coverage meets the rubric's 4 level, with the upstream empty-session report limiting confidence. Our run did not validate protocol behavior.

Who it’s for

Python developers exposing tools, resources or prompts to MCP applications.
Teams building Python clients for MCP servers.
Existing SDK users who can check version requirements and follow the v2 migration documentation.
Contributors willing to verify the repository's development dependencies before running its suite.

Who it’s NOT for

Teams treating our successful install and build as proof that a working server, client or deployment was exercised.
Contributors expecting our installed dependency set to start the test suite unchanged: the recorded command could not import blockbuster.
Projects requiring Python 3.10 compatibility with the current main branch: the supplied current README requires Python 3.11+, although the measured commit's README required Python 3.10+.
Multi-server applications that cannot tolerate the reported empty-session failure without checking their chosen revision and testing that path.

Setup reality

Our September 29, 2026 sandbox run used commit f1b6589, Python 3.12, 3 CPUs and 8 GB of memory. The attached harness records installation succeeding in 39 seconds, a build step succeeding in 9 seconds, and the test command exiting with code 4 after 11 seconds. It records 61 installed packages occupying 66 MB.

The raw test tail identifies the immediate blocker: tests/conftest.py imported BlockBuster from blockbuster, and Python raised ModuleNotFoundError. No test counts were recorded. This is a test-startup failure in our sandbox, with no evidence here of failed assertions or successful protocol exercises.

The measured commit's README documents the optional cli extra for mcp dev, mcp run and mcp install. These are documented commands, not workloads demonstrated by our run. Its README also tells v1 users to retain a <2 requirement until migration is complete.

The audit record contains zero recorded advisories, but scanned-package coverage is unknown. That result does not establish security.

Should you choose it?

Use the MCP Python SDK if your application needs Python implementations of MCP server or client behavior. The MCP Python SDK supports servers exposing tools, resources and prompts, clients connecting to MCP servers, and stdio, Streamable HTTP and SSE transports. Its README demonstrates typed Python functions defining a tool and a resource without handwritten JSON Schema.

Our run on September 29, 2026, at commit f1b6589 installed and built successfully; its test command stopped during conftest import because blockbuster was missing. That makes contributor setup the immediate unresolved step in our evidence. The run does not establish that an MCP server booted, a client connected, a tool call succeeded or an HTTP deployment worked.

What our sandbox recorded

The attached harness records installation succeeding in 39 seconds and the build step succeeding in 9 seconds. The test command exited with code 4 after 11 seconds. These are the stored harness timings, rounded to seconds; the raw step record preserves millisecond durations. The dependency footprint was 61 packages and 66 MB.

The raw failure occurred while loading tests/conftest.py: it attempted to import BlockBuster from blockbuster and raised ModuleNotFoundError. The record contains no parsed test counts, so there is no passing-test total to report. We did not rerun the suite for this correction, resolve its development environment or reconcile complete logs.

Our harness records each command's outcome using success status, exit code, elapsed time and timeout status, with a log tail where supplied. A zero exit code describes that command's outcome; it does not establish which application behavior was exercised. The MrKeyoor testing methodology explains this reporting approach and its limits. That page describes the publisher's methodology when retrieved on November 1, 2026; it does not prove that its current procedure was used unchanged for this September run.

Pip-audit recorded zero advisories. The supplied record does not establish scanned-package coverage, so coverage remains unknown. The audit is not a security review.

Check the version before following an example

The README at measured commit f1b6589 describes v2 as the stable release line supporting the 2026-07-28 MCP specification and earlier revisions. It warns that installing mcp selects 2.x and directs existing v1 users to keep a <2 upper bound until they migrate. The supplied v2.1.1 release entry specifically points old mcp.server.fastmcp imports toward the migration guide; it is not evidence that v1 imports work unchanged.

There is also a Python requirement difference worth checking before installation. The measured commit's README says Python 3.10+, while the supplied current repository README says Python 3.11+. Our Python 3.12 run cannot establish compatibility with either minimum version. Use documentation and package requirements matching the revision you intend to deploy.

Test empty-server connections explicitly

Issue 3384 reports that connecting ClientSessionGroup to a server with no tools, resources or prompts can raise KeyError. The original report also describes a separate group-owned transport cleanup problem. These are upstream reports, not observations from our sandbox.

An October 14 comment reports reproducing the caller-owned empty-session KeyError on stable 2.3.0 and a main-branch revision. That commenter explicitly did not independently validate the group-owned transport case. If your application connects to empty catalogs, test connection and disconnection against your selected SDK revision rather than assuming both paths have the same evidence or status.

Which alternatives fit a different stack?

The MCP TypeScript SDK provides server and client libraries for Node.js, Bun and Deno. Choose it instead when your MCP implementation belongs in that runtime stack. Its README also documents optional framework middleware; our Python run provides no performance or reliability comparison between the SDKs.

FastMCP is a Python MCP application framework for servers, clients and interactive apps. Consider it when that framework scope matches your application better than working directly with the SDK. It is an alternative application-development surface; it does not remove the need to test your MCP integrations. Its separately described Gateway addresses deployment and governance, a complementary operational role rather than evidence that the Python SDK needs replacing.

How to read the scores

Scores use a 1-5 editorial rubric: 1 means a documented obstacle prevents the intended task; 2 means substantial documented gaps; 3 means a usable starting point with unresolved setup work; 4 means broad documented coverage with specific unresolved limitations; 5 means the supplied evidence fully covers the dimension assessed. These are judgments about the stated evidence, not benchmark results. Unknown dimensions remain unassessed.

Setup ease is 3 because our install and build succeeded but the test environment could not start the suite. Documentation is 5 for the supplied overview's clear routes to getting started, v2 changes, migration and API reference; this assesses navigation and stated coverage, not every linked page's accuracy. Maturity is 4 for documented server, client and transport coverage alongside a concrete unresolved upstream session report. Community is unassessed because the supplied evidence does not establish adoption, response times or sustained contributor participation.

Before adopting, follow the documentation for your selected version and exercise one server-client exchange over your intended transport. Before contributing, verify the development dependency setup and rerun the repository suite. Neither step was completed by our recorded run.

Alternatives

ProjectWhat it isPick it when
MCP TypeScript SDK gh↗MCP server and client libraries for Node.js, Bun and Deno.Choose it instead when your MCP application belongs in a TypeScript runtime stack.
FastMCP gh↗A Python MCP application framework covering servers, clients and interactive apps.Consider it when you want that application framework scope; evaluate its separately described Gateway as a complementary deployment and governance product.

Sources

  1. MCP Python SDK repository and README
  2. MCP Python SDK v2.1.1 release
  3. Issue 3384: empty server session handling
  4. Issue 3385: non-finite float JSON
  5. Issue 1664: auth request User-Agent

More ai tools reviews

kornia · skills · anarlog · pr-agent · agent-sprite-forge · KiroCrew · the whole board →