René's URL Explorer Experiment


Title: Extend resolver DI to sampling and roots requests by maxisbey · Pull Request #3049 · modelcontextprotocol/python-sdk · GitHub

Open Graph Title: Extend resolver DI to sampling and roots requests by maxisbey · Pull Request #3049 · modelcontextprotocol/python-sdk

X Title: Extend resolver DI to sampling and roots requests by maxisbey · Pull Request #3049 · modelcontextprotocol/python-sdk

Description: Resolvers can now return Sample(...) or ListRoots() in addition to Elicit, covering all three request kinds the multi-round-trip flow allows (SEP-2322): elicitation, sampling, and roots. Motivation and Context The resolver dependency-injection API (#2969, #2986) only supported asking the user via Elicit. The multi-round-trip inputRequests union is a closed set of three request kinds, and the client half already dispatches all three to the standard callbacks — this fills in the server half so a tool dependency can also sample the client's LLM or fetch its roots: def suggest_title(genre: str) -> Sample: prompt = f"Suggest one {genre} book title." return Sample([SamplingMessage(role="user", content=TextContent(type="text", text=prompt))], max_tokens=50) @mcp.tool() async def recommend_book(genre: str, suggestion: Annotated[CreateMessageResult, Resolve(suggest_title)]) -> str: ... Design notes: One rendering, both eras. A single _render_request produces the wire request used both as the 2026-07-28 inputRequests entry and as the pre-2026 back-channel payload, so the two transports send identical shapes by construction. The legacy legs for sampling/roots call send_request directly rather than the @deprecated session wrappers: the deprecated thing (SEP-2577) is the standalone feature, and marker-routed compatibility sends shouldn't warn — direct ctx.session.create_message() still does. No decline arm. Only elicitation has an accept/decline/cancel union; a client refuses sampling/roots by erroring. Consumers annotate the result type directly (CreateMessageResult, CreateMessageResultWithTools when the request carries tools or tool_choice, ListRootsResult). Results persist across rounds. Sampling/roots results ride requestState like elicited answers, pinned to the exact rendered request, so the client pays for an LLM call once per tool call rather than once per retry round. The state encoding is unchanged and byte-compatible with in-flight state. Answers are validated against the expected model, not the response union. The InputResponses union cannot discriminate a no-tool-use answer to a tools request (a single content block parses as the plain result shape), so trusting the union member would reject spec-valid responses. Per-kind capability gate. The existing elicitation-only check generalizes: before sending any of the three kinds, on either transport, the server verifies the client declared the matching capability (elicitation form, sampling — plus sampling.tools when the request carries tools/tool_choice — or roots) and refuses with -32021 MISSING_REQUIRED_CLIENT_CAPABILITY carrying the full requiredCapabilities payload. On 2026-07-28 an absent declaration is meaningful by contract (capabilities arrive per-request, and servers must not infer them from prior requests), so the gate fires unconditionally; on pre-2026 sessions the gate applies wherever the request could actually be sent (it reads the request channel's own sendability), which covers sessions initialized with a bare notifications/initialized, while a session that cannot carry a server-initiated request at all keeps failing with the usual no-back-channel error. Client gains sampling_capabilities so sampling sub-capabilities like tools support can finally be declared from the high-level client (ClientSession already accepted it). How Has This Been Tested? Beyond the unit/e2e suite (all three kinds batched in one round, cross-kind resolver chains over three rounds, capability refusals on both eras, state restore, no-tool-use answers to tools requests), the branch was exercised as a real application: an MCPServer process on streamable HTTP with a separate client process — 2026-07-28 auto negotiation with elicit+sample+roots fulfilled through the retry loop, 2025-11-25 legacy over the back-channel with MCPDeprecationWarning promoted to error (none fired), a stdio subprocess negotiating 2026-07-28, and live -32021 probes verifying the payloads and that the session stays usable after a refusal. Wire compatibility: no new wire shapes — the conformance everything-server already exercises all three embedded kinds, and the suite is unaffected. One gap worth noting: the conformance suite covers -32021 mechanics elsewhere but has no dedicated scenario for the "server MUST NOT send an inputRequests entry the client has not declared support for" egress rule specifically; happy to raise that on the conformance repo. Breaking Changes Resolver-routed requests now enforce the capability egress rule on pre-2026 sessions too: a 2025-11-25 client that answered elicitations without declaring the elicitation capability now gets -32021 instead of being asked. Documented in docs/migration.md (declare the capability — the SDK client does this automatically when the callback is set — or drop the asking dependency). Direct ctx.elicit() / ctx.session.* calls outside resolvers are unaffected. Types of changes New feature (non-breaking change which adds functionality) Breaking change (fix or feature that would cause existing functionality to change) Documentation update Checklist I have read the MCP Documentation My code follows the repository's style guidelines New and existing tests pass locally I have added appropriate error handling I have added or updated documentation as needed Additional context Out of scope, noted for follow-ups: ClientSessionGroup cannot declare sampling sub-capabilities (the same pre-existing gap Client had before this PR), and the elicitation legacy leg's validation still lives in elicit_with_validation while sampling/roots go through send_request — kept as-is to leave the shipped elicitation path untouched. AI Disclaimer

Open Graph Description: Resolvers can now return Sample(...) or ListRoots() in addition to Elicit, covering all three request kinds the multi-round-trip flow allows (SEP-2322): elicitation, sampling, and roots. Motivation...

X Description: Resolvers can now return Sample(...) or ListRoots() in addition to Elicit, covering all three request kinds the multi-round-trip flow allows (SEP-2322): elicitation, sampling, and roots. Motivation...

Opengraph URL: https://github.com/modelcontextprotocol/python-sdk/pull/3049

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:def0860f-f4d4-1d76-63f6-74468a03cb92
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9D98:3E413F:62E86D:843B28:6A5B35D4
html-safe-nonce1da1a3b3aab4316836408e7f55b1b5ad4625f5912a6c2b8905c2188965bbb835
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RDk4OjNFNDEzRjo2MkU4NkQ6ODQzQjI4OjZBNUIzNUQ0IiwidmlzaXRvcl9pZCI6IjI3NTk5MDcwNzM3OTAyNjA2OTIiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmaca111aeccc0a18276e67ae3e8d733dc476e8d7be64689a78201224b2a8ab9739b
hovercard-subject-tagpull_request:3974326218
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/modelcontextprotocol/python-sdk/pull/3049/files
twitter:imagehttps://avatars.githubusercontent.com/u/224885523?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/224885523?s=400&v=4
og:image:altResolvers can now return Sample(...) or ListRoots() in addition to Elicit, covering all three request kinds the multi-round-trip flow allows (SEP-2322): elicitation, sampling, and roots. Motivation...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/modelcontextprotocol/python-sdk git https://github.com/modelcontextprotocol/python-sdk.git
octolytics-dimension-user_id182288589
octolytics-dimension-user_loginmodelcontextprotocol
octolytics-dimension-repository_id862584018
octolytics-dimension-repository_nwomodelcontextprotocol/python-sdk
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id862584018
octolytics-dimension-repository_network_root_nwomodelcontextprotocol/python-sdk
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c975978430e9ad293956f2bbdaf153b1bd84a99
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fpython-sdk%2Fpull%2F3049%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fpython-sdk%2Fpull%2F3049%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=modelcontextprotocol%2Fpython-sdk
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
modelcontextprotocol https://github.com/modelcontextprotocol
python-sdkhttps://github.com/modelcontextprotocol/python-sdk
Notifications https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fpython-sdk
Fork 3.7k https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fpython-sdk
Star 23.6k https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fpython-sdk
Code https://github.com/modelcontextprotocol/python-sdk
Issues 258 https://github.com/modelcontextprotocol/python-sdk/issues
Pull requests 301 https://github.com/modelcontextprotocol/python-sdk/pulls
Actions https://github.com/modelcontextprotocol/python-sdk/actions
Projects https://github.com/modelcontextprotocol/python-sdk/projects
Models https://github.com/modelcontextprotocol/python-sdk/models
Security and quality 6 https://github.com/modelcontextprotocol/python-sdk/security
Insights https://github.com/modelcontextprotocol/python-sdk/pulse
Code https://github.com/modelcontextprotocol/python-sdk
Issues https://github.com/modelcontextprotocol/python-sdk/issues
Pull requests https://github.com/modelcontextprotocol/python-sdk/pulls
Actions https://github.com/modelcontextprotocol/python-sdk/actions
Projects https://github.com/modelcontextprotocol/python-sdk/projects
Models https://github.com/modelcontextprotocol/python-sdk/models
Security and quality https://github.com/modelcontextprotocol/python-sdk/security
Insights https://github.com/modelcontextprotocol/python-sdk/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmodelcontextprotocol%2Fpython-sdk%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmodelcontextprotocol%2Fpython-sdk%2Fissues%2Fnew%2Fchoose
maxisbeyhttps://github.com/maxisbey
mainhttps://github.com/modelcontextprotocol/python-sdk/tree/main
resolve-server-requestshttps://github.com/modelcontextprotocol/python-sdk/tree/resolve-server-requests
Conversation 23 https://github.com/modelcontextprotocol/python-sdk/pull/3049
Commits 9 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits
Checks 38 https://github.com/modelcontextprotocol/python-sdk/pull/3049/checks
Files changed https://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Extend resolver DI to sampling and roots requests https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#top
Show all changes 9 commits https://github.com/modelcontextprotocol/python-sdk/pull/3049/files
f6bf0dd Extend resolver DI to sampling and roots requests maxisbey Jul 1, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/f6bf0dd608248ba0604b5c6263b9eccdf0406213
200b9e7 Tighten comments and docstrings in the resolver marker additions maxisbey Jul 1, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/200b9e7aa5a5fea5d33c261fec8dde7a999c82dd
e5aa503 docs: add a Sampling and roots page under Inside your handler maxisbey Jul 2, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/e5aa503b37e86d9315174526c25c2e5e4aa76a73
aa5b80c Gate resolver egress on the request channel's sendability maxisbey Jul 2, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/aa5b80c9f89f1bd9fb77dc30168b720d245472ce
6e4a174 Validate tool_choice-only sampling answers against the tools-mode result maxisbey Jul 2, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/6e4a174a87030abeb841d7b86b983e35c16f1784
05eb389 Share the tools-mode predicate across all sampling senders maxisbey Jul 2, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/05eb389e22c75908292b58a2cf1b8e93964f3475
b30ab0f Split the tools-mode sampling overloads for sound narrowing maxisbey Jul 2, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/b30ab0f62b1da178fd4b9b378a8bb0f33a297231
0016c5f Add an interaction-level feature walk for the resolver contract maxisbey Jul 6, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/0016c5f0d4d8ffc3b98c6ee4767dd2ec9311586d
d58f15d Make the feature-walk tests the canonical resolver pins maxisbey Jul 6, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3049/commits/d58f15d328397ec284e5086245b6a96e117c6bd2
Clear filters https://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
callbacks.md https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
dependencies.md https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1b820821f6ac044544315cf7fd102798cc569dbcaa07720eb8b4e550fe720a57
index.md https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-0373307b4c78f6a28fbbf5d87d9ba74a49cfff53f81f2b2e33be6cdae9ab104d
multi-round-trip.md https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-575e87faa3caf31fa61528ecf77dbe9611762e213722558f3360be6333fdc8f0
sampling-and-roots.md https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-53796ead8726c3b1805e52d6c0b6f220a830c3a6bf40594de8a4fd42167fe4fd
migration.md https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
tutorial004.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-549854f4205c034e4e0ebe64c66f7cb7840ab9a85d7ca1275b2490c22687f8ca
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-a7649c884b1c40f3501a02777836fc2e635c3b894aef6d6225dc2316d4ad77ce
tutorial001.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-01aef9672c1e6e0c252489d7b5f726da1cdb208ef22eb1477b91f36d1cdd2b83
tutorial002.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-787f592ab72bd364e2ab0d857e2d896a911758a3199c8f57f6c8c4b57d4bc664
mkdocs.yml https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-98d0f806abc9af24e6a7c545d3d77e8f9ad57643e27211d7a7b896113e420ed2
client.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1212dd4293d9fb8b9118c5b2f2afed4b9d4f227de7717f269aa0d64a251ce6e0
resolve.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-11e7b9b5b92bd12c2445dad78f3182ee7846a987d98a01a15aa454910cee97f3
session.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-9a603a2587011a188aa76ca19a32fcd343a253516325fbcfb4f7bfb6a814634c
validation.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-714ef52aedaa95c74f63b6e583fda076fd14ae060477542d61198a0235288a85
peer.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-7516fc8e5003b3509266f53789ae4f7873bf19b8ecda78e5ce81ecac9401bf74
test_dependencies.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-2c2e3ed20772cc0d8f2fb27b65184295a972f8330af8bff0faa7a831d0ef8880
test_sampling_and_roots.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-5ba1d67a5ce1dee7b1ddffed0f599719ac91c4ffcf76b6377bdd59d225dda7d8
test_resolve.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-5cf4640d448facc1292697df946c57e708a468be27bbac6cc04fd44584a97a21
test_session.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-ed22c8fef52dc8c1d840dc0825bc375c48b67dcc2b468bab084aded3af06fdcf
test_peer.py https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-4a0f459cebe082a1548305dfc7e0392930c36ef29665ca62e9ba87051931d22b
docs/client/callbacks.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs/client/callbacks.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
docs/handlers/dependencies.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1b820821f6ac044544315cf7fd102798cc569dbcaa07720eb8b4e550fe720a57
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs/handlers/dependencies.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1b820821f6ac044544315cf7fd102798cc569dbcaa07720eb8b4e550fe720a57
docs/handlers/index.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-0373307b4c78f6a28fbbf5d87d9ba74a49cfff53f81f2b2e33be6cdae9ab104d
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs/handlers/index.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-0373307b4c78f6a28fbbf5d87d9ba74a49cfff53f81f2b2e33be6cdae9ab104d
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-0373307b4c78f6a28fbbf5d87d9ba74a49cfff53f81f2b2e33be6cdae9ab104d
docs/handlers/multi-round-trip.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-575e87faa3caf31fa61528ecf77dbe9611762e213722558f3360be6333fdc8f0
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs/handlers/multi-round-trip.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-575e87faa3caf31fa61528ecf77dbe9611762e213722558f3360be6333fdc8f0
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-575e87faa3caf31fa61528ecf77dbe9611762e213722558f3360be6333fdc8f0
docs/handlers/sampling-and-roots.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-53796ead8726c3b1805e52d6c0b6f220a830c3a6bf40594de8a4fd42167fe4fd
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs/handlers/sampling-and-roots.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
docs/migration.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs/migration.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
docs_src/dependencies/tutorial004.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-549854f4205c034e4e0ebe64c66f7cb7840ab9a85d7ca1275b2490c22687f8ca
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs_src/dependencies/tutorial004.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
docs_src/sampling_and_roots/__init__.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-a7649c884b1c40f3501a02777836fc2e635c3b894aef6d6225dc2316d4ad77ce
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs_src/sampling_and_roots/__init__.py
Open in desktop https://desktop.github.com
docs_src/sampling_and_roots/tutorial001.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-01aef9672c1e6e0c252489d7b5f726da1cdb208ef22eb1477b91f36d1cdd2b83
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs_src/sampling_and_roots/tutorial001.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
docs_src/sampling_and_roots/tutorial002.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-787f592ab72bd364e2ab0d857e2d896a911758a3199c8f57f6c8c4b57d4bc664
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/docs_src/sampling_and_roots/tutorial002.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
mkdocs.ymlhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-98d0f806abc9af24e6a7c545d3d77e8f9ad57643e27211d7a7b896113e420ed2
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/mkdocs.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-98d0f806abc9af24e6a7c545d3d77e8f9ad57643e27211d7a7b896113e420ed2
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-98d0f806abc9af24e6a7c545d3d77e8f9ad57643e27211d7a7b896113e420ed2
src/mcp/client/client.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/src/mcp/client/client.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
src/mcp/server/mcpserver/__init__.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1212dd4293d9fb8b9118c5b2f2afed4b9d4f227de7717f269aa0d64a251ce6e0
View file https://github.com/modelcontextprotocol/python-sdk/blob/d58f15d328397ec284e5086245b6a96e117c6bd2/src/mcp/server/mcpserver/__init__.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3049/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1212dd4293d9fb8b9118c5b2f2afed4b9d4f227de7717f269aa0d64a251ce6e0
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1212dd4293d9fb8b9118c5b2f2afed4b9d4f227de7717f269aa0d64a251ce6e0
https://github.com/modelcontextprotocol/python-sdk/pull/3049/files#diff-1212dd4293d9fb8b9118c5b2f2afed4b9d4f227de7717f269aa0d64a251ce6e0
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3049/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.