list_docsLABSCO SUMMARY
Pagination is the feature that keeps it usable.
Documentation servers usually fail on a single enormous reference page: it either blows the context or gets truncated mid-sentence. Handling that with explicit pagination — and telling the caller which page it is on and how many there are — is what lets an assistant work through a long file deliberately. The folder and extension settings double as an access boundary worth setting deliberately.
What it is
A documentation server for a folder you control. It reads whatever sits under a docs/ directory in the project you name and exposes it three ways: a listing, a regex search, and a paginated reader that keeps a large file from arriving all at once. Command-line importers can fill that folder from a GitHub repository or by crawling a documentation site.
What you get
list_docs— every document with its descriptiongrep_docs— fast full-text search using regular expressionsget_doc— a document's contents, with apageparameter; files above the large-file threshold are paginated automatically and the response tells you which page you are on and how to reach the next onesemantic_search— meaning-based search using OpenAI embeddings, available once metadata has been generated- Importers run outside the server:
docs-mcp-import-githubpulls a repository or one path within it and detects the default branch,docs-mcp-import-urlcrawls a site with depth and include/exclude URL patterns, anddocs-mcp-generate-metadatabuilds the index semantic search needs - Broad file coverage — Markdown, plain text, reStructuredText and AsciiDoc through to configuration files and source code in most common languages
Requirements
Nothing for the search tools. Semantic search alone needs an OPENAI_API_KEY, and only after docs-mcp-generate-metadata has run. uv is required, and Python 3.12 or higher is managed by it; the package is docs-mcp (version 0.1.2) and the documented client entry runs uvx docs-mcp with DOCS_BASE_DIR set to the project root. DOCS_FOLDERS and DOCS_FILE_EXTENSIONS narrow what is readable, DOCS_MAX_CHARS_PER_PAGE defaults to 10000 and DOCS_LARGE_FILE_THRESHOLD to 15000.
Setup effort
One command — uvx docs-mcp
USE CASES
Searching a library's docs you imported yourself
Pull the repository's documentation into the folder, then grep it for the API you are looking for.
Reading a huge reference page in pieces
Open the document and page through it, so a long file arrives in readable chunks rather than being cut off.
Finding the right page when you do not know the term
Generate the metadata once, then search by meaning rather than by exact wording.
Limiting what an assistant can read
Restrict the folders and file extensions in the configuration so only the intended documentation is reachable.
4 tools
Listed in project docs. Your client may show a different list.
get_docgrep_docssemantic_searchBEFORE YOU INSTALL
What to know first
Tools you get
4 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.12 or later
Where it runs
All 3 documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx docs-mcpMCP Clients
Claude Desktop — basic
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": [
"docs-mcp"
],
"env": {
"DOCS_BASE_DIR": "<YOUR_DOCS_BASE_DIR>"
}
}
}
}Claude Desktop — semantic search
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": [
"docs-mcp"
],
"env": {
"DOCS_BASE_DIR": "<YOUR_DOCS_BASE_DIR>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Claude Desktop — all options
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": [
"docs-mcp"
],
"env": {
"DOCS_BASE_DIR": "<YOUR_DOCS_BASE_DIR>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
"DOCS_FOLDERS": "api,guides,examples",
"DOCS_FILE_EXTENSIONS": ".md,.mdx,.txt,.py",
"DOCS_MAX_CHARS_PER_PAGE": "5000",
"DOCS_LARGE_FILE_THRESHOLD": "10000"
}
}
}
}