by andrea9293
MCP Documentation Server is a TypeScript-based server that provides local document management and AI-powered semantic search capabilities, designed to bridge the AI knowledge gap.
MCP Documentation Server is a Model Context Protocol (MCP) server that enables local document management and semantic search. It allows users to upload documents, search them using AI embeddings, and integrate seamlessly with MCP clients like Claude Desktop and VS Code. It is designed to help manage and access knowledge efficiently, especially for new frameworks, API documentation, and internal guides.
To use the MCP Documentation Server, you can follow these steps:
npx @andrea9293/mcp-documentation-server
.add_document
tool with title, content, and optional metadata.search_documents
tool with a document ID, query, and limit.delete_document
tool with the document ID..txt
, .md
, or .pdf
files in the folder, and then process them using process_uploads
..txt
, .md
, and .pdf
files for processing.~/.mcp-documentation-server/
without requiring a separate database.Q: Why does it take time on first use? A: The embedding models download on first use, which can be around 420MB for the best model. Please wait for the background download to complete.
Q: Why are my search results inconsistent or inaccurate? A: This can happen if you have mixed embedding models within the same dataset. It is recommended to stick to one model or re-add all documents after switching models to ensure compatibility and accuracy.
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 |
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": "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 qualityXenova/paraphrase-multilingual-mpnet-base-v2
(recommended) - Best quality, multilingual⚠️ 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
# 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 🚀
Reviews feature coming soon
Stay tuned for community discussions and feedback