René's URL Explorer Experiment


Title: Add resolver dependency injection for MCPServer tools by Kludex · Pull Request #2969 · modelcontextprotocol/python-sdk · GitHub

Open Graph Title: Add resolver dependency injection for MCPServer tools by Kludex · Pull Request #2969 · modelcontextprotocol/python-sdk

X Title: Add resolver dependency injection for MCPServer tools by Kludex · Pull Request #2969 · modelcontextprotocol/python-sdk

Description: The official Python SDK for Model Context Protocol servers and clients - Add resolver dependency injection for MCPServer tools by Kludex · Pull Request #2969 · modelcontextprotocol/python-sdk

Open Graph Description: Summary Adds server-side dependency injection for @mcp.tool() functions. A tool parameter annotated Annotated[T, Resolve(fn)] is filled by running the resolver fn before the tool body, instead of b...

X Description: Summary Adds server-side dependency injection for @mcp.tool() functions. A tool parameter annotated Annotated[T, Resolve(fn)] is filled by running the resolver fn before the tool body, instead of b...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:95d0b18b-a237-65c3-944a-2fc7d11279b3
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD44E:392B7D:11EF57B:17D868D:6A5B7AE0
html-safe-noncef4a9a41b5ebd812d44b781a07773889b24ad35127fbbae009e43a4e486fc3509
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENDRFOjM5MkI3RDoxMUVGNTdCOjE3RDg2OEQ6NkE1QjdBRTAiLCJ2aXNpdG9yX2lkIjoiNjQ1NTgyNTQwOTUxOTYxNDY4OSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac4300849f1e2fc41bd8999ceaeed9d9b2d059a4e59142ed5cb9aaef74407b2a6c
hovercard-subject-tagpull_request:3935675337
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/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits
twitter:imagehttps://opengraph.githubassets.com/957ce961af0f24fc42828fbe4947475eb14cac6291022b1b2db44bf66bd75794/modelcontextprotocol/python-sdk/pull/2969
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/957ce961af0f24fc42828fbe4947475eb14cac6291022b1b2db44bf66bd75794/modelcontextprotocol/python-sdk/pull/2969
og:image:altSummary Adds server-side dependency injection for @mcp.tool() functions. A tool parameter annotated Annotated[T, Resolve(fn)] is filled by running the resolver fn before the tool body, instead of b...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameKludex
hostnamegithub.com
expected-hostnamegithub.com
None5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b
turbo-cache-controlno-cache
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
disable-turbofalse
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/2969/commits#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fpython-sdk%2Fpull%2F2969%2Fcommits
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%2F2969%2Fcommits
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%2Fcommits&source=header-repo&source_repo=modelcontextprotocol%2Fpython-sdk
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits
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 259 https://github.com/modelcontextprotocol/python-sdk/issues
Pull requests 304 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
maxisbeyhttps://github.com/maxisbey
mainhttps://github.com/modelcontextprotocol/python-sdk/tree/main
resolver-dependency-injectionhttps://github.com/modelcontextprotocol/python-sdk/tree/resolver-dependency-injection
Conversationhttps://github.com/modelcontextprotocol/python-sdk/pull/2969
Commits21 (21)https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits
Checkshttps://github.com/modelcontextprotocol/python-sdk/pull/2969/checks
Files changedhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/files
Add resolver dependency injection for MCPServer toolshttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits#top
maxisbeyhttps://github.com/maxisbey
mainhttps://github.com/modelcontextprotocol/python-sdk/tree/main
resolver-dependency-injectionhttps://github.com/modelcontextprotocol/python-sdk/tree/resolver-dependency-injection
Add resolver dependency injection for MCPServer toolshttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/e58ff0288a67f9cf9ae4822f82fcd30e55c00863
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
e58ff02https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/e58ff0288a67f9cf9ae4822f82fcd30e55c00863
https://github.com/modelcontextprotocol/python-sdk/tree/e58ff0288a67f9cf9ae4822f82fcd30e55c00863
Cover Context.headers and resolver schema-only pathshttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/e1100939bb04ce52adf5ad3254d43498d33b22ef
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
e110093https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/e1100939bb04ce52adf5ad3254d43498d33b22ef
https://github.com/modelcontextprotocol/python-sdk/tree/e1100939bb04ce52adf5ad3254d43498d33b22ef
Resolve type hints for callable-object tools in resolver detectionhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/cafe8f325def42bb88dc2fb804c09a9174611a45
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
cafe8f3https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/cafe8f325def42bb88dc2fb804c09a9174611a45
https://github.com/modelcontextprotocol/python-sdk/tree/cafe8f325def42bb88dc2fb804c09a9174611a45
Merge remote-tracking branch 'origin/main' into worktree-synthetic-singing-crownhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/3f59ea35b4e6a0f16a7be597f732b5fe2b65e68d
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
3f59ea3https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/3f59ea35b4e6a0f16a7be597f732b5fe2b65e68d
https://github.com/modelcontextprotocol/python-sdk/tree/3f59ea35b4e6a0f16a7be597f732b5fe2b65e68d
Pin elicitation resolver tests to legacy mode for 2026-07-28 defaulthttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/9e9282a126bc3567af0f9facbef66f6652062382
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
9e9282ahttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/9e9282a126bc3567af0f9facbef66f6652062382
https://github.com/modelcontextprotocol/python-sdk/tree/9e9282a126bc3567af0f9facbef66f6652062382
Address cubic review: by-name aliasing, return-annotation, callable-resolver naminghttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/c3ea531bb76cf7fdbb4c688d74477316cf0fc409
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
c3ea531https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/c3ea531bb76cf7fdbb4c688d74477316cf0fc409
https://github.com/modelcontextprotocol/python-sdk/tree/c3ea531bb76cf7fdbb4c688d74477316cf0fc409
Fix resolver edge cases: non-BaseModel returns, optional Context, bound-method memoizationhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/aac86dc0c8847489fd6b622df2b1229446f3b9ab
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
aac86dchttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/aac86dc0c8847489fd6b622df2b1229446f3b9ab
https://github.com/modelcontextprotocol/python-sdk/tree/aac86dc0c8847489fd6b622df2b1229446f3b9ab
Validate resolver tool args once; key resolvers by method identityhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/37c038c6fcdef965450469b6617be66d78e67d19
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
37c038chttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/37c038c6fcdef965450469b6617be66d78e67d19
https://github.com/modelcontextprotocol/python-sdk/tree/37c038c6fcdef965450469b6617be66d78e67d19
Memoize built-in bound-method resolvers; stop mutating pre_validatedhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/58238b137d785156d083f97ddf67bcccb1b4e373
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
58238b1https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/58238b137d785156d083f97ddf67bcccb1b4e373
https://github.com/modelcontextprotocol/python-sdk/tree/58238b137d785156d083f97ddf67bcccb1b4e373
Make ElicitationResult subscriptable so the documented Resolve union form workshttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b7b89678f3ef7bbd625c9705bbbe55c67e451d77
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
b7b8967https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b7b89678f3ef7bbd625c9705bbbe55c67e451d77
https://github.com/modelcontextprotocol/python-sdk/tree/b7b89678f3ef7bbd625c9705bbbe55c67e451d77
Merge remote-tracking branch 'origin/main' into worktree-synthetic-singing-crownhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/163721fb581d9599aa8d0475d356544d553d447d
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
163721fhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/163721fb581d9599aa8d0475d356544d553d447d
https://github.com/modelcontextprotocol/python-sdk/tree/163721fb581d9599aa8d0475d356544d553d447d
Update test_resolve imports to mcp_types after the mcp-types package splithttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b0424daf83deb5b623d32da1c85d9268cf66041b
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
b0424dahttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b0424daf83deb5b623d32da1c85d9268cf66041b
https://github.com/modelcontextprotocol/python-sdk/tree/b0424daf83deb5b623d32da1c85d9268cf66041b
Switch resolver docs/example to a delete-folder confirmation flowhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/8f677c922a37ed03f8cd8b35a1d9dc41fe87bf9b
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
8f677c9https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/8f677c922a37ed03f8cd8b35a1d9dc41fe87bf9b
https://github.com/modelcontextprotocol/python-sdk/tree/8f677c922a37ed03f8cd8b35a1d9dc41fe87bf9b
Merge remote-tracking branch 'origin/main' into resolver-dependency-injectionhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/d22ce97a9fce5a2056f91e491d914e02cb5f4b25
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
d22ce97https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/d22ce97a9fce5a2056f91e491d914e02cb5f4b25
https://github.com/modelcontextprotocol/python-sdk/tree/d22ce97a9fce5a2056f91e491d914e02cb5f4b25
Reject union-wrapped Resolve; honor the bare ElicitationResult aliashttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/800d253a778b775b675e20463262eb87304fb8e0
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
800d253https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/800d253a778b775b675e20463262eb87304fb8e0
https://github.com/modelcontextprotocol/python-sdk/tree/800d253a778b775b675e20463262eb87304fb8e0
Note the ElicitationResult isinstance behavior change in the migration guidehttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/6b1070222cfdc5801c024cfacd69d6374f070d4c
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
6b10702https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/6b1070222cfdc5801c024cfacd69d6374f070d4c
https://github.com/modelcontextprotocol/python-sdk/tree/6b1070222cfdc5801c024cfacd69d6374f070d4c
Document resolver dependency injection in the elicitation tutorial; ctx.headers in contexthttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/f2106f54c873cc4e079670c91e0bfc4d60b2c964
https://github.com/Kludex
Kludexhttps://github.com/modelcontextprotocol/python-sdk/commits?author=Kludex
f2106f5https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/f2106f54c873cc4e079670c91e0bfc4d60b2c964
https://github.com/modelcontextprotocol/python-sdk/tree/f2106f54c873cc4e079670c91e0bfc4d60b2c964
Merge remote-tracking branch 'origin/main' into resolver-dependency-injectionhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/2f8b6576164e5b05b46fc7d3dff284f8c1c4f16f
https://github.com/maxisbey
maxisbeyhttps://github.com/modelcontextprotocol/python-sdk/commits?author=maxisbey
2f8b657https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/2f8b6576164e5b05b46fc7d3dff284f8c1c4f16f
https://github.com/modelcontextprotocol/python-sdk/tree/2f8b6576164e5b05b46fc7d3dff284f8c1c4f16f
Return None from Context.headers when the request object has no headershttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b671eaa3027f04083160cd530afedb082d4f4f7a
https://github.com/maxisbey
maxisbeyhttps://github.com/modelcontextprotocol/python-sdk/commits?author=maxisbey
b671eaahttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b671eaa3027f04083160cd530afedb082d4f4f7a
https://github.com/modelcontextprotocol/python-sdk/tree/b671eaa3027f04083160cd530afedb082d4f4f7a
Add a Dependencies tutorial page for resolver injectionhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b2e0ba336b616e4c937a456dd748e7e875c03884
https://github.com/maxisbey
maxisbeyhttps://github.com/modelcontextprotocol/python-sdk/commits?author=maxisbey
b2e0ba3https://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/b2e0ba336b616e4c937a456dd748e7e875c03884
https://github.com/modelcontextprotocol/python-sdk/tree/b2e0ba336b616e4c937a456dd748e7e875c03884
Add refund_desk story: resolver-injected parameters hidden from the schemahttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/1795a2da0dd5aa0aa0768cbb52a0da5b128bc2cf
https://github.com/maxisbey
maxisbeyhttps://github.com/modelcontextprotocol/python-sdk/commits?author=maxisbey
1795a2dhttps://github.com/modelcontextprotocol/python-sdk/pull/2969/commits/1795a2da0dd5aa0aa0768cbb52a0da5b128bc2cf
https://github.com/modelcontextprotocol/python-sdk/tree/1795a2da0dd5aa0aa0768cbb52a0da5b128bc2cf
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.