---
title: "Grounded Docs MCP: A Local, Version-Aware Docs Index for AI"
url: "https://mcpshelf.co/servers/grounded-docs"
description: "Grounded Docs indexes docs for the exact library versions you use, on your own machine, and lets an assistant search them. Setup, embeddings, telemetry."
updated: "2026-10-27"
site: "MCP Shelf"
---

# Grounded Docs (docs-mcp-server)

> Your own index of library docs, by version, that an assistant searches before it answers.

Source: https://mcpshelf.co/servers/grounded-docs  
Markdown: https://mcpshelf.co/servers/grounded-docs.md  
Generated: 2026-10-27T13:22:54.145Z

## Facts

- **Name:** Grounded Docs (docs-mcp-server)
- **Tagline:** Your own index of library docs, by version, that an assistant searches before it answers.
- **Description:** Grounded Docs (docs-mcp-server) is an open source MCP server that indexes documentation from websites, GitHub, npm, PyPI and local files so AI assistants can search the exact version you use.
- **Repository:** https://github.com/arabold/docs-mcp-server
- **Package:** @arabold/docs-mcp-server 3.4.1 (npm)
- **Install:** `claude mcp add grounded-docs -- npx -y @arabold/docs-mcp-server@latest --no-telemetry`
- **Transport:** stdio (local)
- **Auth:** No required keys or settings listed
- **Tools exposed:** 12: `scrape_docs`, `refresh_version`, `search_docs`, `read_page`, `list_pages`, `list_libraries`, `find_version`, `list_jobs`, `get_job_info`, `cancel_job`, `remove_docs`, `fetch_url`
- **Category:** Developer tools (https://mcpshelf.co/categories/developer-tools)
- **Stats:** 1.8K GitHub stars, last commit 25 Oct 2026, 0 upvotes on MCP Shelf
- **Install check:** Started in our test
- **Listed:** 2026-10-27
- **Page updated:** 2026-10-27

## Full description

### What is Grounded Docs (docs-mcp-server)?

**Grounded Docs (docs-mcp-server) is an open source MCP server that indexes documentation from websites, GitHub, npm, PyPI and local files so AI assistants can search the exact version you use.**

Andre Rabold's server builds a private documentation index that a coding assistant can search. You point it at a docs site, a GitHub repository, an npm or PyPI package or a local folder, and it fetches the pages, splits them into passages and stores them in a SQLite database on your machine, labelled by library and version. The model can then look up the version you actually use instead of relying on what it remembers.

It is an open source alternative to hosted services such as Context7. Search uses full-text matching out of the box, and adds meaning-based search when you give it an embedding model from OpenAI, a local Ollama or another provider. A web interface on port 6280 shows what is indexed. Anonymous usage telemetry is on by default and easy to switch off.

|  |  |
| --- | --- |
| Made by | Andre Rabold (arabold) and contributors |
| GitHub | https://github.com/arabold/docs-mcp-server |
| Licence | MIT |
| npm package | [@arabold/docs-mcp-server](https://www.npmjs.com/package/@arabold/docs-mcp-server) 3.4.1 (25 Oct 2026) |
| GitHub stars | 1.8K |
| Last commit | 25 Oct 2026 |
| Tools | 12 |
| Runs on | Your computer |
| Install check | Started in our test |
| Category | [Developer tools](https://mcpshelf.co/categories/developer-tools) |
| Setup checked | 27 Oct 2026 |
| Page updated | 27 Oct 2026 |

**Our check:** We ran this exact config on 27 Oct 2026: it started and answered with 12 tools.

#### MCP Shelf take

> We started Grounded Docs (docs-mcp-server) on our own test machine on 27 Oct 2026 and it answered with 12 tools. 8 of the 12 only read; the other 4 can change things. Every tool comes with a useful description, all of them say whether they change things, and the tool list costs about 700 tokens of context before you ask a thing. It sits 15th of 21 in its category on our shelf by GitHub stars (1.8K).

— MCP Shelf tests (numbers from our own runs), tested on 27 Oct 2026

### What tools does Grounded Docs (docs-mcp-server) have?

We listed 12 tools on 27 Oct 2026. 8 only read; the rest can change things or run commands.

| Tool | Kind | What it is for |
| --- | --- | --- |
| `scrape_docs` | changes | Fetches and indexes documentation from a URL for a library and version. |
| `refresh_version` | changes | Re-fetches an indexed version, updating only the pages that changed. |
| `search_docs` | reads | Searches the indexed docs for a library, optionally for a version, and returns matching passages with their source. |
| `read_page` | reads | Reads a whole indexed page, in parts if it is long. |
| `list_pages` | reads | Lists the pages indexed for a library version. |
| `list_libraries` | reads | Lists the indexed libraries and their versions. |
| `find_version` | reads | Finds the indexed version that best matches the one you ask for. |
| `list_jobs` | reads | Lists indexing jobs and their status. |
| `get_job_info` | reads | Shows the progress of one indexing job. |
| `cancel_job` | changes | Stops a queued or running indexing job. |
| `remove_docs` | changes | Deletes the index for a library version. |
| `fetch_url` | reads | Fetches any web page and returns it as Markdown, without indexing it. |

#### How clearly it describes its tools

12 of 12 tools have a description and 12 of 12 say whether they change things. The tool list takes at least ~700 tokens of context. Every tool says whether it only reads or can change things, so a client can ask before the risky ones.

### How do I install Grounded Docs (docs-mcp-server)?

#### What you need first

- Node.js 22 or newer
- Optional: an embedding provider such as an OpenAI key or a local Ollama, for vector search

#### Claude Code

Where: Your terminal, in the project folder

```bash
claude mcp add grounded-docs -- npx -y @arabold/docs-mcp-server@latest --no-telemetry
```

To share one index and keep the web UI, run npx @arabold/docs-mcp-server@latest in a terminal and add it with claude mcp add --transport http docs-mcp-server http://localhost:6280/mcp instead. Add docs at http://localhost:6280.

#### Cursor

Where: ~/.cursor/mcp.json, or .cursor/mcp.json in a project

```json
{
  "mcpServers": {
    "grounded-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@arabold/docs-mcp-server@latest",
        "--no-telemetry"
      ]
    }
  }
}
```

#### Claude Desktop

Where: claude_desktop_config.json (Settings → Developer → Edit Config)

```json
{
  "mcpServers": {
    "grounded-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@arabold/docs-mcp-server@latest",
        "--no-telemetry"
      ]
    }
  }
}
```

#### VS Code

Where: .vscode/mcp.json in your project

```json
{
  "servers": {
    "grounded-docs": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@arabold/docs-mcp-server@latest",
        "--no-telemetry"
      ]
    }
  }
}
```

#### Windsurf

Where: ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "grounded-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@arabold/docs-mcp-server@latest",
        "--no-telemetry"
      ]
    }
  }
}
```

#### ChatGPT

Where: Not supported

Not supported: the index lives on your machine, and ChatGPT only connects to remote servers.

Add OPENAI_API_KEY in env for vector search. To keep the web UI and share one index with several clients, run "npx @arabold/docs-mcp-server@latest" in a terminal and connect clients to http://localhost:6280/mcp instead. "--read-only" leaves out the tools that add or remove docs.

Checked against the project's own install docs on 27 Oct 2026: https://github.com/arabold/docs-mcp-server#readme

### How do I configure Grounded Docs (docs-mcp-server)?

| Setting | Kind | Required | What it does |
| --- | --- | --- | --- |
| `OPENAI_API_KEY` | env | no | Turns on vector search using OpenAI embeddings. Other providers, including a local Ollama, are set with their own variables. Example: `sk-proj-...` |
| `--no-telemetry` | flag | no | Turns off the anonymous usage events, which are on by default. DOCS_MCP_TELEMETRY=false does the same. |
| `--read-only` | flag | no | Leaves out the tools that add, refresh or remove docs, so clients can only search and read. DOCS_MCP_READ_ONLY=true does the same. |
| `--protocol` | flag | no | stdio or http. Normally chosen for you: stdio when a client starts it, HTTP when you run it in a terminal. Example: `--protocol stdio` |
| `DOCS_MCP_STORE_PATH` | env | no | Where the SQLite index lives, if you want it somewhere other than the default data folder. |

### What can Grounded Docs (docs-mcp-server) read and change?

**It can read**

- Docs sites, GitHub repositories, package pages and local folders you ask it to index
- Any URL passed to fetch_url

**It can change**

- Its own local index of documentation
- Nothing outside it

**Safer setup:** Run it with --read-only once your docs are indexed, and add --no-telemetry if you do not want usage events sent.

### Good for

- Answering questions from the docs for the exact version in your project
- Indexing internal or private documentation that public services cannot see
- Keeping docs available offline once they are indexed

### Grounded Docs (docs-mcp-server) not working? Common fixes

**It will not start on an older Node.js**
It needs Node.js 22 or newer. Check with node --version.

**The first start is slow**
It downloads a headless Chromium for pages that need JavaScript. Set PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH to use one you already have.

**It refuses to start after changing the embedding model**
A model change deletes the stored vectors, so it asks you to confirm. In a container with no terminal, set DOCS_MCP_ACCEPT_MODEL_CHANGE=true for one start.

**Search finds only exact words**
Without an embedding model it uses full-text search. Add OPENAI_API_KEY or another provider for search by meaning.

### What are the alternatives to Grounded Docs (docs-mcp-server)?

| Server | What it does | Tools | Runs on | Licence | Stars |
| --- | --- | --- | --- | --- | --- |
| [Grounded Docs (docs-mcp-server)](https://mcpshelf.co/servers/grounded-docs) | Your own index of library docs, by version, that an assistant searches before it answers. | 12 | Your computer | MIT | 1.8K |
| [MCP Server for WinDbg](https://mcpshelf.co/servers/windbg) | Lets an assistant run WinDbg commands to triage crash dumps and debug live Windows targets. | 12 | Your computer | MIT | 1.6K |
| [MCP Language Server](https://mcpshelf.co/servers/mcp-language-server) | Puts a real language server behind your assistant: definitions, references, diagnostics and rename. | 6 | Your computer | BSD-3-Clause | 1.6K |
| [Nx MCP](https://mcpshelf.co/servers/nx) | Your Nx monorepo's projects, tasks, generators and CI results, for your assistant. | 13 | Your computer | MIT | 1.4K |
| [Jupyter MCP Server](https://mcpshelf.co/servers/jupyter) | Lets an assistant edit and run cells in a live Jupyter notebook and read the results. | 18 | Your computer | BSD | 1.3K |
| [Burp Suite MCP](https://mcpshelf.co/servers/burp-suite) | Lets an assistant send requests, read proxy history and use Repeater in Burp Suite. | 27 | Your computer | GPL-3.0 | 1.3K |

### Grounded Docs (docs-mcp-server) FAQ

#### How do I add Grounded Docs to Claude Code?

Run claude mcp add docs -- npx -y @arabold/docs-mcp-server@latest --no-telemetry, or start the server in a terminal and connect to http://localhost:6280/mcp so the web UI stays available for adding docs.

#### How do I add documentation to Grounded Docs?

Open the web UI at http://localhost:6280 and choose Add library, or ask your assistant to run scrape_docs with a URL. It indexes websites, GitHub repositories, npm and PyPI packages and local folders.

#### Does Grounded Docs need an OpenAI key?

No. Without an embedding model it uses full-text search. Set OPENAI_API_KEY, or another provider such as Ollama or Gemini, before indexing to add search by meaning.

#### Is Grounded Docs free?

Yes. It is MIT licensed and runs on your machine. Embedding calls to a paid provider are billed by that provider; a local provider such as Ollama costs nothing.

#### Do my docs leave my machine with Grounded Docs?

Only to the embedding provider you choose; with a local provider nothing leaves. Telemetry sends usage events, not your docs, and --no-telemetry turns it off.

#### Grounded Docs or Context7?

Context7 is a hosted index of public libraries. Grounded Docs runs on your machine, indexes whatever you point it at, including private docs, and keeps the index local.

#### Why won't Grounded Docs start?

It needs Node.js 22 or later, or Docker. After a change of embedding model it waits for you to confirm, since the change deletes stored vectors; in a container, set DOCS_MCP_ACCEPT_MODEL_CHANGE=true for one start.

#### Can several apps share one Grounded Docs index?

Yes. Run it as an HTTP server and point every app at http://localhost:6280/mcp. The stdio server, the command line and the HTTP server also share the same data folder.

Full docs on GitHub: https://github.com/arabold/docs-mcp-server

## Notes for agents

Fetch these instead of parsing the HTML page:

- llms.txt: https://mcpshelf.co/llms.txt
- llms-full.txt: https://mcpshelf.co/llms-full.txt
- ai.txt: https://mcpshelf.co/ai.txt
- Full catalog (.md): https://mcpshelf.co/catalog.md
- API spec: https://mcpshelf.co/openapi.json
- MCP server: https://mcpshelf.co/mcp
- MCP manifest: https://mcpshelf.co/.well-known/mcp.json
- Developer docs: https://mcpshelf.co/developers

MCP endpoint (Streamable HTTP, no key): https://mcpshelf.co/mcp. REST API: https://mcpshelf.co/api/v1.

