GitHub / modelcontextprotocol/python-sdk / commits
The official Python SDK for Model Context Protocol servers and clients
| SHA | Message | Author | Date | Stats |
|---|---|---|---|---|
| 44724284 | Bind client credentials to their authorization server (SEP-2352) (#2933) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 4 hours ago | |
| 31699224 | Move scope step-up test to top-level function (#2932) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 4 hours ago | |
| 13311316 | Union previously requested scopes on step-up re-authorization (SEP-2350) (#2931) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 5 hours ago | |
| 4573e4ac | Deprecate roots, sampling, and logging methods per SEP-2577 (#2926) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 5 hours ago | |
| 5734acf1 | Pass json-schema-ref-no-deref conformance scenario (SEP-2106) (#2924) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 5 hours ago | |
| cf41441e | Send `application_type` during Dynamic Client Registration (SEP-837) (#2930) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 6 hours ago | |
| 60f37e9d | Document `redirect_uri` wire-format change in OAuth migration note (#2929) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 6 hours ago | |
| f5fe42f5 | ci(conformance): bump harness to 0.2.0-alpha.5 preview (#2927) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
about 6 hours ago | |
| 48cf4950 | Validate the `iss` authorization-response parameter (RFC 9207 / SEP-2468) (#2... |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 6 hours ago | |
| b7a5bffe | Preserve empty URL paths on OAuth metadata models (#2925) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 6 hours ago | |
| 5a3412dd | Ignore pre-2026 protocol_version pins at the StreamableHTTP transport (#2923) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
about 6 hours ago | |
| fda4c543 |
fix: correct MCPServer call_tool result type (#2816)
Co-authored-by: Marcelo Trylesinski <m****e@g****m> |
冯基魁 <5****i@u****m>
Committed by: GitHub <n****y@g****m> |
about 7 hours ago | |
| f2536823 | Return -32602 for resource not found (SEP-2164) (#2920) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 7 hours ago | |
| 0fa03ec6 | Add uv ecosystem to dependabot and drop weekly lockfile workflow (#2919) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 8 hours ago | |
| 84bf9bde | First end-to-end 2026-07-28 stateless tools/call (experimental entry + Client... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
about 8 hours ago | |
| 1cec2d60 | Relax monolith ElicitRequestURLParams.elicitation_id for 2026-07-28 (#2913) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
1 day ago | |
| 510832aa | Re-vendor 2026-07-28 schema and absorb spec #2907 error-code renumber (#2912) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
1 day ago | |
| 9e6d0031 | ci(conformance): add 2026-07-28 carried-forward leg + bump harness to 0.2.0-a... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
1 day ago | |
| 364b762e | tests/interaction: era-axis machinery for the requirements manifest (#2909) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
1 day ago | |
| 734746a3 | Resolve protocol version per request and expose it as ctx.protocol_version (#... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 days ago | |
| c85ccf1c | docs: add AI-assisted contribution policy to CONTRIBUTING.md (#2887) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 days ago | |
| df81c062 | Pass a list to parametrize in test_docs_examples (pytest 9.1.0 compat) (#2890) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 days ago | |
| 47bbab3b | Drop stale superset-leniency note from ElicitResult.content docstring (#2884) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 days ago | |
| 7703df15 | Expand site-absolute spec links in generated docstrings to full URLs (#2885) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 days ago | |
| 65be5a71 | Protocol types for 2026-07-28: superset monolith, committed per-version packa... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 days ago | |
| 2693fb95 |
chore(deps): bump the github-actions group across 1 directory with 9 updates ...
Co-authored-by: dependabot[bot] <4****]@u****m>, copilot-swe-agent[bot] <1****t@u****m>, Marcelo Trylesinski <m****e@g****m> Signed-off-by: dependabot[bot] <s****t@g****m> |
dependabot[bot] <4****]@u****m>
Committed by: GitHub <n****y@g****m> |
5 days ago | |
| ac36a395 | Widen the stdio round-trip test's termination grace and overall timeout (#2880) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
5 days ago | |
| ddb7b78e | Deflake the issue-1363 tests: wait for lifespan startup instead of sleeping (... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
5 days ago | |
| 255650dc | ci(conformance): run server --suite draft and baseline the 2026-07-28 scenari... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
5 days ago | |
| a3689ab4 | ci(conformance): pin harness to 0.2.0-alpha.3 with expected-failures baseline... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
5 days ago | |
| 1012d600 | [v2] ClientSession runs on JSONRPCDispatcher; BaseSession removed (#2838) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
5 days ago | |
| cf110e32 |
Fix 404 links in v1 README to renamed example files (#2822)
Co-authored-by: Max Isbey <2****y@u****m> |
Jerome <j****e@a****m>
Committed by: GitHub <n****y@g****m> |
8 days ago | |
| 535fc1d0 | Flush the stdio subprocess's coverage data before the clean-exit line (#2840) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
9 days ago | |
| 7267818e | Fix unknown-method error code and add a protocol version registry (#2836) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
9 days ago | |
| 1e21814e | Update the v2 status banner and pin spawned environments to the running SDK v... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
10 days ago | |
| e196857b | Prepare release machinery for v2 pre-releases (#2831) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
10 days ago | |
| 6d0c1601 | Clarify AGENTS.md policy on compat shims for breaking changes (#2823) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
11 days ago | |
| 5d826490 | [v2] Dispatcher/ServerRunner receive-path swap — replaces BaseSession (#2710) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
11 days ago | |
| b478bff5 | Remove the unsupported WebSocket transport (#2785) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
12 days ago | |
| ac96f88a | Deflake the session-level timeout test with trio's virtual clock (#2788) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
15 days ago | |
| bdc48e98 | Fix stdio client shutdown bugs and rebuild the stdio test suite (#2773) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
15 days ago | |
| 19fe9fae | Run StreamableHTTP transport tests in process instead of over sockets (#2767) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
17 days ago | |
| ed39e73c | Run SSE and Unicode transport tests in process instead of over sockets (#2765) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| b3025f93 | Run transport security tests in process instead of over sockets (#2764) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| ed6adeee | docs: require a passing conformance test for new 2026-07-28 spec features (#2... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| a9381263 | Doc: Clarify MCP Client-Server model in What is MCP section (#2459) |
yukawithdata <9****a@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| 4f6f0e8b | Remove dead commented-out code in register_client (#2500) |
Zach Leventer <z****r@g****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| 60c04207 |
docs: correct create_mcp_http_client default timeout docstring (#2683)
Co-authored-by: aryanmotgi <c****c@g****m>, Marcelo Trylesinski <m****e@g****m> |
Aryan Motgi <8****i@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| c91f4069 | Require protocol_version to be a string (#2763) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| 8cc187fa | Remove Tasks (SEP-1686) from the SDK (#2714) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| a5b2ebb6 |
Clarify CLI subprocess environment comment (#2672)
Co-authored-by: scosemicolon <2****n@u****m> |
S;Co <s****n@g****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| 453cafb9 |
fix: add 'invalid_target' to AuthorizationErrorCode (RFC 8707) (#2642)
Co-authored-by: Marcelo Trylesinski <m****e@g****m> |
Siddhiraj Katkar <9****r@u****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| 2a3d0654 |
fix: rename `.gitattribute` to `.gitattributes` so git actually reads it (#2656)
Co-authored-by: devteamaegis <d****s@u****m> |
devteamaegis <d****s@g****m>
Committed by: GitHub <n****y@g****m> |
18 days ago | |
| 616476f6 | Bind transport sessions to the authenticated principal (#2718) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
22 days ago | |
| 24725633 | test: interaction-model end-to-end suite with a requirements manifest (#2691) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
23 days ago | |
| 3eb57994 | Add subject and claims to AccessToken (#2686) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
25 days ago | |
| e8e64842 | ci: add zizmor for GitHub Actions security analysis (#2648) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
about 1 month ago | |
| f4753440 | ci: deploy docs to py.sdk.modelcontextprotocol.io via Pages artifact (v1 at /... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
about 1 month ago | |
| 161834d4 | refactor: import SSEError from httpx_sse public API (#2560) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
about 1 month ago | |
| bf3e0010 | fix: chain exceptions in get_prompt and read_resource handlers (#2542) |
Dayna Blackwell <d****a@b****m>
Committed by: GitHub <n****y@g****m> |
about 1 month ago | |
| 2b0da563 | build: pin PEP 517 build dependencies (#2547) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
about 1 month ago | |
| 3d7b311d |
fix: align Context logging methods with MCP spec data type (#2366)
Co-authored-by: Claude Opus 4.6 <n****y@a****m>, Max Isbey <2****y@u****m> |
Gyeongjun Paik (Kent) <p****d@g****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| 437d15aa | SEP-2207: Refresh token guidance (#2039) |
Wils Dawson <w****n@g****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| 5cbd259c | fix: catch PydanticUserError when generating output schema (pydantic 2.13 com... |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| 2dfb51a4 | fix(auth): coerce empty-string optional URL fields to None in OAuthClientMeta... |
Felix Weinberger <3****r@u****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| 941089e0 | docs: modernize development guidelines and rename to AGENTS.md (#2413) |
Max <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| 8f806da6 |
chore(deps): bump cryptography from 46.0.5 to 46.0.7 in the uv group across 1...
Co-authored-by: dependabot[bot] <4****]@u****m> Signed-off-by: dependabot[bot] <s****t@g****m> |
dependabot[bot] <4****]@u****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| c5f12ec1 |
Add `resources` parameter to `MCPServer` (#2414)
Co-authored-by: Marcelo Trylesinski <m****e@g****m> |
Matt LeMay <m****y@u****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| f27d2aac | docs: fill migration guide gaps surfaced by automated upgrade eval (#2412) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| cf4e435d | Use shared `is_async_callable` instead of `inspect.iscoroutinefunction` (#2389) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
2 months ago | |
| d5b9155f |
chore(deps): bump requests from 2.32.5 to 2.33.0 in the uv group across 1 dir...
Co-authored-by: dependabot[bot] <4****]@u****m> Signed-off-by: dependabot[bot] <s****t@g****m> |
dependabot[bot] <4****]@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 37891f42 | Add basic OpenTelemetry tracing for client and server requests (#2381) |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 3ce0f76e | Don't block the event loop on sync resource and prompt functions (#2380) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| e6235d16 | Propagate contextvars.Context through anyio streams without modifying Session... |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| fb2276b9 | ci: remove claude-code-review workflow (#2359) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 3517a29c | feat(server): restore `dependencies` parameter on MCPServer (#2358) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 98f8ef29 |
Restrict httpx version to <1.0.0 (#2345)
Co-authored-by: Max Isbey <2****y@u****m> |
Marcelo Trylesinski <m****e@g****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 7ba4fb88 | ci: skip claude.yml when comment is '@claude review' (#2337) |
Felix Weinberger <3****r@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 92c693bb | fix: cancel in-flight handlers when transport closes in server.run() (#2306) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 883d8930 |
test: rewrite cli.claude config tests to assert JSON output directly (#2311)
Co-authored-by: claude[bot] <2****]@u****m>, Felix Weinberger <f****r@u****m> |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 5388bea5 | docs: generate hierarchical per-module API reference pages (#2103) |
Jonathan Hefner <j****n@h****o>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 20dd9463 | feat(client): store InitializeResult as initialize_result (#2300) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 67201a9b | test: fix WS test port race; narrow to single smoke test covering both transp... |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 7826ade1 | test: convert test_integration.py to in-memory transport (fix flaky) (#2277) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| ff50351f | ci: run strict-no-cover in scripts/test to catch stale pragmas locally (#2305) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 1a2244f4 | fix: handle non-UTF-8 bytes in stdio server stdin (#2302) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 75a80b6f |
refactor: connect-first stream lifecycle for sse and streamable_http (#2292)
Co-authored-by: Marcelo Trylesinski <m****e@g****m> |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| abfb4822 | refactor(examples): migrate all HTTP examples to streamable_http_app() (#2291) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| e1fd62e0 | fix: close all memory stream ends in client transport cleanup (#2266) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 2c73a2a8 |
chore(deps): bump black from 25.1.0 to 26.3.1 in the uv group across 1 direct...
Co-authored-by: dependabot[bot] <4****]@u****m> Signed-off-by: dependabot[bot] <s****t@g****m> |
dependabot[bot] <4****]@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| dd527135 | Rewrite TestChildProcessCleanup with socket-based deterministic liveness prob... |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 62eb08e5 | fix: don't send log notification on transport error (#2257) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 31a38b50 | fix: correct Context type parameters across examples and tests (#2256) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 51c53f2c |
fix: accept wildcard media types in Accept header per RFC 7231 (#2152)
Co-authored-by: Shivam <s****m@S****l> |
Shivam Aggarwal <s****5@g****m>
Committed by: GitHub <n****y@g****m> |
3 months ago | |
| 7ba41dcf | fix: make local coverage runs reliable (#2236) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 months ago | |
| eaf971cf |
Add warning log when rejecting request with unknown/expired session ID (#2212)
Co-authored-by: Copilot <2****t@u****m>, Max Isbey <2****y@u****m> |
Ramesh Reddy Adutla <1****a@u****m>
Committed by: GitHub <n****y@g****m> |
4 months ago | |
| 92f1b150 | fix: remove MIME type validation from MCPServer Resource (#2235) |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 months ago | |
| b33c8116 | perf: use deque for InMemoryTaskMessageQueue FIFO operations (#2165) |
Giulio Leone <g****e@g****m>
Committed by: GitHub <n****y@g****m> |
4 months ago | |
| 7c022482 |
fix(oauth): include client_id in token request body for client_secret_post (#...
Co-authored-by: Copilot <2****t@u****m> |
Giulio Leone <g****e@g****m>
Committed by: GitHub <n****y@g****m> |
4 months ago | |
| 528abfab | tests: remove lax-no-cover pragmas by moving assertions before cancellation (... |
Max Isbey <2****y@u****m>
Committed by: GitHub <n****y@g****m> |
4 months ago |