Auto-discover llms.txt from your deps. Docs your agent can read. Zero setup.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llmsdottxt_mcp-0.1.0.tar.gz.
File metadata
- Download URL: llmsdottxt_mcp-0.1.0.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1157e03e3b02d1c93f1cd2a977ce71d0c6109ec3aaaeb3113a2a0edb9bb5b6ce
|
|
| MD5 |
172295e74fce6a91c95504dafa4d9dd8
|
|
| BLAKE2b-256 |
9ea058a31fdc9a75dcb0092fb730542afe7f073d76e0ac1f43942f9e76f2efb4
|
File details
Details for the file llmsdottxt_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: llmsdottxt_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 59.8 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b593003661129d9fd29599c648c538e932a17a8c68d02e1b3eb5f2cc8e0043e7
|
|
| MD5 |
ae1bb7b9a342295f7e0cf5c513acb8a8
|
|
| BLAKE2b-256 |
d2348c628f31c43489a9d8a45ca2a0c88a7385ce0b975751f4de98abb2aa27e3
|