llms-txt-mcp
Fast, surgical access to big docs in Claude Code via llms.txt. Search first, fetch only what matters.
Why this exists
- Hitting token limits and timeouts on huge
llms.txtfiles hurts flow and drowns context. - This MCP keeps responses tiny and relevant. No dumps, no noise — just the parts you asked for.
Quick start (Claude Desktop)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json or .mcp.json in your project:
{
"mcpServers": {
"llms-txt-mcp": {
"command": "uvx",
"args": [
"llms-txt-mcp",
"https://ai-sdk.dev/llms.txt",
"https://nextjs.org/docs/llms.txt",
"https://orm.drizzle.team/llms.txt"
]
}
}
}
Now Claude Code|Desktop can instantly search and retrieve exactly what it needs from those docs.
How it works
URL → Parse YAML/Markdown → Embed → Search → Get Section
- Parses multiple llms.txt formats (YAML frontmatter + Markdown)
- Embeds sections and searches semantically
- Retrieves only the top matches with a byte cap (default: 75KB)
Features
- Instant startup with lazy loading and background indexing
- Search-first; no full-document dumps
- Byte-capped responses to protect context windows
- Human-readable IDs (e.g.
https://ai-sdk.dev/llms.txt#rag-agent)
Source resolution and crawling behavior
- Always checks for
llms-full.txtfirst, even whenllms.txtis configured. If present, it usesllms-full.txtfor richer structure. - For a plain
llms.txtthat only lists links, it indexes those links in the collection but does not crawl or scrape the pages behind them. Link-following/scraping may be added later.
Talk to it in Claude Code|Desktop
- "Search Next.js docs for middleware routing. Give only the most relevant sections and keep it under 60 KB."
- "From Drizzle ORM docs, show how to define relations. Retrieve the exact section content."
- "List which sources are indexed right now."
- "Refresh the Drizzle docs so I get the latest version, then search for migrations."
- "Get the section for app router dynamic routes from Next.js using its canonical ID."
Configuration (optional)
-
--store-path PATH (default: none) Absolute path to persist embeddings. If set, disk persistence is enabled automatically. Prefer absolute paths (e.g.,
/Users/you/.llms-cache). -
--ttl DURATION (default:
24h) Refresh cadence for sources. Supports30m,24h,7d. -
--timeout SECONDS (default:
30) HTTP timeout. -
--embed-model MODEL (default:
BAAI/bge-small-en-v1.5) SentenceTransformers model id. -
--max-get-bytes N (default:
75000) Byte cap for retrieved content. -
--auto-retrieve-threshold FLOAT (default:
0.1) Score threshold (0–1) to auto-retrieve matches. -
--auto-retrieve-limit N (default:
5) Max docs to auto-retrieve per query. -
--no-preindex (default: off) Disable automatic pre-indexing on launch.
-
--no-background-preindex (default: off) If preindexing is on, wait for it to finish before serving.
-
--no-snippets (default: off) Disable content snippets in search results.
-
--sources ... / positional sources One or more
llms.txtorllms-full.txtURLs. -
--store {memory|disk} (default: auto) Not usually needed. Auto-selected based on
--store-path. Use only to explicitly override behavior.
Development
make install # install deps
make test # run tests
make check # format check, lint, type-check, tests
make fix # auto-format and fix lint
Built on FastMCP and the Model Context Protocol. MIT license — see LICENSE.
Metadata
Release files for llms-txt-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 | |
|---|---|---|---|
| llms_txt_mcp-0.2.0.tar.gz | 2.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llms_txt_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.1 MB
Release files / llms_txt_mcp-0.2.0.tar.gz
| Download URL | llms_txt_mcp-0.2.0.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae5fcf88acef438ffe0e93bf6868d7e0a8d3a2a6702c1d40c1268128d3199cc7
|
|
BLAKE2b-256 checksum How to use checksums |
1c4b699371ff81d1e96be90bd99f7a575c46bdacefeefb3c335b6f1745f5f3c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2025.
Transparency logRelease files / llms_txt_mcp-0.2.0-py3-none-any.whl
| Download URL | llms_txt_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4496c1ee0b1e9308dfdfc08f2997e2db244adc04b79109a5023793f8733ca67a
|
|
BLAKE2b-256 checksum How to use checksums |
00903058ece679dcc3aef7a2c9cccc500c1b0645f76e7912adfdcaf20c26340b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2025.
Transparency log