Labsco
MCP SERVER

Docs MCP Server

by arabold

Index the docs for the exact library version you use, and search them locally instead of trusting recall.

Framework & SDK Documentation LookupOfficial source
Summary
Version-specific docs, indexed once and read locally.

The failure this addresses is an assistant confidently using an API that changed two releases ago. Because the index is keyed by version and the search resolves against it, the answer comes from the docs for the version in your lockfile — and the whole thing stays on your machine.

What it is

A personal documentation index. It fetches official docs from websites, GitHub, npm, PyPI, local folders and archives, stores them by library and version, and answers searches from that store — so an assistant reads the version in your project rather than whatever it remembers. Everything runs on your machine.

What you get
  • A documentation set scraped into the index under a library name and version, with the crawl depth and scope under your control
  • Search over the indexed docs, scoped to the version you name, with a lookup that resolves which indexed version best matches the one you have
  • The libraries and versions already indexed, listed
  • A stored set refreshed when the upstream docs move on, reusing the settings the original scrape ran with, and removed when you no longer want it
  • Any single URL fetched and converted to Markdown on its own, without indexing anything
  • Long scrapes handled as jobs — listed, inspected while they run, and cancelled
  • A wide reach of formats: HTML and Markdown, PDF, Word, Excel, PowerPoint, OpenDocument, RTF, EPUB, Jupyter notebooks, archives that get unpacked, and source files across 90+ languages
  • Markdown preferred at the source: the scraper probes for llms.txt and asks for Markdown by content negotiation, so a server that offers it skips the HTML-to-Markdown conversion entirely
  • Hash-routed documentation sites handled on request, with the job upgraded to a real browser automatically because plain fetching cannot resolve client-side routes
Requirements

Node.js 22 or newer, run with npx from @arabold/docs-mcp-server, or from the ghcr.io container with volumes for its data and config. It is a long-running local server: the web UI for managing the index is at http://localhost:6280 and clients connect to the SSE endpoint on the same port. Nothing leaves your network, and no account is involved. An embedding model is optional but is what turns keyword matching into semantic search — set an OpenAI key in the environment, or point it at Ollama, Gemini or Azure instead.

Setup effort

One command — npx @arabold/docs-mcp-server@latest