Releases: modelcontextprotocol/python-sdk
Releases · modelcontextprotocol/python-sdk
v1.12.4
What's Changed
- chore: Remove unused prompt_manager.py file by @chughtapan in #1229
 - Improved supported for ProtectedResourceMetadata by @yannj-fr in #1235
 - chore: Remove unused variable notification_options by @sreenaths in #1238
 - Improve README around the Context object by @jbkkd in #1203
 - Fix : token_endpoint_auth_signing_alg_values_supported is a json array by @yannj-fr in #1226
 - Remove strict validation on 
response_modes_supportedmember ofOAuthMetadataby @joesavage-silabs in #1243 
New Contributors
- @chughtapan made their first contribution in #1229
 - @yannj-fr made their first contribution in #1235
 - @sreenaths made their first contribution in #1238
 - @jbkkd made their first contribution in #1203
 - @joesavage-silabs made their first contribution in #1243
 
Full Changelog: v1.12.3...v1.12.4
v1.12.3
v1.12.2
What's Changed
- update codeowners group by @ihrpr in #1191
 - fix: perform auth server metadata discovery fallbacks on any 4xx by @LucaButBoring in #1193
 
Full Changelog: v1.12.1...v1.13.0
v1.12.1
What's Changed
- Add CODEOWNERS file for sdk by @ihrpr in #1169
 - fix flaky test test_88_random_error by @ihrpr in #1171
 - Make sure 
RequestIdis not coerced asintby @Kludex in #1178 - Fix: Replace threading.Lock with anyio.Lock for Ray deployment compatibility by @only-weng in #1151
 - fix: fix OAuth flow request object handling by @clareliguori in #1174
 
New Contributors
- @only-weng made their first contribution in #1151
 
Full Changelog: v1.12.0...v1.12.1
v1.12.0
What's Changed
- Ensure failed oauth registration response is read before accessing response.text by @jlowin in #1118
 - Avoiding to parse string arguments containing valid JSON if the argument annotation is str by @cjg in #1113
 - Update routing for streamable HTTP to avoid 307 redirect by @yurikunash in #1115
 - add regression tests for #1113 by @bhosmer-ant in #1122
 - Fix BaseModel method name conflicts in func_metadata by @bhosmer-ant in #1123
 - README - replace code snippets with examples by @ihrpr in #1136
 - README - replace code snippets with examples - direct execution and display utilities by @ihrpr in #1137
 - Close server session after handle stateless request by @hopeful0 in #1116
 - tests: use 
inline_snapshot.Ison parametrized test by @Kludex in #945 - Add regression test for stateless request memory cleanup by @felixweinberger in #1140
 - Implement RFC9728 - Support WWW-Authenticate header by MCP client by @yurikunash in #1071
 - Add streamable HTTP starlette example to Python SDK docs by @pamelafox in #1111
 - fix markdown error in README in main by @ihrpr in #1147
 - README - replace code snippets with examples - add lowlevel to snippets by @ihrpr in #1150
 - README - replace code snippets with examples - streamable http by @ihrpr in #1155
 - chore: don't allow users to create issues outside the templates by @Kludex in #1163
 - Tests(cli): Add coverage for helper functions by @davenpi in #635
 - Docs: Update CallToolResult parsing in README by @functicons in #812
 - docs: add pre-commit install guide on CONTRIBUTING.md by @dingo4dev in #995
 - fix flaky fix-test_streamablehttp_client_resumption test by @ihrpr in #1166
 - README - replace code snippets with examples -- auth examples by @ihrpr in #1164
 - Support falling back to OIDC metadata for auth by @LucaButBoring in #1061
 
New Contributors 🙏
- @cjg made their first contribution in #1113
 - @yurikunash made their first contribution in #1115
 - @hopeful0 made their first contribution in #1116
 - @pamelafox made their first contribution in #1111
 - @davenpi made their first contribution in #635
 - @functicons made their first contribution in #812
 
Full Changelog: v1.11.0...v1.12.0
v1.11.0
What's Changed
- Update MCP to use Pydantic>=2.11 by @medaminezghal in #1041
 - Flaky test fix by @AishwaryaKalloli in #1050
 - chore: bump ruff by @Kludex in #1085
 - docs: fix dev server command in README (#848) by @Lasdw6 in #859
 - fix: support "form_post" to be one of response modes in authorization server metadata validation by @ke-yu in #1046
 - Embed code snippets for README from executable examples by @ihrpr in #1055
 - tests: add lowest dependency tests by @Kludex in #1067
 - Fix async resource functions not being awaited by @ihrpr in #1092
 - fix: Expose completions capability by @fredericbarthelet in #865
 - Fix Pydantic field alias consistency in structured output by @sjwhole in #1099
 - Update text to make clear Elicitation is not directly associated with… by @evalstate in #1062
 - Unify process termination on POSIX & Windows (+ tests) by @felixweinberger in #1044
 - Improve child process termination on POSIX & Windows by @felixweinberger in #1078
 - remove max message size by @ihrpr in #1105
 - #552 by @DanielAvdar in #707
 - Doc update + validation in SseServerTransport + existing test fixes: addresses Issue: #827 by @AishwaryaKalloli in #900
 - clean up log.error by @ihrpr in #1109
 - Fix completions by @ihrpr in #1107
 - fix pyright check in CI by @ihrpr in #1108
 - fweinberger/align shutdown with spec by @felixweinberger in #1091
 - Fix: Prevent session manager shutdown on individual session crash by @soby in #841
 - Adding description field to the FastMCP get_prompt method by @megandsouza03 in #614
 - chore: add markdownlint on pre-commit hook and lint md files by @dingo4dev in #996
 - Fix missing line in generated snippets by @ihrpr in #1117
 - The lifespan_context object here is not a dictionary like the other e… by @johnbikes in #1002
 
New Contributors
- @Lasdw6 made their first contribution in #859
 - @ke-yu made their first contribution in #1046
 - @fredericbarthelet made their first contribution in #865
 - @sjwhole made their first contribution in #1099
 - @soby made their first contribution in #841
 - @megandsouza03 made their first contribution in #614
 - @dingo4dev made their first contribution in #996
 - @johnbikes made their first contribution in #1002
 
Full Changelog: v1.10.1...v1.11.0
v1.10.1
v1.10.0
🚀 Implementation for Spec revision 2025-06-18
- feat: implement MCP-Protocol-Version header requirement for HTTP transport by @felixweinberger in #898
 - Rename ResourceReference to ResourceTemplateReference by @ihrpr in #947
 - feat: add _meta to more objects by @felixweinberger in #963
 - Include context into completions by @ihrpr in #966
 - Add support for Elicitation by @ihrpr in #625
 - Update _meta usage guidance in types by @ihrpr in #971
 - Add title to tools, resources, prompts by @felixweinberger in #972
 - Add resource Link by @ihrpr in #974
 - MCP server separation into Authorization Server (AS) and Resource Server (RS) roles per spec PR #338 by @ihrpr in #982
 - RFC 8707 Resource Indicators Implementation by @ihrpr in #991
 - Fix 
/.well-known/oauth-authorization-serverdropping path by @ihrpr in #1014 - Make "resource" optional on earlier protocols by @dr3s in #1017
 - Add schema validation to lowlevel server by @bhosmer-ant in #1005
 - feat: Add structured output support for tool functions by @bhosmer-ant in #993
 - Update latest protocol version to 2025-06-18 by @ihrpr in #1036
 
Other changes
- set timeout for sse in httpx_client_factory by @ihrpr in #943
 - clean-up: removed unused ci file by @DarkDk123 in #950
 - ci: add timeout on the test job by @Kludex in #955
 - Fix uncaught exception in MCP server by @ddworken in #967
 - Allow longer duration in test_188_concurrency by @msabramo in #969
 - Add support for DNS rebinding protections by @ddworken in #861
 - Fix Windows subprocess NotImplementedError (STDIO clients) by @theailanguage in #596
 - Remove github from auth examples by @ihrpr in #1011
 - refactor: rename DummyProcess to FallbackProcess in Windows stdio by @felixweinberger in #1015
 - ci: add --frozen flag to all uv commands in workflows by @dsp-ant in #970
 - unpin jsonschema version by @ihrpr in #1037
 
New Contributors 🙏
- @DarkDk123 made their first contribution in #950
 - @msabramo made their first contribution in #969
 - @theailanguage made their first contribution in #596
 
Full Changelog: v1.9.4...v1.10.0
v1.9.4
What's Changed
- Support Cursor OAuth client registration by @sam-tombury in #895
 - feat: support audio content by @LucaButBoring in #725
 - Use 
total_secondsinstead ofsecondson timeout by @Kludex in #896 - normalize string ID to int in server messages for compatibility by @wangxm345566462 in #851
 - relax validation by @dr3s in #879
 - Fix uncaught exception in MCP server by @ddworken in #822
 - Use 
FileUrlon theresources/listcall in thesimple-resourceexample by @nandsha in #907 - Create issue templates by @Kludex in #935
 - chore: create union for working with message content by @LucaButBoring in #939
 - Allow to pass timeout as float by @Kludex in #941
 
New Contributors
- @vincent-pli made their first contribution in #899
 - @sam-tombury made their first contribution in #895
 - @LucaButBoring made their first contribution in #725
 - @wangxm345566462 made their first contribution in #851
 - @dr3s made their first contribution in #879
 - @ddworken made their first contribution in #822
 - @nandsha made their first contribution in #907
 
Full Changelog: v1.9.3...v1.9.4