/ Directory / Playground / mcp-documentation-server
● Community andrea9293 ⚡ Instant

mcp-documentation-server

by andrea9293 · andrea9293/mcp-documentation-server

Drop PDFs, Markdown, and text docs into a local vector store — then ask your AI questions with hybrid search. No cloud required.

mcp-documentation-server by andrea9293is a local RAG server. Drag-and-drop .txt / .md / .pdf files via a web UI (port 3080), or feed them via tools. Hybrid full-text + vector search with parent-child chunking. Runs fully local with built-in embeddings; Gemini key optional for smarter retrieval.

Why use it

Key features

Live Demo

What it looks like in practice

documentation-server.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "documentation-server",
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "documentation-server": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-documentation-server"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add documentation-server -- npx -y mcp-documentation-server

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use mcp-documentation-server

Make a new framework's docs queryable by your AI

👤 Devs adopting a new library ⏱ ~20 min beginner

When to use: Official docs are huge; you want Claude to answer with grounded citations.

Prerequisites
  • mcp-documentation-server installed — npx -y @andrea9293/mcp-documentation-server
Flow
  1. Ingest the docs
    Upload the library's docs .md files to the dashboard at http://localhost:3080.✓ Copied
    → Files processed into chunks
  2. Ask targeted questions
    search_documents for 'how to configure middleware' — give me the top 3 chunks with source paths.✓ Copied
    → Cited excerpts
  3. Ask grounded synthesis
    Given those chunks, write the minimum viable config for middleware in this framework.✓ Copied
    → Working config backed by cited doc lines

Outcome: A personal docs assistant that cites its sources.

Pitfalls
  • PDFs with scanned images aren't OCR'd — Pre-OCR with tools like ocrmypdf before upload
  • Huge doc sets without Gemini give noisy embeddings — Optional GEMINI_API_KEY unlocks higher-quality semantic search
Combine with: filesystem

Turn an internal wiki export into a RAG source

👤 Teams with markdown-export-friendly wikis ⏱ ~25 min beginner

When to use: You've exported your Notion/Confluence content as Markdown and want AI access.

Flow
  1. Bulk-ingest via process_uploads
    process_uploads on ./wiki-export/ — process every .md.✓ Copied
    → Document count per folder
  2. Full-scope search
    search_all_documents: 'deployment runbook' — top 5.✓ Copied
    → Ranked list

Outcome: A local, private, searchable wiki.

Build a personal research-paper library

👤 Researchers, students ⏱ ~30 min beginner

When to use: You download papers and want them queryable instead of piled in Downloads/

Flow
  1. Drop PDFs in
    Upload all PDFs in ~/Papers/ to the documentation server.✓ Copied
    → Papers chunked and indexed
  2. Ask across corpus
    search_documents: 'attention variants with lower quadratic cost' — return authors + years.✓ Copied
    → Cited excerpts

Outcome: A local mini-perplexity over your own paper collection.

Combinations

Pair with other MCPs for X10 leverage

documentation-server + filesystem

Automate ingest from a watched folder

Every time a new PDF lands in ~/Papers/Inbox, process_uploads it into the documentation server.✓ Copied
documentation-server + swarmvault

Compare: documentation-server is quick-ingest; swarmvault builds a structured wiki

Ingest my research PDFs into both systems; compare retrieval quality on the same query.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
add_document title, content, metadata? Programmatic ingest free (local embeddings)
list_documents (none) See what's indexed free
get_document id Retrieve a specific doc free
delete_document id Pruning free
search_documents query, top_k? Query within a specific doc set free
search_all_documents query, top_k? Global RAG query free
get_context_window chunk_id Expand a narrow hit into broader context free
search_documents_with_ai query One-shot answer synthesis Gemini call (needs key)
process_uploads path?: str Batch import from the uploads folder free

Cost & Limits

What this costs to run

API quota
None if local; Gemini usage if GEMINI_API_KEY set
Tokens per call
Search returns 500-3000 tokens depending on top_k
Monetary
Free; Gemini is paid per-call if enabled
Tip
Skip Gemini for exploratory work — local embeddings are good enough for known-item lookups.

Security

Permissions, secrets, blast radius

Credential storage: GEMINI_API_KEY (optional) in env
Data egress: Local only unless Gemini is enabled; dashboard on port 3080

Troubleshooting

Common errors and fixes

Port 3080 in use

Set WEB_PORT env var to another port.

Verify: lsof -i :3080
PDF parse error

Password-protected or scanned PDFs fail. Remove password or run OCR first.

Verify: Try a plain PDF
search returns empty

Check documents ingested: list_documents. If empty, re-run process_uploads.

Verify: list_documents

Alternatives

mcp-documentation-server vs others

AlternativeWhen to use it insteadTradeoff
swarmvaultYou want a structured wiki + knowledge graph, not just searchHeavier; more upfront setup
Cloud RAG (Pinecone, Weaviate)You need team-shared, scalePaid; data leaves your machine
llm-context.pyYou want per-task context, not persistent doc retrievalDifferent problem

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills