Docs Search MCP Server

Let your AI assistant answer from your docs, with the section it used, instead of guessing.

Docs Search MCP Server product illustration

What it does

Give Claude, Cursor or any MCP client a search tool over your own documentation folders: internal docs, a repo's docs/ folder, a vendor's docs pulled from its llms.txt. The agent finds the right section, reads it and cites path#section, instead of guessing from training data or pasting whole files into the chat.

  • Formats: Markdown, MDX, reStructuredText, HTML and llms.txt. Files are split at each heading, and every section keeps its heading trail (Webhooks > Retries).
  • Search: BM25 ranking with heading and phrase boosts. It understands identifiers like invoice.payment_failed. No embeddings, no API keys, no database.
  • Always fresh: when files are added or edited, the index rebuilds on the next search.
  • Read-only: 5 tools, all marked read-only. The server can only read files it indexed under the folders you give it.
  • Pull a docs site: python3 -m docsmcp pull https://docs.example.com --out ~/docs/example downloads its llms.txt and the Markdown pages it links to, same host only.
  • Python 3.9+, standard library only. Speaks MCP 2026-07-28 (stateless) and the 2025-11-25 handshake.

What you get

The screenshot is real output from the kit’s own commands. Tested from a fresh download of this exact zip: ./run_tests.sh ran 14 tests OK on Python 3.13 and 3.10.

Real terminal output from Docs Search MCP Server: demo and passing tests

Install

Claude Code

claude mcp add docs-search -- python3 /path/to/docs-search-mcp-server/server.py --docs /path/to/docs --docs /path/to/more/docs

Or install it as a plugin (/plugin marketplace add, then point DOCS_MCP_DIRS at your folders, separated by :, or ; on Windows). That also adds the docs-search skill, which tells Claude to search, read and cite.

Claude Desktop, Cursor and others: copy examples/configs/claude_desktop_config.json or cursor-mcp.json and set the two paths.

Tools

ToolWhat it does
search_docs(query, limit, path_prefix)ranked sections with path, section id, heading trail and snippet
read_section(path, section, include_subsections)full text of a section and its subsections, or the whole file
get_outline(path)headings of one file with section ids and sizes
list_docs(path_prefix)indexed files and titles
index_status()folders, file and section counts

Try it without a client

$ python3 -m docsmcp search examples/docs "how do I verify webhook signature"
    5.39  guides/webhooks.md#verify-signatures  (Webhooks > Verify signatures)
$ python3 -m docsmcp read examples/docs reference/rate-limits.rst handling-429-errors

./demo.sh starts the server and runs an MCP client against the example docs (a fictional billing API). ./run_tests.sh runs 14 tests, including protocol tests and an llms.txt pull from a local test server.

Good to know

  • Skipped: .git, node_modules, virtualenvs, build folders, hidden folders, and files over 5 MB.
  • It suits up to tens of thousands of sections. Very large doc sets work but take a few seconds to index at start.
  • pull fetches one page at a time, with a short pause, at most --max pages (default 200). Links in the llms.txt "Optional" section are fetched only with --optional. Follow each site's terms of use.
  • The text of the docs is passed to the model as data with a note not to follow instructions in it. Only index folders you trust.

Related: Python MCP Server Template (free) for building your own server: https://youraitools.co/marketplace/python-mcp-server-template. GitHub Issue Triage MCP Server: https://youraitools.co/marketplace/github-issue-triage-mcp

Honest limits

  • Search is BM25 keyword ranking with heading and phrase boosts.
  • No embeddings, no API keys, no database.
  • The server can only read files it indexed under the folders you give it.
  • Only index folders you trust.

Format and license

Zip, 26 KB, v1.0, 27 files. You may use and modify this kit for your own work and for clients you serve, including paid client work. Not affiliated with or endorsed by Anthropic or Cursor (Anysphere).

FAQ

Does it send my docs anywhere?
No, it reads local folders; only the sections the agent reads go to your AI client.
Does it need embeddings or an API key?
No, it uses keyword ranking (BM25), Python standard library only.
Can it index a public docs site?
Yes, if the site has an llms.txt: python3 -m docsmcp pull URL --out folder.
How do I get the files?
Right after payment, Stripe’s confirmation page shows your download link.
Refunds?
Email hello@youraitools.co within 14 days if it doesn’t work and we can’t fix it.
Can I pay with crypto?
Yes. Pay the same price in USDC or USDT on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana from the "Pay with crypto" button, with no account or KYC. We check the payment on-chain and show your download links as soon as it confirms.

Get Docs Search MCP Server

MCP server for your own docs: Markdown, MDX, RST, HTML and llms.txt, searched by section with citations. Read-only, offline, no API keys. Claude, Cursor.

Pairs well with

Download$19

Claude Code Safety Hooks

Tested Claude Code hooks as a plugin: block rm -rf and force-push to main, protect .env and lockfiles, catch API keys in files, audit log. $19 once.

View Claude Code Safety Hooks
DownloadFree

Claude Code Hooks Starter (Free)

Free Claude Code hooks examples: SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Notification and Stop, plus a local tester that checks your hook's output.

View Claude Code Hooks Starter (Free)
Download$12

Cursor Rules Pack

24 Cursor rules (.mdc) for Next.js, TypeScript, React, Python, FastAPI, Django, Go, Rust and more. Detects your stack, installs in one command, lints your rules. $12 once.

View Cursor Rules Pack

Related