Skip to main content
Glama
DewminK
by DewminK

docs-mcp-server

A reusable Model Context Protocol (MCP) server that exposes one or more documentation folders — plain .md, .mdx, and .txt files — to any MCP-compatible AI agent (Claude Desktop, Claude Code, Cursor, etc).

It's kept as its own package rather than bundled into a specific project so that any number of repos/services can point at their own docs folder(s) and share the exact same server binary, instead of every project reimplementing "list/read/search my markdown docs" from scratch. Real projects also rarely keep all their docs in one place — e.g. each microservice has its own docs/ folder — so this server accepts multiple folders and gives each one a short label you reference in resource URIs and see in search results.

⚙️ Installation

This is the easiest way. npx automatically fetches the repo, installs dependencies, builds it, and runs the server — no local clone required.

Add this to your MCP settings:

{
  "mcpServers": {
    "docs": {
      "command": "npx",
      "args": [
        "-y",
        "github:DewminK/docs-mcp-server",
        "--docs-path",
        "/absolute/path/to/your/docs"
      ]
    }
  }
}

🚀 What this does (npx method)

  • Downloads the repo automatically

  • Installs dependencies in an isolated cache (no global pollution)

  • Builds the TypeScript sources

  • Runs the MCP server over stdio

Swap --docs-path for as many comma-separated folders as you need (see Configuring documentation folders below).

🥈 Option 2 — Clone & build locally

Useful if you want to edit the server itself, or prefer pinning an exact local build.

git clone https://github.com/DewminK/docs-mcp-server.git
cd docs-mcp-server
npm install
npm run build

This compiles src/*.ts to dist/*.js (ESM, targeting ES2022). Then point your MCP host at the built file with absolute paths:

{
  "mcpServers": {
    "docs": {
      "command": "node",
      "args": [
        "/absolute/path/to/docs-mcp-server/dist/server.js",
        "--docs-path",
        "/absolute/path/to/service-a/docs,/absolute/path/to/service-b/docs"
      ]
    }
  }
}

Related MCP server: Synapse

Adding it to an MCP host

This section shows how to register the server with each MCP host. Most of these commands/configs (anything using npx -y github:DewminK/docs-mcp-server) are self-contained and fetch + build + run the server on their own — you don't need to have done Installation Option 1 or 2 first. Only use a node dist/server.js path (Option 2's build output) if you already cloned the repo locally.

Claude Desktop — edit the config file and restart the app:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Claude Code (terminal or VS Code extension) — use the CLI instead of hand-editing JSON, from an integrated or regular terminal. docs in the commands below is just the server name being registered — pick any name you like, it's not a fixed keyword. The default local scope only applies to the exact project folder you ran the command from; use --scope project or --scope user instead if you want it shared or available everywhere (see below).

Scope: project — shared with your team via an .mcp.json file created at the repo root (commit this file so teammates get the same server):

claude mcp add docs --scope project -- npx -y github:DewminK/docs-mcp-server --docs-path /absolute/path/to/your/docs

Scope: user — available across all your projects on this machine, stored in ~/.claude.json:

claude mcp add docs --scope user -- npx -y github:DewminK/docs-mcp-server --docs-path /absolute/path/to/your/docs

Verify with claude mcp list, then reload the VS Code window (Command Palette → "Developer: Reload Window") if you're using the extension — it only picks up newly registered servers on startup/reload, not mid-session.

VS Code (Copilot Chat's MCP support, not the Claude Code extension) — add the server to .vscode/mcp.json in your workspace, or to your user settings.json under the mcp.servers key for a global install:

{
  "servers": {
    "docs": {
      "command": "npx",
      "args": [
        "-y",
        "github:DewminK/docs-mcp-server",
        "--docs-path",
        "/absolute/path/to/your/docs"
      ]
    }
  }
}

Then open the Command Palette and run MCP: List Servers to start it, or use the Start code lens that appears above the server entry in mcp.json.

Cursor — same JSON block as Claude Desktop, placed in .cursor/mcp.json (project-level) or via Cursor's MCP settings UI (global).

Configuring documentation folders

The server resolves which folders to serve in this order:

  1. --docs-path CLI flag (comma-separated for multiple folders)

  2. DOCS_PATH environment variable (comma-separated for multiple folders)

  3. Default: ./docs

Each folder is given a label based on its own directory name. If two folders share the same directory name, later ones get a numeric suffix (docs, docs-2, ...).

Examples:

# Single folder
node dist/server.js --docs-path ./docs

# Multiple folders, one per microservice
node dist/server.js --docs-path "../service-a/docs,../service-b/docs"

# Same thing via environment variable
DOCS_PATH="../service-a/docs,../service-b/docs" node dist/server.js

Passing DOCS_PATH via the MCP config's env field works just as well as --docs-path, e.g.:

{
  "mcpServers": {
    "docs": {
      "command": "npx",
      "args": ["-y", "github:DewminK/docs-mcp-server"],
      "env": {
        "DOCS_PATH": "/absolute/path/to/service-a/docs,/absolute/path/to/service-b/docs"
      }
    }
  }
}

If a configured path doesn't exist or isn't a directory, the server prints a clear error to stderr and exits instead of starting.

What it exposes

Type

Name

Description

Resource

docs://list

Lists every doc file across all configured folders, one {label}/{relativePath} per line.

Resource template

docs://{label}/{relativePath}

Reads a single doc file's contents, given its folder label and path relative to that folder.

Tool

search_docs

Case-insensitive keyword search across all folders. Input: { query: string }.

Project layout

docs-mcp-server/
  src/lib.ts       # pure logic: resolve paths, list/read/search files (no MCP imports)
  src/server.ts    # thin MCP wiring around lib.ts, connected over stdio
F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DewminK/docs-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server