René's URL Explorer Experiment


Title: RFC 8707 Resource Indicators Implementation by ihrpr · Pull Request #991 · modelcontextprotocol/python-sdk · GitHub

Open Graph Title: RFC 8707 Resource Indicators Implementation by ihrpr · Pull Request #991 · modelcontextprotocol/python-sdk

X Title: RFC 8707 Resource Indicators Implementation by ihrpr · Pull Request #991 · modelcontextprotocol/python-sdk

Description: RFC 8707 Resource Indicators Implementation Background: Spec Changes PR rfc8707 TS Implementation Additional changes for not requiring strict matching Closes: #962 Implements Resource Indicators validation for OAuth 2.0 (RFC 8707; spec change) . Set the resource parameter in OAuth authorization and token exchange flows to bind tokens to the MCP server Updated token_verifier.py to show how to perform resource verification (disabled by default, run with --oauth-strict to enable) Validation of resource uses hierarchical matching Motivation and Context Facilitate prevention of token theft/confusion attacks where a malicious MCP server steals tokens meant for other services by explicitly binding tokens to their intended resources and showing how a server can check this binding. This security vulnerability was identified in modelcontextprotocol/modelcontextprotocol#544. How Resource Indicators Work Clients automatically include a resource parameter in their OAuth requests that identifies which MCP server they intend to access (e.g., resource=https://api.example.com/mcp). This happens transparently without any action from developers using the SDK. Authorization Servers (AS) receive this resource parameter and include it in the tokens they issue, typically as the aud (audience) claim in JWT tokens. This cryptographically binds each token to its intended MCP server. MCP Resource Servers (RS) can verify that incoming tokens were specifically issued for them by checking the audience claim matches their server URL. With --oauth-strict enabled, the server rejects tokens that don't include the correct resource identifier, preventing token confusion attacks. Breaking Changes While the change is breaking at a protocol level, it should not require code changes from SDK users (just SDK version bumping). Client developers: No code changes required. The SDK automatically extracts and includes the resource parameter from the server URL Server developers: Resource validation is left to implementors (see token_verifier.py) The Authorization Server (if external) needs to support / relay the resource param, and enough of the clients need to update their SDK to start setting the resource param in their auth requests. This is why server.py only validates the resource if --oauth-strict is set. Each server should ideally treat each MCP server as a distinct resource in their PRM. If they host many servers under the same domain, the resource should be specific to a single server, not be domain-wide (otherwise any "bad apple" server might be able to benefit from resource confusion w/ its siblings). Auth providers: should be updated to accept and relay resource parameter.

Open Graph Description: RFC 8707 Resource Indicators Implementation Background: Spec Changes PR rfc8707 TS Implementation Additional changes for not requiring strict matching Closes: #962 Implements Resource Indicators ...

X Description: RFC 8707 Resource Indicators Implementation Background: Spec Changes PR rfc8707 TS Implementation Additional changes for not requiring strict matching Closes: #962 Implements Resource Indicators ...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:e14276a1-02fc-80ba-2473-001e53f5f76b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9878:1F8EF7:219E7B:2D4598:6A5A6C44
html-safe-noncedc2cfaafee094e6c26eaef7dba5c6d04495153322bc602a3d5215e049879564c
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5ODc4OjFGOEVGNzoyMTlFN0I6MkQ0NTk4OjZBNUE2QzQ0IiwidmlzaXRvcl9pZCI6IjU0Mjk4MjkxODY0NjU5ODM1NTYiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacea4bae7f4bfeac2b04149437404c522fc07fc4b731ce72472c5268d18414b085
hovercard-subject-tagpull_request:2607444337
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/991/files
twitter:imagehttps://avatars.githubusercontent.com/u/21148364?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/21148364?s=400&v=4
og:image:altRFC 8707 Resource Indicators Implementation Background: Spec Changes PR rfc8707 TS Implementation Additional changes for not requiring strict matching Closes: #962 Implements Resource Indicators ...
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
release03575fc589c0e2692de839d7ca2b3aa5b5179f52
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fpython-sdk%2Fpull%2F991%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%2F991%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/991/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/991/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
ihrprhttps://github.com/ihrpr
mainhttps://github.com/modelcontextprotocol/python-sdk/tree/main
ihrpr/RFC-8707https://github.com/modelcontextprotocol/python-sdk/tree/ihrpr/RFC-8707
Conversation 10 https://github.com/modelcontextprotocol/python-sdk/pull/991
Commits 35 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits
Checks 12 https://github.com/modelcontextprotocol/python-sdk/pull/991/checks
Files changed https://github.com/modelcontextprotocol/python-sdk/pull/991/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/991/files
RFC 8707 Resource Indicators Implementation https://github.com/modelcontextprotocol/python-sdk/pull/991/files#top
Show all changes 35 commits https://github.com/modelcontextprotocol/python-sdk/pull/991/files
5c2097a Implement separate Authorization Server (AS) / Resource Server (RS) ihrpr Jun 18, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/5c2097a6b7b22004b01f63b09cb54b8c284e603e
7ab353f update readme ihrpr Jun 18, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/7ab353f750db89409e1a8fb82eeb537893fafcf1
59d9bfd update comment ihrpr Jun 18, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/59d9bfdd065db3d13eeb3727373c154867798528
e087e30 server ihrpr Jun 18, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/e087e30c2d2926d2f58ef3f7a38931c7c2792c06
395c3ac clean up ihrpr Jun 18, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/395c3ac3257275e447665e87bf97e7b026bb9d11
beef439 fix tests ihrpr Jun 18, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/beef439089b0279c7301436f1405408d8a658d6a
36d1e0d add legacy mcp server as AS server for testing backwards compatibility ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/36d1e0de2a2903fb20c7312be60053bb26297a0f
f2e31ca json fix ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/f2e31ca0d85d1edc814c53c464e0360eb88e0b56
8862507 remove use of http clients in auth provider ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/8862507f660121bf598480175f3b29fb26be16cc
90005e4 refactor ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/90005e43e057cb9aaa1cda5fc4e3a5fa5d0e4b99
86283c3 remove state machine, it overcomplicates things ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/86283c394e4065e38bb0f775bd30e1ed1afa7960
38c574f ruff ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/38c574fa08450314620e332c25dff3556943b70a
8080d87 fix comment ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/8080d87d3b0d9daed18bc1a7e430cab0bb7dc252
a565625 comments ihrpr Jun 19, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/a565625ae66d4f429d5d6a12ff73269ad1c818d9
a8c99eb refactor legacy AS+MCP and AS examples ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/a8c99eb22bdb913c4fdfc59b12639e612c060e4b
76dbf53 improve comments ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/76dbf53939d75aee1c3fcfd93fb40ce8b8329244
9b2e3df pyright and ruff ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/9b2e3df6dccf58e2a7ab8e52ec9a849c2a40e02b
926745a simplify server examples, address comments ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/926745a1e0ce17838c15e61d2915ff685b00ded8
fd353c5 remove host param from example servers ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/fd353c5b679cedee5d6b2e2588c0b346dd2ffb43
ae4b6dc RFC 8707 Resource Indicators Implementation ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/ae4b6dc6e27f9311945371785fe32b34fe70a504
695531f clean up notes ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/695531f63734abbac98952b9593cf1dc32924e42
5208468 ruff ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/520846832ce4ef566504133256f7b209ad03aaba
ef8d546 add readme ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/ef8d546cee12b514f0a87f3f92e3b754293a824e
7787621 Merge branch 'ihrpr/auth2' into ihrpr/RFC-8707 ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/7787621fee6b2f6c269e3dc39b4823b691da0ca3
99e1db2 fix dependency ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/99e1db254948ff56bb7a2102901b0a0440ace194
f1e4e02 Merge branch 'ihrpr/auth2' into ihrpr/RFC-8707 ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/f1e4e02e5e9c8111bc8515d182f809faac57ca40
3cc55fc fix readme ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/3cc55fcb4f98e7a0612868206d1ff611e9e1fd57
a024ca8 fix readme ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/a024ca8dc7955df6806285a27171e1acaf420b92
d7990fc Merge branch 'ihrpr/auth2' into ihrpr/RFC-8707 ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/d7990fcf45d13a45f463429f5b9c9389d9676cd8
e59fbdf apply suggested changes ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/e59fbdf86e437aa4fe41690d4125998759cb6319
96acbc1 fix AS example and add readme ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/96acbc131dc3190baeb408b5a25faae70a020977
9b400b2 readme ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/9b400b279dcd6ac0b31d8d0671f105c78c03a052
681a718 format ihrpr Jun 20, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/681a718214a6d3751bed3421f62d3561f9512e43
c5e3c6d Merge branch 'main' into ihrpr/RFC-8707 ihrpr Jun 23, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/c5e3c6d926d17ace59dfb58db96034685c22d8c9
c57e05e fix after merge ihrpr Jun 23, 2025 https://github.com/modelcontextprotocol/python-sdk/pull/991/commits/c57e05eaa004109fd337b91caeeeabd0c411aa80
Clear filters https://github.com/modelcontextprotocol/python-sdk/pull/991/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/991/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/991/files
README.md https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0ff3cc0252aa8b36c1cfe96c47bbb8fd5ed63b25758ba6e7a57298e5836d26d3
auth_server.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-1923b3db33049224b57ac8bf6131919e088dd382ebaa61902f49ce6d601b7899
github_oauth_provider.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
server.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
token_verifier.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-488377b765d8b32e8e5fb73fa28dec511790c79066d63d37b2e18d85ee5ef19d
auth.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
authorize.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-29f49c82612bbc9e8070a2be90b36aa33ca72f1ddae66f15f261bfcbb1a9a85d
token.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0bfdf5a468abdd078a0287db095a4ad5ebfcb04ea3e437026cdc8038c137ecab
provider.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-f7e852ad288ea2750460eb8e8ef0d6152216cd97ae505acd5f06146cf866abec
auth_utils.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-fbdc8420ca151dd080002401442d8da9bee4df97f55498baf05f570990c97405
test_auth_utils.py https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-756dfba56088748e16f4d23c41a507fbd7abdbfb164a99a747015d4f9a25bfc5
examples/servers/simple-auth/README.mdhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0ff3cc0252aa8b36c1cfe96c47bbb8fd5ed63b25758ba6e7a57298e5836d26d3
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/examples/servers/simple-auth/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0ff3cc0252aa8b36c1cfe96c47bbb8fd5ed63b25758ba6e7a57298e5836d26d3
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0ff3cc0252aa8b36c1cfe96c47bbb8fd5ed63b25758ba6e7a57298e5836d26d3
examples/servers/simple-auth/mcp_simple_auth/auth_server.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-1923b3db33049224b57ac8bf6131919e088dd382ebaa61902f49ce6d601b7899
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/examples/servers/simple-auth/mcp_simple_auth/auth_server.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-1923b3db33049224b57ac8bf6131919e088dd382ebaa61902f49ce6d601b7899
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-1923b3db33049224b57ac8bf6131919e088dd382ebaa61902f49ce6d601b7899
examples/servers/simple-auth/mcp_simple_auth/github_oauth_provider.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/examples/servers/simple-auth/mcp_simple_auth/github_oauth_provider.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-09fc65598e049957f0a260db64f40b382742c91e979c67b4a5e61970beb33130
examples/servers/simple-auth/mcp_simple_auth/server.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/examples/servers/simple-auth/mcp_simple_auth/server.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-d6f6fc5668f272edf1a3182b22b034f75510b1902067b23b39cd07c278b1aed5
examples/servers/simple-auth/mcp_simple_auth/token_verifier.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-488377b765d8b32e8e5fb73fa28dec511790c79066d63d37b2e18d85ee5ef19d
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/examples/servers/simple-auth/mcp_simple_auth/token_verifier.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-488377b765d8b32e8e5fb73fa28dec511790c79066d63d37b2e18d85ee5ef19d
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-488377b765d8b32e8e5fb73fa28dec511790c79066d63d37b2e18d85ee5ef19d
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-488377b765d8b32e8e5fb73fa28dec511790c79066d63d37b2e18d85ee5ef19d
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-488377b765d8b32e8e5fb73fa28dec511790c79066d63d37b2e18d85ee5ef19d
src/mcp/client/auth.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/src/mcp/client/auth.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-36382119e2fc96d19d58bc1e1a21f5b1f43bf3c09fa7bf3fbad78b5a7cd2d28e
src/mcp/server/auth/handlers/authorize.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-29f49c82612bbc9e8070a2be90b36aa33ca72f1ddae66f15f261bfcbb1a9a85d
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/src/mcp/server/auth/handlers/authorize.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-29f49c82612bbc9e8070a2be90b36aa33ca72f1ddae66f15f261bfcbb1a9a85d
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-29f49c82612bbc9e8070a2be90b36aa33ca72f1ddae66f15f261bfcbb1a9a85d
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-29f49c82612bbc9e8070a2be90b36aa33ca72f1ddae66f15f261bfcbb1a9a85d
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-29f49c82612bbc9e8070a2be90b36aa33ca72f1ddae66f15f261bfcbb1a9a85d
src/mcp/server/auth/handlers/token.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0bfdf5a468abdd078a0287db095a4ad5ebfcb04ea3e437026cdc8038c137ecab
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/src/mcp/server/auth/handlers/token.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0bfdf5a468abdd078a0287db095a4ad5ebfcb04ea3e437026cdc8038c137ecab
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0bfdf5a468abdd078a0287db095a4ad5ebfcb04ea3e437026cdc8038c137ecab
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-0bfdf5a468abdd078a0287db095a4ad5ebfcb04ea3e437026cdc8038c137ecab
src/mcp/server/auth/provider.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-f7e852ad288ea2750460eb8e8ef0d6152216cd97ae505acd5f06146cf866abec
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/src/mcp/server/auth/provider.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-f7e852ad288ea2750460eb8e8ef0d6152216cd97ae505acd5f06146cf866abec
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-f7e852ad288ea2750460eb8e8ef0d6152216cd97ae505acd5f06146cf866abec
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-f7e852ad288ea2750460eb8e8ef0d6152216cd97ae505acd5f06146cf866abec
https://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-f7e852ad288ea2750460eb8e8ef0d6152216cd97ae505acd5f06146cf866abec
src/mcp/shared/auth_utils.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/991/files#diff-fbdc8420ca151dd080002401442d8da9bee4df97f55498baf05f570990c97405
View file https://github.com/modelcontextprotocol/python-sdk/blob/c57e05eaa004109fd337b91caeeeabd0c411aa80/src/mcp/shared/auth_utils.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/991/{{ revealButtonHref }}
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/991/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/991/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.