← Back to directory
D

Docs MCP Server (Grounded Docs)

Community
Self-hosted, version-accurate documentation grounding for AI coding assistants.
Category
Dev Tools #50 of 438
Stars
★ 1.9k Very popular
Transport
SSE
Runtime
Node.js 22+ · Docker
Credentials
Optional API key
License
MIT
Last commit
Tools
1
65FMRS · C

A well-documented, MIT-licensed open-source MCP server with broad file-format support and CLI, Web UI, and MCP interfaces; not officially maintained by a protocol or product owner (community project by arabold, positioned as an alternative to Context7/Nia/Ref.Tools), with the README's explicit client config example covering only the SSE transport.

Strongest · Documentation 16/20 Weakest · Reliability 9/20

Reliability
9/20
Security and permissions
12/20
Maintenance
14/20
Documentation
16/20
Setup experience
14/20
Why each score
Reliability 9/20
The README documents CLI commands (scrape, search, fetch-url) and an MCP server endpoint exposed over SSE, but the manifest was not cached, so declared tools, parameter schemas, and actual behavior cannot be cross-checked. No CI workflow or committed test files are present in the reviewed material to serve as verifiable execution evidence, so per the static calibration rule a higher score is not warranted. Specific behavioral claims (auto-upgrading to Playwright for hash-routed SPAs, automatic llms.txt probing) suggest real implementation work, but without execution it's impossible to confirm these paths fail in a controlled, diagnosable way, warranting a low-to-mid score.
Security and permissions 12/20
The server actively fetches arbitrary external URLs (websites, GitHub, npm, PyPI) and processes local files/archives, creating a meaningful outbound-network and file-handling surface. The README references a dedicated security.md covering trust boundaries, deployment hardening, and outbound access controls, plus OAuth2/OIDC authentication support, indicating security-conscious design. Embedding-model API keys (e.g. OPENAI_API_KEY) are passed via environment variables rather than hardcoded or leaked in examples — no real secrets found. However, with no cached manifest, it's impossible to verify whether tool execution has default confirmation gates, whether crawl scope is restricted, or whether SSRF-type mitigations exist, so data-flow disclosure is incomplete. No red-line conditions are evidenced (no malware, no covert exfiltration, no unconfirmed irreversible destructive defaults), so the score stays moderate rather than in the red-line range.
Maintenance 14/20
1616 stars, 59 open issues, not archived, MIT licensed, and published to both npm (@arabold/docs-mcp-server) and GHCR as Docker images, with a CONTRIBUTING.md indicating an established contribution workflow. These are reasonable activity and licensing signals. However, the provided material lacks direct evidence of commit cadence, release history, issue response times, or a defined security-response channel, so governance maturity cannot be fully confirmed, precluding a top score.
Documentation 16/20
The README is well-layered, covering quick start, both CLI and MCP usage paths, a Docker alternative, a supported-formats table, embedding-model configuration, and links to dedicated docs on installation, authentication, configuration, architecture, security, telemetry, and benchmarking — indicating a deliberate documentation structure. However, only the README itself was reviewed; the actual content behind those links (security boundary details, troubleshooting, parameter limits) was not supplied, leaving 'documentation exists but is unverified' uncertainty, which caps the score below full marks.
Setup experience 14/20
A minimal npx-based quick start, a Docker alternative, and concrete MCP client JSON configuration examples (e.g. for Claude Desktop) are provided, with clear steps and reasonable platform coverage (Node.js/Docker). Per the static review calibration, setup cannot exceed 15 without CI and committed-test execution evidence, so despite the clearly described flow, the score is capped conservatively.

Static review · not runListed 2026-08-06

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesUses the network

Best for

  • Developers who want private, self-hosted, version-accurate documentation grounding for AI coding assistants
  • Teams wanting to index internal or third-party docs without sending code to external hosted services

Not for

  • Users wanting a zero-setup hosted service without running their own server
  • Users needing immediate answers for documentation that hasn't been scraped/indexed yet
  • Use cases requiring guaranteed 100% accurate retrieval with no keyword/semantic search misses

Required permissions

  • Outbound network access to fetch documentation from websites, GitHub, npm, and PyPI
  • Read access to local files, folders, and archives when indexing local sources
  • Local disk/storage for the documentation index (Docker deployments use /data and /config volumes)
  • Network access and an API key to a third-party embedding provider (e.g. OpenAI) if semantic search is enabled
  • Binding a local network port (default 6280) to serve the Web UI and MCP endpoint

Risks and side effects

  • Fetching and indexing arbitrary external URLs can pull in untrusted or malicious content
  • Binding the server to 0.0.0.0 without configuring authentication (OAuth2/OIDC) can expose the Web UI, MCP endpoint, and indexed documentation to anyone on the network
  • Processing untrusted archives, Office documents, and PDFs carries the general risk of file-parsing bugs
  • Embedding-provider API keys (e.g. OPENAI_API_KEY) are supplied via environment variables and sent to the third-party provider

Setup

Before you start

Runtime:Node.js 22+ · Docker

OPENAI_API_KEY optionalsecret OpenAI API key used to enable semantic vector search; get it at platform.openai.com. Optional — only improves search quality.

Run npx @arabold/docs-mcp-server@latest (requires Node.js 22+) to start the server, then open http://localhost:6280 to add documentation via the Web UI. Alternatively, run the Docker image ghcr.io/arabold/docs-mcp-server:latest with --protocol http --host 0.0.0.0 --port 6280. Add the server to your MCP client config (e.g. claude_desktop_config.json) pointing at the SSE endpoint http://localhost:6280/sse. Optionally set an embedding-provider API key (e.g. OPENAI_API_KEY) before starting to enable semantic search.

claude_desktop_config.json
{
  "mcpServers": {
    "docs-mcp-server": {
      "type": "sse",
      "url": "http://localhost:6280/sse"
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "docs-mcp-server": {
      "type": "sse",
      "url": "http://localhost:6280/sse"
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add --transport sse docs-mcp-server http://localhost:6280/sse

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Start the server with npx @arabold/docs-mcp-server@latest, connect your client to http://localhost:6280/sse, and confirm scrape_docs appears in the client's tool list, or ask it to fetch a page and return Markdown.

Troubleshooting

  1. Verify Node.js 22+ is installed for the npx CLI
  2. If the Web UI doesn't load, confirm port 6280 is free and reachable
  3. Use --verbose for debug logs, or --quiet to suppress non-error diagnostics in non-interactive runs
  4. For hash-routed SPA documentation sites, enable --preserve-hashes (CLI) or the preserveHashes option (MCP/Web UI)
  5. If semantic search quality is poor, confirm an embedding-provider API key (e.g. OPENAI_API_KEY) is set
  6. If indexed data doesn't persist across restarts, check Docker volume mounts (-v docs-mcp-data, -v docs-mcp-config)
  7. If exposing the server beyond localhost, review the security and authentication documentation to configure access control

Things to try

Once connected, you can ask your AI assistant things like:

  • Scrape and index https://react.dev/reference/react under the library name react
  • Search the react docs index for useEffect cleanup
  • Scrape the hash-routed SPA docs at https://docs.example.com/#/guide and preserve hashes
  • Fetch https://react.dev/reference/react/useEffect as Markdown

Tools 1

scrape_docs writes
Scrapes a given URL and indexes its documentation content into the server's search index; supports a preserveHashes option for documentation sites that use hash-based client-side routing (SPAs).

Use cases

Build an up-to-date documentation index for libraries/frameworks to reduce LLM hallucinations
Let an AI coding assistant query docs for the exact library version used in a project
Index local files, zip/tar archives, PDFs, and Office documents to build a private documentation search index
Query indexed documentation from MCP clients such as Claude Desktop or VS Code (Cline/Roo)

Supported clients

Claude Desktop
ClinePartial support
VS CodePartial support
GitHub CopilotPartial support
Gemini CLIPartial support

Listed from the project's documentation, not tested by this site.

Overview

Docs MCP Server (Grounded Docs) is a self-hosted MCP server that fetches and indexes up-to-date, version-specific documentation from websites, GitHub, npm, PyPI, and local files so AI coding assistants can query real documentation instead of relying on stale training data. It provides a Web UI, a CLI, and an MCP endpoint (including a scrape_docs tool) for indexing and searching documentation, with optional embedding-model support for semantic search.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 64.1k · Tools 2 Compare with this →

Source revision aa8b5b71c1ed Data synced 2026-11-04 Read the FMRS scoring method