René's URL Explorer Experiment


Title: docs: replace MkDocs with Zensical by Kludex · Pull Request #3073 · modelcontextprotocol/python-sdk · GitHub

Open Graph Title: docs: replace MkDocs with Zensical by Kludex · Pull Request #3073 · modelcontextprotocol/python-sdk

X Title: docs: replace MkDocs with Zensical by Kludex · Pull Request #3073 · modelcontextprotocol/python-sdk

Description: Migrates the v2 docs build from MkDocs Material to Zensical, the Material team's successor — the same move Starlette and uvicorn made. Original migration by @Kludex; taken over to fold in review findings and empirical validation. Why this isn't a drop-in swap Zensical natively re-implements search, mkdocstrings and glightbox, but runs no arbitrary MkDocs plugins or hooks and its module/extension API hasn't shipped. This repo's docs relied on three plugin/hook-based pieces, which become standalone build steps around zensical build (the sidecar pattern): Feature this repo uses Zensical 0.0.48 Now handled by mkdocstrings, search, glightbox, emoji ✅ native mkdocs.yml (unchanged semantics) mkdocs-gen-files (the api/ tree) ❌ scripts/docs/gen_ref_pages.py mkdocs-literate-nav (the api/ nav) ❌ scripts/docs/build_config.py → mkdocs.gen.yml hooks: (llms_txt.py) ❌ no hook runtime scripts/docs/llms_txt.py (post-build) social cards ❌ (and gated on an env var no workflow ever set) dropped scripts/docs/build.sh is the single owner of the whole recipe (dependency sync → generate config/API stubs → zensical build --strict → llms.txt): shared.yml, docs-preview.yml (via the toolchain detection merged in #3081) and scripts/build-docs.sh all call it. mkdocs.yml stays the source config; mkdocs.gen.yml and docs/api/ are gitignored build artifacts. Guarantees that did not survive the toolchain swap — and where they moved Zensical builds some failure classes green that MkDocs strict-mode failed, so the sidecar scripts own them now (each verified by inducing the failure and observing the loud error): Missing nav target → ships as a broken nav link with zero diagnostics, even under --strict → build_config.py validates every nav entry against docs/ (external URLs exempt). Unresolved [name][identifier] cross-reference → renders as literal bracket text, build stays green → build.sh greps the built site for the rendered signature and fails. Missing non-markdown link target (images etc.) → Zensical's link validation only covers .md targets → llms_txt.py validates relative asset links while walking the prose. Package added without llms.txt coverage → llms_txt.py fails if a generated package index is missing from its Optional section. Config-level strict: true is parsed but not honored by Zensical (verified: only the CLI flag aborts), so the --strict flag in build.sh is the enforcement point; the old validation: block is a severity filter that at best restates defaults, at worst masks issues, and stays removed. Broken-anchor detection is on by default in Zensical and verified working. The API package index is now deliberate instead of accidental mkdocstrings renders a member re-exported across a package boundary (mcp/__init__ re-exporting mcp_types) as a full duplicate of its canonical docs when the target package happens to be loaded, and silently omits it when it isn't — so api/mcp/ had 123 headings under MkDocs (the ~50 mcp_types re-exports were just absent) and 255 under Zensical (all duplicated), from the same stub, purely by rendering order. gen_ref_pages.py pins the semantics: the mcp index renders each export as a compact one-line entry linking to its canonical page, inlining full docs only for exports documented nowhere else. This also surfaced ClientResult, which was invisible on both old sites despite being in __all__. The declarative alternative (mkdocstrings' summary option) was tested in four variants and can't do this: it produces either an empty page or full duplicate bodies with same-page anchors, drops ClientResult in every variant, and inherits the same load-order accident. preload_modules is emitted for the cross-package targets so warm incremental rebuilds can't hit AliasResolutionError (reproduced, fixed, re-verified). Visual parity and design Zensical's modern UI keeps Material's md-* DOM but ships different stock styling, so docs/extra.css was rebuilt against it (validated by measurement on the live preview, light and dark): Dark canvas back to the Material slate blue-grey this site shipped with (Zensical's near-black stays on code blocks, which keep their new styling). The sidebar is one coordinate system derived from the pill inset: labels, top-level pages, and nested rows share a single text column, guide lines thread the hierarchy, and row pitch matches the old site (~30px). Zensical's pill hover/highlight is kept. Generated API stubs carry explicit titles (Zensical's navigation.prune labels collapsed rows with the page title, which fell back to "Index"; browser tabs too). Inline code inside admonitions composites tone-on-tone over the tint (the same scoped treatment Starlight and Docusaurus ship) instead of sitting as an opaque slab — a defect Zensical's own docs currently exhibit; prose chips keep the block-matching dark surface. Verification All exercised on real builds in a clean environment (plus the docs CI job on this branch): bash scripts/docs/build.sh: strict build green with zensical 0.0.48; ~35s cold, ~3s warm incremental (a capability MkDocs didn't have). MkDocs baseline was ~33s. llms.txt, llms-full.txt, and all 50 per-page markdown renditions are byte-identical to the MkDocs pipeline's output on the same prose. Emoji, the custom mcp logo icon, palette toggles, --8<-- snippet includes, tabs and admonitions render correctly; search index at site/search.json. All six new guards were tripped on purpose and failed with their designed messages; the generator output is byte-deterministic across runs. mkdocstrings floors: 1.0.4 / mkdocstrings-python 2.0.5 (the 0.30 line crashes under Zensical with an unregistered-autorefs KeyError). griffelib is griffe's successor distribution by the same author — not a typo — and is imported directly by the generator. Breaking changes None for SDK users. For docs contributors: mkdocs serve becomes scripts/serve-docs.sh; local one-shot builds are bash scripts/docs/build.sh. Follow-up (out of scope) A [v1.x] backport of the toolchain-detecting scripts/build-docs.sh, so a v1.x-triggered Pages deploy can still build main's half of the combined site. Until it lands, deploys triggered from v1.x pushes fail (main-triggered deploys, previews and CI are unaffected). Upstream reports worth filing against Zensical: missing-nav-target detection, and unresolved autorefs rendering as literal text under --strict. AI Disclaimer

Open Graph Description: Migrates the v2 docs build from MkDocs Material to Zensical, the Material team's successor — the same move Starlette and uvicorn made. Original migration by @Kludex; taken over to fold in revie...

X Description: Migrates the v2 docs build from MkDocs Material to Zensical, the Material team&#39;s successor — the same move Starlette and uvicorn made. Original migration by @Kludex; taken over to fold in r...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:694ac0a9-6634-e0e7-c329-d168b57aed04
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idCBA8:2D610E:16DDD50:1F6B68E:6A572CBA
html-safe-nonceaf72ea508a12631961532f1675d7b56c4b427fbb9d5ba777560d1ab4246ac3da
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQkE4OjJENjEwRToxNkRERDUwOjFGNkI2OEU6NkE1NzJDQkEiLCJ2aXNpdG9yX2lkIjoiNjA0NjAwMTc0MzI1ODkyMjE3MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac09d69b97c6f4fefa2340db5cbcecb0c9ded940f981a4aef0f4f7eb9d401ebc16
hovercard-subject-tagpull_request:4006261840
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/3073/files
twitter:imagehttps://avatars.githubusercontent.com/u/7353520?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/7353520?s=400&v=4
og:image:altMigrates the v2 docs build from MkDocs Material to Zensical, the Material team's successor — the same move Starlette and uvicorn made. Original migration by @Kludex; taken over to fold in revie...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None4e7a7296a3830877cf21a6ad2a972c9e618a48915e03966cf0c53eb08e5aad98
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
release2576d1f0198cf1588faf2edf27f1ed120903be10
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fpython-sdk%2Fpull%2F3073%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%2F3073%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/3073/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files
Reloadhttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3073/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.6k 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 251 https://github.com/modelcontextprotocol/python-sdk/issues
Pull requests 289 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
claude/replace-mkdocs-zensical-5m0ltlhttps://github.com/modelcontextprotocol/python-sdk/tree/claude/replace-mkdocs-zensical-5m0ltl
Conversation 69 https://github.com/modelcontextprotocol/python-sdk/pull/3073
Commits 30 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits
Checks 50 https://github.com/modelcontextprotocol/python-sdk/pull/3073/checks
Files changed 17 https://github.com/modelcontextprotocol/python-sdk/pull/3073/files
docs: replace MkDocs with Zensical https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#top
Show all changes 30 commits https://github.com/modelcontextprotocol/python-sdk/pull/3073/files
f511d3c docs: replace MkDocs with Zensical claude Jul 7, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/f511d3ca7bc522be95156273bb5ddb6ba9dd6893
4793412 docs: fix serve-docs.sh usage text claude Jul 7, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/4793412ef714d8d4f01bf96882aa6ba8bdf85da4
9e87ecb docs: single-source the Zensical build recipe in scripts/docs/build.sh maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/9e87ecbdd5f0e67b27340ad3da2eb5d38646c06f
bb164d1 docs: fail the docs build when the nav references a missing page maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/bb164d14ac6b07623ddafb0de898e5b3fc15271f
4b13682 docs: correct stale comments and the nav type alias maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/4b136821633e3c7659d4b0cba65c285d99d7842a
13b42dc docs: relock for zensical 0.0.48 maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/13b42dc9dacb2bb58cb5d5294789b618eed2d877
3786d39 docs: fix the PERF401 lint error in gen_ref_pages.py maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/3786d39d8413c4792d8dee2463f30ef2f78397df
6ef1f84 docs: pin the API index rendering for cross-package re-exports maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/6ef1f843fd6d58552e444782c0c88faef725c8b1
eb1ffae docs: restore watch and drop the stale banner env maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/eb1ffae8a93f82c3473b8eafe882a8621ea65177
a05482d docs: catch the failure modes zensical builds green maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/a05482d579778e80c5696e395d3e786a3432647e
5464185 docs: fix summary truncation and harden the API generator maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/54641858b7f0076ae501441590f9bbc029b3862f
878e21e docs: trim dead config knobs and clarify the griffelib dependency maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/878e21ee3480d34798121b9db2080ae80393b112
d629160 docs: preload cross-package alias targets in the compact index stub maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/d629160b51eca03c9098c1e1e6aed45e41d392aa
e927853 docs: port the sidebar styling to Zensical's nav and restore the slat… maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/e9278531fbed05664d0d373cf8f58b9872dce8f1
153d384 docs: give generated API stubs explicit page titles maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/153d384058307aebc61ed30178eea51f7a237c33
7d3d1dd docs: fix the sidebar rule cascade and print scheme scoping maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/7d3d1dded1d5e63cc0e6d24aa7d166ab2061e5a4
de9d8fa docs: align top-level nav pages and the API Reference label flush left maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/de9d8fab702965d8b42e34fe376a90c9c169859a
c8449b7 docs: rebuild the sidebar styling as one coordinate system maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/c8449b72c68009f74b0f8b8decf916915bc2ae2b
0d3ef49 docs: put the pill inset on the elements that paint it maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/0d3ef499035d51953d078b6dd1009023bc492638
b0dc3d9 docs: composite inline code over admonition tints maxisbey Jul 9, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/b0dc3d9a3b1f6b11bdb0fc93ae538fcce3dfc543
0fc3242 docs: replace the llms_txt link regexes with a total classifier maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/0fc324264598374b28592ade4ba0e982d44469a0
a483385 docs: validate crossrefs and inventories from the built site maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/a483385a9eb95ea9bd3df55ec7181206a03f2349
72f1d97 docs: compact-index every package that re-exports from outside its su… maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/72f1d975c1bb8cfeba6ec509cb5465e68d410bd9
029a47c docs: restore the markdown extensions pymdownx.extra bundled maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/029a47ca30491d774b44633471e9ade64c16c016
d479b22 docs: fail the build on pages missing from the nav maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/d479b220a053a04f160b5374a67e642d0e3859ec
f7db9d9 docs: pin the Zensical toolchain exactly maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/f7db9d9c73a61def402c367a093cf4587372670e
57f9e0a docs: bump zensical to 0.0.50 to fix search maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/57f9e0a498c3db441fdc31463a2a8987a1cf38c6
d90f709 docs: compact every module that re-exports from outside its subtree maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/d90f709fde1ca3c9a9493ee53b2f8d047eeb7729
8acb8dd docs: tighten the prose extractor and link classifier edge cases maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/8acb8ddda4b6cb79e4bfe566ba29d3355e89f26f
f978b68 docs: close nav containment, HTML-comment, and whitespace link gaps maxisbey Jul 10, 2026 https://github.com/modelcontextprotocol/python-sdk/pull/3073/commits/f978b6890c4ca891ed5b6bd9360000eb6a4600dc
Clear filters https://github.com/modelcontextprotocol/python-sdk/pull/3073/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files
deploy-docs.yml https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-87e860af4b9db6c503ed680b6edb6333c6f8d7659f7d1a779a2487466bbc50f6
shared.yml https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-9852c0f7d79fa9d5200f11511ffdbadc321f7115fe1c5e8d2f2e63863d2441ee
.gitignore https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
extra.css https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-90722f24642c490256577fd2d4ac2c8aacc389ef0a90e470fb65a2d6665f49d2
gen_ref_pages.py https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-75019dd2d482b64b28b33e204aea11fded6581a3bd9e769ecbb09b3f54e941ff
llms_txt.py https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-a67af4a6f3e7bde18f75c2b8ae3e6eff8dffd108ce9d84f3dc500b67af76ae48
mkdocs.yml https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-98d0f806abc9af24e6a7c545d3d77e8f9ad57643e27211d7a7b896113e420ed2
pyproject.toml https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
build-docs.sh https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-5980041ae745e87cd24b9de0fda031024d4937deac5adf467a8aaa2e0f859f9d
build.sh https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-24bd23425b5319da31829ead12d1cc3fd2b5d68b9fb25b63bc543da9a53c12ac
build_config.py https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-37f9981aef74c794a5fe3755f19717a2af71d40829eca729e959039d0bc008b1
check_crossrefs.py https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-239b919581fed4bda0e87b71c367023b6a03f00075ade9a51dc89ca4e76245c4
gen_ref_pages.py https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-73375caa03c5e86d6fddec33d06c9dfa3fb32811abb634df5bb5d6246aa2d31a
llms_txt.py https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-5560b92fa287feebc54575e39112dca3e3cfdf4cf6150a8a18b6f2a3451e6213
serve-docs.sh https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-d7a1376063a4736bf33ac8e98ab642138cf25f55f78316d76f7fcbc0fdef0727
test_shape.py https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-561a36c5f7961ad4dbd87f07d66182342c39d671981d538ebc04ecc186771214
uv.lock https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-84321598744d84dbee2318e634c74c9aae39a1c253f1c4bd17ebf9ef2f807b11
.github/workflows/deploy-docs.ymlhttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-87e860af4b9db6c503ed680b6edb6333c6f8d7659f7d1a779a2487466bbc50f6
View file https://github.com/modelcontextprotocol/python-sdk/blob/f978b6890c4ca891ed5b6bd9360000eb6a4600dc/.github/workflows/deploy-docs.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3073/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-87e860af4b9db6c503ed680b6edb6333c6f8d7659f7d1a779a2487466bbc50f6
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-87e860af4b9db6c503ed680b6edb6333c6f8d7659f7d1a779a2487466bbc50f6
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-87e860af4b9db6c503ed680b6edb6333c6f8d7659f7d1a779a2487466bbc50f6
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-87e860af4b9db6c503ed680b6edb6333c6f8d7659f7d1a779a2487466bbc50f6
.github/workflows/shared.ymlhttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-9852c0f7d79fa9d5200f11511ffdbadc321f7115fe1c5e8d2f2e63863d2441ee
View file https://github.com/modelcontextprotocol/python-sdk/blob/f978b6890c4ca891ed5b6bd9360000eb6a4600dc/.github/workflows/shared.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3073/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-9852c0f7d79fa9d5200f11511ffdbadc321f7115fe1c5e8d2f2e63863d2441ee
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-9852c0f7d79fa9d5200f11511ffdbadc321f7115fe1c5e8d2f2e63863d2441ee
.gitignorehttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
View file https://github.com/modelcontextprotocol/python-sdk/blob/f978b6890c4ca891ed5b6bd9360000eb6a4600dc/.gitignore
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3073/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
docs/extra.csshttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-90722f24642c490256577fd2d4ac2c8aacc389ef0a90e470fb65a2d6665f49d2
View file https://github.com/modelcontextprotocol/python-sdk/blob/f978b6890c4ca891ed5b6bd9360000eb6a4600dc/docs/extra.css
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/python-sdk/pull/3073/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-90722f24642c490256577fd2d4ac2c8aacc389ef0a90e470fb65a2d6665f49d2
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-90722f24642c490256577fd2d4ac2c8aacc389ef0a90e470fb65a2d6665f49d2
https://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-90722f24642c490256577fd2d4ac2c8aacc389ef0a90e470fb65a2d6665f49d2
docs/hooks/gen_ref_pages.pyhttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files#diff-75019dd2d482b64b28b33e204aea11fded6581a3bd9e769ecbb09b3f54e941ff
View file https://github.com/modelcontextprotocol/python-sdk/blob/74a242ae7f52aee21cce7128a54ae8522c2f7c50/docs/hooks/gen_ref_pages.py
Open in desktop https://desktop.github.com
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3073/files
Please reload this pagehttps://github.com/modelcontextprotocol/python-sdk/pull/3073/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.