Releases: modelcontextprotocol/python-sdk
Releases · modelcontextprotocol/python-sdk
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
RequestId
is not coerced asint
by @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.Is
on 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-server
dropping 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_seconds
instead ofseconds
on 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
FileUrl
on theresources/list
call in thesimple-resource
example 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
v1.9.3
v1.9.2
What's Changed
- Fix
ClientSessionGroup
cleanup logic by @mkeid in #787 - Chatbot example: clean up servers in correct order by @clareliguori in #353
- llamallama-3.2-90b-vision-preview is deprecated by @Arash-IND in #523
- Support custom httpx client creation by @nickcoai in #752
- Python lint: Ruff rule PLW1510 -- subprocess-run-without-check by @cclauss in #794
- add support for parallel run by @lk-naath in #739
- Fix async callable object tools by @stephanlensky in #568
- [DOC] Fix example usage of get_context (plus a little more) by @hesreallyhim in #801
- Pin uv version by @Kludex in #806
- Fix building auth metadata paths by @Rodriguespn in #779
- Fix auth tests and ruff format by @ihrpr in #818
- send errors to pending requests if server closes by @mroch in #333
- RFC: Lower log levels used for connections by @nickcoai in #821
- Support for http request injection propagation to tools by @ihrpr in #816
- Prevent stdio connection hang for missing server path. by @TimChild in #401
- Fix and update
OAuthAuthorizationServerProvider
snippet inREADME.md
by @alvarobartt in #830 - Client sampling and roots capabilities set to None if not implemented by @lorenzocesconetto in #802
- Support for http request injection propagation in StreamableHttp by @ihrpr in #833
New Contributors
- @clareliguori made their first contribution in #353
- @Arash-IND made their first contribution in #523
- @nickcoai made their first contribution in #752
- @lk-naath made their first contribution in #739
- @stephanlensky made their first contribution in #568
- @hesreallyhim made their first contribution in #801
- @Rodriguespn made their first contribution in #779
- @mroch made their first contribution in #333
- @TimChild made their first contribution in #401
- @alvarobartt made their first contribution in #830
- @lorenzocesconetto made their first contribution in #802
Full Changelog: v1.9.1...v1.9.2