René's URL Explorer Experiment


Title: draft: MRTR (SEP-2322) lowlevel plumbing + handler-shape comparison by maxisbey · Pull Request #2322 · modelcontextprotocol/python-sdk · GitHub

Open Graph Title: draft: MRTR (SEP-2322) lowlevel plumbing + handler-shape comparison by maxisbey · Pull Request #2322 · modelcontextprotocol/python-sdk

X Title: draft: MRTR (SEP-2322) lowlevel plumbing + handler-shape comparison by maxisbey · Pull Request #2322 · modelcontextprotocol/python-sdk

Description: Draft implementation of Multi Round-Trip Requests (SEP-2322) for the Python SDK. Two commits: lowlevel plumbing, then the handler-shape comparison deck. Counterpart to typescript-sdk#1701 — same weather-lookup tool throughout, so the diff between option files is the argument. Unlike the TS demos, the lowlevel plumbing here is real (not smuggled through JSON text blocks); every option round-trips IncompleteResult through the actual wire protocol. Commit 1: types + lowlevel + client retry loop Where Shape Types src/mcp/types/_types.py IncompleteResult (discriminated by result_type), InputRequest/InputResponse unions, input_responses+request_state folded into RequestParams Server src/mcp/server/lowlevel/server.py on_call_tool return widened to CallToolResult | IncompleteResult | CreateTaskResult Shared src/mcp/shared/session.py send_request accepts TypeAdapter via overload — enables union result parsing Session src/mcp/client/session.py call_tool_mrtr() returns the union; call_tool() stays narrow, raises clearly on IncompleteResult Client src/mcp/client/client.py call_tool() drives the retry loop internally — dispatches embedded input requests to elicitation_callback/sampling_callback/list_roots_callback, retries with collected responses + echoed request_state. max_mrtr_rounds=8 bound. The client-side delta from today's code is zero: elicitation_callback is the same function whether it fires from SSE push or MRTR retry. Commit 2: handler-shape comparison SDK primitives in src/mcp/server/experimental/mrtr.py: MrtrCtx.once(key, fn) — idempotency guard tracked in request_state (Option F) ToolBuilder — incomplete_step(...).end_step(...).build(); end_step runs exactly once regardless of round count (Option G) input_response(params, key) — sugar for the guard-first pattern sse_retry_shim() + dispatch_by_version() — comparison artifacts for A/D Option examples in examples/servers/mrtr-options/: Author writes SDK does Hidden re-entry Old client gets E MRTR-native only Nothing No Result w/ default, or error A MRTR-native only Retry-loop over SSE Yes, safe Full elicitation B await elicit() Exception → IncompleteResult Yes, unsafe Full elicitation C One handler, if version branch Version accessor No Full elicitation D Two handlers Picks by version No Full elicitation F MRTR-native + ctx.once wraps once() guard in request_state No (same as E) G Step functions + .build() Step-tracking in request_state No (same as E) Testing tests/experimental/test_mrtr.py parametrises E/F/G against the same Client + callback to prove identical wire behaviour — the server's internal choice doesn't leak. The footgun test measures audit_log count: naive handler fires twice for one tool call, F and G fire once. tests/client/test_client.py has 8 new E2E tests covering the retry loop (single-round elicitation, multi-round with request_state accumulation, sampling/roots dispatch, round-limit, missing-callback error paths). Not in scope Persistent/Tasks workflow — ServerTaskContext already does input_required; MRTR integration is a separate PR mrtrOnly client flag — trivial to add, not demoed requestState HMAC signing — called out in code comments; demos use plain base64-JSON High-level MCPServer integration (@server.tool decorator shape) — lowlevel-first, this PR stops at Server Exploratory — not intended to merge as-is. Open questions: which of F/G (or both) to ship as SDK primitives, whether to keep call_tool_mrtr as public or fold the union into call_tool once SEP finalises, whether sse_retry_shim belongs in the SDK at all vs docs-only. Types of changes Bug fix (non-breaking change which fixes an issue) New feature (non-breaking change which adds functionality) Breaking change (fix or feature that would cause existing functionality to change) Documentation update

Open Graph Description: Draft implementation of Multi Round-Trip Requests (SEP-2322) for the Python SDK. Two commits: lowlevel plumbing, then the handler-shape comparison deck. Counterpart to typescript-sdk#1701 — same we...

X Description: Draft implementation of Multi Round-Trip Requests (SEP-2322) for the Python SDK. Two commits: lowlevel plumbing, then the handler-shape comparison deck. Counterpart to typescript-sdk#1701 — same we...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:68b7a632-2b29-b75e-865a-4a0fb74fc436
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id99CA:227DF9:84594B:BC9DF6:6A5A0B61
html-safe-nonce7ac3c3b13cf3f098c28b2c67151afdb61667a2df3c5d03381b62e9f886a39c33
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5OUNBOjIyN0RGOTo4NDU5NEI6QkM5REY2OjZBNUEwQjYxIiwidmlzaXRvcl9pZCI6IjQwOTcwMDYzNTgxMjE1NDg2NDEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacf980bc633cb7474edb969b85e45401d5cf1435e11d2b52c60afaba4a3c25f476
hovercard-subject-tagpull_request:3425717281
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/2322/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:altDraft implementation of Multi Round-Trip Requests (SEP-2322) for the Python SDK. Two commits: lowlevel plumbing, then the handler-shape comparison deck. Counterpart to typescript-sdk#1701 — same we...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None8c2fe7351e4e987cb8f75e2425a0b895d807779bc4c2d3c312be0a54082219f7
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
release491710c7a8eecca9d0a06bd157646f2685d8c87b
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fpython-sdk%2Fpull%2F2322%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%2F2322%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/2322/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2322/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 255 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
mrtr-drafthttps://github.com/modelcontextprotocol/python-sdk/tree/mrtr-draft
Conversation 2 https://github.com/modelcontextprotocol/python-sdk/pull/2322
Commits 5 https://github.com/modelcontextprotocol/python-sdk/pull/2322/commits
Checks 29 https://github.com/modelcontextprotocol/python-sdk/pull/2322/checks
Files changed https://github.com/modelcontextprotocol/python-sdk/pull/2322/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files
draft: MRTR (SEP-2322) lowlevel plumbing + handler-shape comparison https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#top
Show all changes 5 commits https://github.com/modelcontextprotocol/python-sdk/pull/2322/files
25fb05f feat(mrtr): add IncompleteResult types and client retry loop (SEP-2322) maxisbey Mar 20, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/2322/commits/25fb05f416ab4663992c85aad3757d4870089c59
29cb1ba examples(mrtr): handler-shape comparison deck (SEP-2322) maxisbey Mar 20, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/2322/commits/29cb1ba837114cfa1eed54345ce3c8bc4e7136bf
4facab7 examples(mrtr): add basic and multi-round lowlevel reference examples maxisbey Mar 20, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/2322/commits/4facab71152ce2c07ee86e00273a1acb7d3ccc4c
1acd0ce refactor(mrtr): split experimental module into package maxisbey Mar 20, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/2322/commits/1acd0ce4fc6b3ef5503958bd7f5d0c2cfcf3a7b4
c54fe3b feat(mrtr): linear continuation-based handler — Option H maxisbey Mar 20, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/2322/commits/c54fe3b36a8b3714787aff023cb2514770d0f769
Clear filters https://github.com/modelcontextprotocol/python-sdk/pull/2322/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files
README.md https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-d9b6f0077836b81e17f4c73eb1ec6ff821d003fb6de49af595f46e5d34025d55
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-e662cbad5ce0452a123c5833ffe7f5efa508fe6657d6911b9d16ef433e7a0701
_shared.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-2b60c047e1f1fe2fcebc8cfb2d87cb928851f7edbf46b23fc77ae4e882ebee4b
basic.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-39e4deeee74df9c92bf7813c84e210d61fadb201b6c85801453494e74fe3e66b
basic_multiround.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-e75acfa0789fe630d4cd860e9ee748f0b74299b3e13e9977ea568d7f67371be5
option_a_sse_shim.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-e11bcc68fe7d33577521c6fcf5b6a5d2d588381ed05699a31ba49a7d6aea11d5
option_b_await_shim.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-da60bb30eb3f74e982ed2c0c868b816e596c5ad9b27ab3cbc5d5ac6b18a5e887
option_c_version_branch.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-92ab51f2911cec3cda1452eefbd548d15525056103923236078279dda88eee12
option_d_dual_handler.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-b187653d7068d0120a5064a2c00ec3da36055f7b6e5553f8543d761d8204d19c
option_e_degrade.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-202275b37d2e1e68a9da00b9ab2a4675a1264098d3e1247a6755c0aedcfc5ae4
option_f_ctx_once.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-9fcea64a94c1baef183fe9b2e67c1985e650cb7124937b86a7101c33aeaca231
option_g_tool_builder.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-1a7cc25cb078a031ebc24e61ffabdc3b58532fb5b47e3685e92ec0b5fbfbfe46
option_h_linear.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-37d1e62551f790f8213ab479e491a91c41d4e16f7d20c902a2d423dd8437201c
pyproject.toml https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-059dc6f744207a62fb4d6c98f4e4b9a6599f4fc693d5bc365a35486dcaf3704b
client.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-34e945ebc2fea8a427b8d0c45ccd28eb4e4cceb33c82048bd7998e6bb2f754f3
session.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-634d1abcb8bda1a784f31e3431a10124e387f487dd243a54244515b4972aa0ee
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-38725261abbb8b5778b47ecfd53c920cbeea5cdaad42c9880bbbe21cbec0f2f4
_state.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-00923dd2776d1d4365840a60b81b35dc5abfd791b2f49460c849d9e83181c00b
builder.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-41da0edd8ecb2ab387ff09dce813b6052b1c62ec2e09c11ac45b5b76e97c9ccd
compat.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-6775b7664a64d53df02458ebd454a17a92f7361cfff989dc5e4607e9bf897903
context.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-39140492f2e80a34b7a6e2fa53b465a0d79fef35028ebca7a6d9a66bb4e60a03
linear.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-c97e689faeaaaaff0716261ee787c5ab3e20c35fc3ee576e86cd14abe4a7671e
server.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-b21bf5e21c058ccfddb404c209f2d4288e4f32b121111ffc9d466638631d13e4
session.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-aaa1596dd4db91f5cd7f743c8afbe58596daf01a2ecec4a0024768f7409fb1dc
__init__.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-9f1fb2e597d3bbb6f7b01cff7178a42325dec6460c16dfa74838da9a766efcf2
_types.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-727bcd5cda4a440f63005368c3cbc5f6308f40630901166fd456039c52d3363e
test_client.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-f91d7d1bfecb41d80a4cc73133b82560b7284a2af2d6630c49b983ca9366ea13
test_mrtr.py https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-0d404304ae02651fecc02f39b149015bbcc51ef3b90a24e88cff7850f5cb785d
uv.lock https://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-84321598744d84dbee2318e634c74c9aae39a1c253f1c4bd17ebf9ef2f807b11
examples/servers/mrtr-options/README.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-d9b6f0077836b81e17f4c73eb1ec6ff821d003fb6de49af595f46e5d34025d55
View file https://github.com/modelcontextprotocol/python-sdk/blob/c54fe3b36a8b3714787aff023cb2514770d0f769/examples/servers/mrtr-options/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2322/{{ revealButtonHref }}
examples/servers/mrtr-options/mrtr_options/__init__.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-e662cbad5ce0452a123c5833ffe7f5efa508fe6657d6911b9d16ef433e7a0701
View file https://github.com/modelcontextprotocol/python-sdk/blob/c54fe3b36a8b3714787aff023cb2514770d0f769/examples/servers/mrtr-options/mrtr_options/__init__.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2322/{{ revealButtonHref }}
examples/servers/mrtr-options/mrtr_options/_shared.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-2b60c047e1f1fe2fcebc8cfb2d87cb928851f7edbf46b23fc77ae4e882ebee4b
View file https://github.com/modelcontextprotocol/python-sdk/blob/c54fe3b36a8b3714787aff023cb2514770d0f769/examples/servers/mrtr-options/mrtr_options/_shared.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2322/{{ revealButtonHref }}
examples/servers/mrtr-options/mrtr_options/basic.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files#diff-39e4deeee74df9c92bf7813c84e210d61fadb201b6c85801453494e74fe3e66b
View file https://github.com/modelcontextprotocol/python-sdk/blob/c54fe3b36a8b3714787aff023cb2514770d0f769/examples/servers/mrtr-options/mrtr_options/basic.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/2322/{{ revealButtonHref }}
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2322/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2322/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.