llmsdottxt-mcp
Auto-discover llms.txt from your deps. Docs your agent can read. Zero setup.
llmsdottxt-mcp scans your project's dependencies, discovers each package's llms.txt documentation endpoint, fetches and indexes the content locally, and exposes it to AI coding agents over the Model Context Protocol — so your agent reads first-party docs instead of guessing or scraping.
Why
Unlike scraping-based doc tools, llmsdottxt-mcp is local-first and llms.txt-native: auto-discovery from your real dependencies, platform-aware fetching (Mintlify, Read the Docs, Docusaurus, GitHub Pages), a persistent searchable index, and size-safe handling of large llms-full.txt files.
It is also resilient to docs hosts that push back: a genuine 429/503 is retried with backoff (honoring Retry-After), while an unsolvable bot challenge — Cloudflare, DataDome, Imperva, AWS WAF, Akamai, Sucuri — is detected and reported as blocked (a browser is required to pass it), so it is never silently miscounted as "no docs".
Status
- Project status: pre-1.0 public preview.
- Python: 3.14+.
- API stability: MCP tool names and response schemas may change before 1.0.
- Support: GitHub issues for bugs and features; private security reports for vulnerabilities.
Install & Run
uvx llmsdottxt-mcp scan # index the current project's dependencies
uvx llmsdottxt-mcp status # show indexed packages
uvx llmsdottxt-mcp serve # start the MCP server on stdio
uvx llmsdottxt-mcp doctor # diagnose paths, write access, registry connectivity
Add it to an MCP client (e.g. Claude Code) as a stdio server running llmsdottxt-mcp serve.
MCP Surface
Tools: index_deps, search, browse, status.
Resources: llmstxt://packages, llmstxt://package/{ecosystem}/{name}.
Prompts: find_docs_for_import.
Configuration
Everything is convention-based; override via LLMSTXT_* env vars (see .env.example). The index lives in ~/.llms.txt.d/.
Ecosystems
Four ecosystems are supported end-to-end — each pairs a manifest scanner with a registry resolver:
| Ecosystem | Manifest(s) | Registry | Docs source |
|---|---|---|---|
| Python | pyproject.toml, requirements.txt |
PyPI JSON API | project URLs / homepage |
| Node | package.json |
npm registry | homepage |
| Rust | Cargo.toml |
crates.io API | documentation / homepage |
| Go | go.mod |
proxy.golang.org | pkg.go.dev |
Add an ecosystem by dropping a BaseScanner and BaseResolver into their registries — see ROADMAP.md.
Development
uv sync --all-groups
uv run ruff check && uv run ty check && uv run basedpyright
uv run lint-imports && uv run pytest -n auto
See AGENTS.md for architecture and conventions.
Release files for llmsdottxt-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llmsdottxt_mcp-0.2.0.tar.gz | 56.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llmsdottxt_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 118.6 kB
Release files / llmsdottxt_mcp-0.2.0.tar.gz
| Download URL | llmsdottxt_mcp-0.2.0.tar.gz |
|---|---|
| Size | 56.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3652677d4fab069cf7b67ad3a5ad6ec8c9502a62a0f0a44035558683867e5fb9
|
|
BLAKE2b-256 checksum How to use checksums |
ad530c69fbd479efcdef64bc04e2dedef8b7e11c241a5e9bb34619b12ad72936
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / llmsdottxt_mcp-0.2.0-py3-none-any.whl
| Download URL | llmsdottxt_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 62.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f7441feb204ce5868c7927125cca92ff8bc1b50fa025be56ce1cc4f2699f6a64
|
|
BLAKE2b-256 checksum How to use checksums |
a20cd66fa2a360f459db74dfbed498344d56c779cb8e11163ea9e44e554bc042
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|