Universal MCP server for documentation with llms.txt support
Project description
docr-mcp
A framework for building MCP servers that give LLMs access to any documentation.
Give LLMs the ability to search and read documentation from any source - public or private, official or internal. Stop getting outdated answers. Start getting accurate information directly from current docs.
Why docr-mcp?
The Problem: LLMs give you outdated answers based on their training data. They don't know about the latest API changes, new features, or the specific libraries and tools you use daily.
The Solution: docr-mcp provides a proven framework to connect any documentation to LLMs through MCP servers. Give your AI assistant real-time access to current documentation - from popular libraries to your internal tools.
Key Features:
- Universal framework for any documentation site (public or private)
- Smart BM25 search with code-aware tokenization and relevance ranking
- Full customization - control parsing, indexing, search, and tool descriptions
- Production ready - 88 tests (unit + E2E), secure by default, proper resource management
- Easy to extend - YAML config + Python implementation to add any library
Supported Documentation
| Library | Status | Tests | Install Command (Claude Code) |
|---|---|---|---|
| Strands Agents | ✅ | claude mcp add docr-mcp-strands -- uvx docr-mcp --library strands |
|
| Vercel | ✅ | claude mcp add docr-mcp-vercel -- uvx docr-mcp --library vercel |
|
| Twilio | ✅ | claude mcp add docr-mcp-twilio -- uvx docr-mcp --library twilio |
|
| OpenAI | ✅ | claude mcp add docr-mcp-openai -- uvx docr-mcp --library openai |
|
| Stripe | ✅ | claude mcp add docr-mcp-stripe -- uvx docr-mcp --library stripe |
|
| Anthropic | ✅ | claude mcp add docr-mcp-anthropic -- uvx docr-mcp --library anthropic |
Want to add a library? See CONTRIBUTING.md for guidelines.
Usage
Public Documentation
After installation, ask your AI assistant to search documentation:
Search Strands docs for "agent state"
What is agent-loop in Strands?
Show me how to use model providers in Strands
Authenticated Documentation (Private/Internal Docs)
Need to access private or internal documentation behind authentication? docr-mcp supports cookie-based authentication for SSO-protected sites.
Simply create a YAML config file with your cookies and domain - no code changes required.
📖 See the Authenticated Docs Guide for step-by-step instructions.
How It Works
graph LR
A[Index Source] --> B[Build BM25 Index]
B --> C[Query]
C --> D[Search Index]
D --> E[Fetch Live Docs]
E --> F[LLM Response]
- Startup: Fetch index source (llms.txt, sitemap) and build searchable BM25 index
- Query: Search pre-built index, then fetch live documentation from URLs
- Search: BM25 ranking with code-aware tokenization and field weighting
License
MIT
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 docr_mcp-0.3.0.tar.gz.
File metadata
- Download URL: docr_mcp-0.3.0.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f13c2922f4553683e0801a27a649753598b1129ecdd8da35a39f54b9dc724a79
|
|
| MD5 |
6ecbbcb968357876643b6b336a27129c
|
|
| BLAKE2b-256 |
ccbd691c6708400890a24065ad84d95ac1c42e729d7f57cfec9df36d297dbc91
|
Provenance
The following attestation bundles were made for docr_mcp-0.3.0.tar.gz:
Publisher:
publish.yml on JacobHuang91/docr-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docr_mcp-0.3.0.tar.gz -
Subject digest:
f13c2922f4553683e0801a27a649753598b1129ecdd8da35a39f54b9dc724a79 - Sigstore transparency entry: 1399213336
- Sigstore integration time:
-
Permalink:
JacobHuang91/docr-mcp@d7debe7c514885b29cac90697da950f2defc97f2 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/JacobHuang91
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d7debe7c514885b29cac90697da950f2defc97f2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file docr_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: docr_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
318e8cd326c92c62a07d33adf0ef9b23aefc3d4ca39a288ce9dea2bb9fd8758b
|
|
| MD5 |
89e5b05855a7c08efaae6f25dc8a7231
|
|
| BLAKE2b-256 |
07a5d957d2e7805912cd43308d04bcca004ff9051d794c0ca3ef7e95fefc0db7
|
Provenance
The following attestation bundles were made for docr_mcp-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on JacobHuang91/docr-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docr_mcp-0.3.0-py3-none-any.whl -
Subject digest:
318e8cd326c92c62a07d33adf0ef9b23aefc3d4ca39a288ce9dea2bb9fd8758b - Sigstore transparency entry: 1399213343
- Sigstore integration time:
-
Permalink:
JacobHuang91/docr-mcp@d7debe7c514885b29cac90697da950f2defc97f2 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/JacobHuang91
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d7debe7c514885b29cac90697da950f2defc97f2 -
Trigger Event:
release
-
Statement type: