by andrea9293
Provides document management and AI-powered semantic search for storing, retrieving, and querying text, markdown, and PDF files locally without external databases.
MCP Documentation Server offers a TypeScript‑based solution that lets you upload documents, automatically split them into context‑aware chunks, embed those chunks with high‑quality models, and perform fast semantic search. All data is kept in a local ~/.mcp‑documentation‑server/
directory, making it ideal for private knowledge bases, API docs, or internal guides.
npx @andrea9293/mcp-documentation-server
{
"mcpServers": {
"documentation": {
"command": "npx",
"args": ["-y", "@andrea9293/mcp-documentation-server"],
"env": { "MCP_EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2" }
}
}
}
add_document
, search_documents
, get_context_window
, list_documents
, etc., using the MCP client or direct HTTP calls..txt
, .md
, and .pdf
filesnpx
and optional global installQ: Do I need an API key?
A: No external API key is required; the server runs entirely locally. You only need to set MCP_EMBEDDING_MODEL
if you want a model other than the default.
Q: Can I change the embedding model after adding documents? A: Changing the model invalidates existing embeddings. Re‑add or re‑process all documents after switching models.
Q: How are large PDFs handled? A: Text is extracted (no OCR). Split into chunks automatically; processing time depends on file size.
Q: Where are the files stored?
A: In ~/.mcp-documentation-server/
under data/
for JSON documents and uploads/
for raw files.
Q: Is it cross‑platform? A: Yes. Runs on any system with Node.js (Linux, macOS, Windows).
A TypeScript-based Model Context Protocol (MCP) server that provides document management and semantic search capabilities. Upload documents, search them with AI embeddings, and integrate seamlessly with MCP clients like Claude Desktop.
# Run directly with npx (recommended)
npx @andrea9293/mcp-documentation-server
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"documentation": {
"command": "npx",
"args": [
"-y",
"@andrea9293/mcp-documentation-server"
],
"env": {
"MCP_EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2"
}
}
}
}
~/.mcp-documentation-server/
directoryTool | Description |
---|---|
add_document |
Add a document with title, content, and metadata |
search_documents |
Search for chunks within a specific document. Returns a hint for LLMs on how to retrieve more context. |
get_context_window |
Returns a window of chunks around a central chunk for a document |
list_documents |
List all documents with their metadata |
get_document |
Retrieve a complete document by ID |
delete_document |
Delete a document by ID (removes all associated chunks) |
get_uploads_path |
Get path to uploads folder |
list_uploads_files |
List files in uploads folder |
process_uploads |
Process uploaded files into documents |
{
"tool": "add_document",
"arguments": {
"title": "Python Basics",
"content": "Python is a high-level programming language...",
"metadata": {
"category": "programming",
"tags": ["python", "tutorial"]
}
}
}
{
"tool": "search_documents",
"arguments": {
"document_id": "doc-123",
"query": "variable assignment",
"limit": 5
}
}
{
"tool": "get_context_window",
"arguments": {
"document_id": "doc-123",
"chunk_index": 5,
"before": 2,
"after": 2
}
}
{
"tool": "delete_document",
"arguments": {
"id": "doc-123"
}
}
get_uploads_path
(~/.mcp-documentation-server/uploads/
)process_uploads
Supported file types:
All documents and uploads are stored locally in:
~/.mcp-documentation-server/
├── data/ # Document storage (JSON files)
└── uploads/ # Files to process (.txt, .md, .pdf)
Set via MCP_EMBEDDING_MODEL
environment variable:
Xenova/all-MiniLM-L6-v2
(default) - Fast, good quality (384 dimensions)Xenova/paraphrase-multilingual-mpnet-base-v2
(recommended) - Best quality, multilingual (768 dimensions)The system automatically manages the correct embedding dimension for each model. Embedding providers expose their dimension via getDimensions()
.
⚠️ Important: Changing models requires re-adding all documents as embeddings are incompatible.
npx @andrea9293/mcp-documentation-server
npm install -g @andrea9293/mcp-documentation-server
mcp-documentation-server
git clone https://github.com/andrea9293/mcp-documentation-server.git
cd mcp-documentation-server
npm install
npm run build
npm start
search_documents
, use get_context_window
to retrieve additional context around those chunks. You can call get_context_window
multiple times until you have enough context to answer your question.# Development server with hot reload
npm run dev
# Build and test
npm run build
# Inspect tools with web UI
npm run inspect
git checkout -b feature/name
MIT - see LICENSE file
Built with FastMCP and TypeScript 🚀
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "documentation": { "command": "npx", "args": [ "-y", "@andrea9293/mcp-documentation-server" ], "env": { "MCP_EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2" } } } }
Explore related MCPs that share similar capabilities and solve comparable challenges
by modelcontextprotocol
A basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.
by topoteretes
Provides dynamic memory for AI agents through modular ECL (Extract, Cognify, Load) pipelines, enabling seamless integration with graph and vector stores using minimal code.
by basicmachines-co
Enables persistent, local‑first knowledge management by allowing LLMs to read and write Markdown files during natural conversations, building a traversable knowledge graph that stays under the user’s control.
by smithery-ai
Provides read and search capabilities for Markdown notes in an Obsidian vault for Claude Desktop and other MCP clients.
by chatmcp
Summarize chat messages by querying a local chat database and returning concise overviews.
by dmayboroda
Provides on‑premises conversational retrieval‑augmented generation (RAG) with configurable Docker containers, supporting fully local execution, ChatGPT‑based custom GPTs, and Anthropic Claude integration.
by GreatScottyMac
Provides a project‑specific memory bank that stores decisions, progress, architecture, and custom data, exposing a structured knowledge graph via MCP for AI assistants and IDE tools.
by scorzeth
Provides a local MCP server that interfaces with a running Anki instance to retrieve, create, and update flashcards through standard MCP calls.
by sirmews
Read and write records in a Pinecone vector index via Model Context Protocol, enabling semantic search and document management for Claude Desktop.