René's URL Explorer Experiment


Title: Client auto-resolves InputRequiredResult via existing callbacks (SEP-2322) by maxisbey · Pull Request #2998 · modelcontextprotocol/python-sdk · GitHub

Open Graph Title: Client auto-resolves InputRequiredResult via existing callbacks (SEP-2322) by maxisbey · Pull Request #2998 · modelcontextprotocol/python-sdk

X Title: Client auto-resolves InputRequiredResult via existing callbacks (SEP-2322) by maxisbey · Pull Request #2998 · modelcontextprotocol/python-sdk

Description: Client.call_tool / get_prompt / read_resource now resolve InputRequiredResult automatically: each entry in input_requests is dispatched to the same sampling_callback / elicitation_callback / list_roots_callback that already serve legacy server-to-client RPCs, the responses are collected, and the call is retried with input_responses + the echoed request_state until a terminal result arrives. allow_input_required is removed from Client; for manual control (inspecting rounds, persisting request_state across processes) use client.session.call_tool(..., allow_input_required=True) which still returns the raw union. Motivation and Context Client half of SEP-2322 / #2898. The server side and the manual ClientSession surface landed in #2974; this adds the policy-layer driver so a high-level Client user never sees InputRequiredResult directly. Shape client/_input_required.py (new): pure, method-agnostic driver. run_input_required_driver(first, *, dispatch, retry, max_rounds) loops until non-IIR. Concurrent dispatch via anyio.create_task_group(). State-only legs (server returned request_state with no input_requests) back off exponentially: 50ms doubling to a 250ms cap, counter reset by any leg with input requests. request_state is a byte-exact str | None pass-through, never inspected. max_rounds default 10 (matches typescript-sdk; csharp/go use the same constant). InputRequiredRoundsExceededError on cap; MCPError when a callback returns ErrorData. ClientSession._dispatch_input_request: extracted from the existing _on_request match-case so the legacy RPC path and the driver share one dispatch table. ClientRequestContext.request_id carries the input_requests key (a str, fits the existing RequestId = str | int). ClientSession.get_prompt / read_resource: gain the same input_responses / request_state / allow_input_required overload set that call_tool already has, with union TypeAdapters alongside _CallToolResultAdapter. Client: input_required_max_rounds: int = 10 dataclass field; shared _drive_input_required helper; call_tool / get_prompt / read_resource collapse to one signature returning the bare result type. Also: examples/stories/mrtr/ promoted from deferred stub; docs/advanced/multi-round-trip.md + docs_src/mrtr/tutorial003.py rewritten; conformance fixture sep-2322-client-request-state rewritten to drive the same five wire-shape checks via the auto-loop with a registered elicitation_callback. How Has This Been Tested? 9 driver unit tests in tests/client/test_input_required.py (single/multi-round, max-rounds cap, ErrorData raises, byte-exact request_state, backoff sequence, concurrent dispatch with event-gate, state-only counter reset). 7 integration tests in tests/client/test_client.py against in-memory MCPServer (all three callback types, multi-round with evolving state, no-callback-registered raises, get_prompt/read_resource happy path). tests/client/test_session.py covers the widened get_prompt/read_resource. tests/docs_src/test_mrtr.py exercises the new tutorial. Conformance sep-2322-client-request-state (CI). Breaking Changes Alpha-only API removal: Client.call_tool / get_prompt / read_resource no longer accept allow_input_required. Use client.session.(..., allow_input_required=True) for the manual surface. Noted in docs/migration.md. 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 Open for review: ClientSessionGroup.call_tool is left at the mechanics layer (still forwards allow_input_required). read_timeout_seconds applies per round, not to the whole loop. No conformance scenario exercises the auto-loop's input-gathering directly; the existing scenario only checks wire shapes (which the auto-loop produces correctly). Worth a conformance-repo issue. Part of #2898. AI Disclaimer

Open Graph Description: Client.call_tool / get_prompt / read_resource now resolve InputRequiredResult automatically: each entry in input_requests is dispatched to the same sampling_callback / elicitation_callback / list_r...

X Description: Client.call_tool / get_prompt / read_resource now resolve InputRequiredResult automatically: each entry in input_requests is dispatched to the same sampling_callback / elicitation_callback / list_r...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:8523bb2a-0fd5-7c79-0068-a6d84ad4fffd
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD314:3EE07D:A9ABD5:E413A7:6A5A85BE
html-safe-nonce5650a03660e64390166fcf28acfc3e5f046b950be9a05b7b25073c8bedf78710
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMzE0OjNFRTA3RDpBOUFCRDU6RTQxM0E3OjZBNUE4NUJFIiwidmlzaXRvcl9pZCI6IjI5ODMwNzcyNjgxNjIyNTAxNzQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac6f42b5817ade41366c02d353b8c335a34e743b2a855750d207815a0489e6c510
hovercard-subject-tagpull_request:3942802776
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/2998/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:altClient.call_tool / get_prompt / read_resource now resolve InputRequiredResult automatically: each entry in input_requests is dispatched to the same sampling_callback / elicitation_callback / list_r...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None922bdba685ea48400234d557977f0e32d9adbae6f5125725b4f48cacc6801106
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
release7c8a44665d760d73ead7e85d8f88b299152aa681
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fpython-sdk%2Fpull%2F2998%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%2F2998%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/2998/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2998/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 256 https://github.com/modelcontextprotocol/python-sdk/issues
Pull requests 303 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
client-mrtrhttps://github.com/modelcontextprotocol/python-sdk/tree/client-mrtr
Conversation 6 https://github.com/modelcontextprotocol/python-sdk/pull/2998
Commits 2 https://github.com/modelcontextprotocol/python-sdk/pull/2998/commits
Checks 34 https://github.com/modelcontextprotocol/python-sdk/pull/2998/checks
Files changed https://github.com/modelcontextprotocol/python-sdk/pull/2998/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files
Client auto-resolves InputRequiredResult via existing callbacks (SEP-2322) https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#top
Show all changes 2 commits https://github.com/modelcontextprotocol/python-sdk/pull/2998/files
82c3ad6 Client auto-resolves InputRequiredResult via existing callbacks (SEP-… maxisbey Jun 26, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/2998/commits/82c3ad6c1ac2a5c5bff2ed9cf8837171b21f337a
48053e6 docs: cross-link callbacks/elicitation/deprecated to MRTR; add when-t… maxisbey Jun 26, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/2998/commits/48053e6b7be434b7e68b09781d0a47763f550116
Clear filters https://github.com/modelcontextprotocol/python-sdk/pull/2998/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files
client.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-823c6bf6584b99e84ad74327720949300eb016f0efd6497c143dbd56307b058f
deprecated.md https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-56dc01bf14dae3ca51d74cabaae2ebf3073f53c670b0f3ed1c062fce3eb76e33
multi-round-trip.md https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-bf12f93d186d9ac3faf1377b597a60bfeb11a1e29c493fd4e6ed20d88d693666
callbacks.md https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
migration.md https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
elicitation.md https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-2068b11b69cd428a977a3c38fa01e668b0970900bf62f0bfa712c6011cc02fd3
tutorial002.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-0dae81576a591f465f70656ed233073f3cfb880681f5bca47fa1c76ea5edcc98
tutorial003.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-1a5458032cea76220065877139e08bd7e58abddf9e8ab7d047749fdd77ee91af
manifest.toml https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-3465e861f1dadb6428365d1d397e322cf53ad60e35501e6aef36abb00106b189
README.md https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-acb1cb1a1806735db8eed206d3c486f4f5888117866367424632190dfdae21a4
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-57134f914f3cd3db2f2efcbe926b276acaba3f66b74214503f7984ca204de5f0
client.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-5a3c729aeac385ab1cafc7e468bcb3d2b5cf435b0687556b6bcafd888883c123
server.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-abb5f95dda1a20a1101c09ec9713e44cc560f760dc83e68fe7c05f225d757ab8
server_lowlevel.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-205ea99cad38bed95d2a84b72911cb877b6108d039e6d5ab3dfd1f92e0664767
_types.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-bd19c5ddeaca61e4fcc9ce321fbe2b44ee9a9c7e1ac6bcd4a4b2c03f8925564a
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-208c9cff9cd42bad47f1042db6861d931673ca78db6de12bd4d8f65885f8f126
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-2ed086f1fd8bf6bd85dca3999c6f521c5fe2df107b270a17b5d41aa19ce3b4b7
_input_required.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-dcfa0eed2447f84a2faab485ae5ea0f09080e28091167dafd9b94820dfa6df00
client.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
session.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-634d1abcb8bda1a784f31e3431a10124e387f487dd243a54244515b4972aa0ee
test_client.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-f91d7d1bfecb41d80a4cc73133b82560b7284a2af2d6630c49b983ca9366ea13
test_input_required.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-76ab06321b60046aadb54457281134c5864034437dacdb0b843710905992c538
test_session.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-623490a9c2dd576cc59e89f8d51f64acfffdeaad940e0bd4a0a51a50bc30d92d
test_mrtr.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-b01d5962d34f3e53541e38bde069e9ada14fe1458db3fd68c9b2773fea0ade03
test_server.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-c191383f010475fc22bf69d35f14f16d7e45098b05a1a0f03ad66d6c151d1f34
test_types.py https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-bd467a363c9f155a2e6a7716aeca0c351089135a53d09a66138cea4f16506ebd
.github/actions/conformance/client.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-823c6bf6584b99e84ad74327720949300eb016f0efd6497c143dbd56307b058f
View file https://github.com/modelcontextprotocol/python-sdk/blob/48053e6b7be434b7e68b09781d0a47763f550116/.github/actions/conformance/client.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2998/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-823c6bf6584b99e84ad74327720949300eb016f0efd6497c143dbd56307b058f
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-823c6bf6584b99e84ad74327720949300eb016f0efd6497c143dbd56307b058f
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-823c6bf6584b99e84ad74327720949300eb016f0efd6497c143dbd56307b058f
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-823c6bf6584b99e84ad74327720949300eb016f0efd6497c143dbd56307b058f
docs/advanced/deprecated.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-56dc01bf14dae3ca51d74cabaae2ebf3073f53c670b0f3ed1c062fce3eb76e33
View file https://github.com/modelcontextprotocol/python-sdk/blob/48053e6b7be434b7e68b09781d0a47763f550116/docs/advanced/deprecated.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2998/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-56dc01bf14dae3ca51d74cabaae2ebf3073f53c670b0f3ed1c062fce3eb76e33
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-56dc01bf14dae3ca51d74cabaae2ebf3073f53c670b0f3ed1c062fce3eb76e33
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-56dc01bf14dae3ca51d74cabaae2ebf3073f53c670b0f3ed1c062fce3eb76e33
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-56dc01bf14dae3ca51d74cabaae2ebf3073f53c670b0f3ed1c062fce3eb76e33
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-56dc01bf14dae3ca51d74cabaae2ebf3073f53c670b0f3ed1c062fce3eb76e33
docs/advanced/multi-round-trip.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-bf12f93d186d9ac3faf1377b597a60bfeb11a1e29c493fd4e6ed20d88d693666
View file https://github.com/modelcontextprotocol/python-sdk/blob/48053e6b7be434b7e68b09781d0a47763f550116/docs/advanced/multi-round-trip.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2998/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-bf12f93d186d9ac3faf1377b597a60bfeb11a1e29c493fd4e6ed20d88d693666
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-bf12f93d186d9ac3faf1377b597a60bfeb11a1e29c493fd4e6ed20d88d693666
docs/client/callbacks.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
View file https://github.com/modelcontextprotocol/python-sdk/blob/48053e6b7be434b7e68b09781d0a47763f550116/docs/client/callbacks.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2998/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-138dbe4e53dce3865b95fe85d681a60ced1156ab96a13ffa53b9f36e71b30449
docs/migration.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
View file https://github.com/modelcontextprotocol/python-sdk/blob/48053e6b7be434b7e68b09781d0a47763f550116/docs/migration.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2998/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
https://github.com/modelcontextprotocol/python-sdk/pull/2998/checks?check_run_id=83686700986
claudehttps://github.com/apps/claude
Jun 26, 2026https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#r3482330610
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-758ba107a728fccfdf0d098b2c06ded59127dd53ea287d630f72fb51040bc72d
docs/tutorial/elicitation.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-2068b11b69cd428a977a3c38fa01e668b0970900bf62f0bfa712c6011cc02fd3
View file https://github.com/modelcontextprotocol/python-sdk/blob/48053e6b7be434b7e68b09781d0a47763f550116/docs/tutorial/elicitation.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2998/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-2068b11b69cd428a977a3c38fa01e668b0970900bf62f0bfa712c6011cc02fd3
docs_src/mrtr/tutorial002.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-0dae81576a591f465f70656ed233073f3cfb880681f5bca47fa1c76ea5edcc98
View file https://github.com/modelcontextprotocol/python-sdk/blob/48053e6b7be434b7e68b09781d0a47763f550116/docs_src/mrtr/tutorial002.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2998/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-0dae81576a591f465f70656ed233073f3cfb880681f5bca47fa1c76ea5edcc98
https://github.com/modelcontextprotocol/python-sdk/pull/2998/files#diff-0dae81576a591f465f70656ed233073f3cfb880681f5bca47fa1c76ea5edcc98
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2998/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2998/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.