mcp-documentation-server
If you are the rightful owner of mcp-documentation-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Documentation Server is a TypeScript-based server that offers document management and semantic search capabilities, designed to integrate seamlessly with MCP clients.
MCP Documentation Server
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.
Demo Video
Quick Start
1. Install and Run
# Run directly with npx (recommended)
npx @andrea9293/mcp-documentation-server
2. Configure MCP Client
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"
}
}
}
}
3. Start Using
- Add documents: Upload text/markdown files or add content directly
- Search documents: Use semantic search to find relevant information
- Manage content: List, retrieve, and organize your documents
Features
- š Document Management - Add, list, retrieve, and delete documents with metadata
- š Semantic Search - AI-powered search using embeddings
- š File Upload - Drop .txt/.md/.pdf files in uploads folder for processing
- š§© Smart Chunking - Automatic text splitting for better search accuracy
- šļø Document Deletion - Clean removal of documents and their chunks
- š Multilingual - Supports multiple languages with quality embeddings
- š¾ Local Storage - All data stored locally in
~/.mcp-documentation-server/
directory - ā” Fast Setup - No database required, works out of the box
Available Tools
Tool | 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 |
Usage Examples
Adding a Document
{
"tool": "add_document",
"arguments": {
"title": "Python Basics",
"content": "Python is a high-level programming language...",
"metadata": {
"category": "programming",
"tags": ["python", "tutorial"]
}
}
}
Searching Documents
{
"tool": "search_documents",
"arguments": {
"document_id": "doc-123",
"query": "variable assignment",
"limit": 5
}
}
Deleting a Document
{
"tool": "delete_document",
"arguments": {
"id": "doc-123"
}
}
File Upload Workflow
- Get uploads path:
get_uploads_path
(~/.mcp-documentation-server/uploads/
) - Place your .txt/.md/.pdf files in that folder
- Process files:
process_uploads
- Search the processed documents
Supported file types:
- .txt - Plain text files
- .md - Markdown files
- .pdf - PDF files (text extraction, no OCR)
Configuration
Data Storage
All documents and uploads are stored locally in:
~/.mcp-documentation-server/
āāā data/ # Document storage (JSON files)
āāā uploads/ # Files to process (.txt, .md, .pdf)
Embedding Models
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.
Installation Options
NPX (Recommended)
npx @andrea9293/mcp-documentation-server
Global Installation
npm install -g @andrea9293/mcp-documentation-server
mcp-documentation-server
From Source
git clone https://github.com/andrea9293/mcp-documentation-server.git
cd mcp-documentation-server
npm install
npm run build
npm start
Best Practices
Document Organization
- Use descriptive titles for easy identification
- Add relevant metadata (tags, categories) for better organization
- Keep documents focused on specific topics for better search accuracy
Search Optimization
- Use specific, descriptive search queries
- Combine keywords related to your topic
- Start with broader queries, then refine with more specific terms
Performance Tips
- Process large files during off-peak hours (initial embedding creation)
- Use smaller embedding models for faster performance if quality is acceptable
- Regularly clean up unused documents to maintain performance
Troubleshooting
Timeout on First Use
- Cause: Embedding models download on first use (~420MB for best model)
- Solution: Wait for background download to complete, or use smaller model initially
Search Results Issues
- Cause: Mixed embedding models in same dataset
- Solution: Stick to one model or re-add all documents after switching
Development
# Development server with hot reload
npm run dev
# Build and test
npm run build
# Inspect tools with web UI
npm run inspect
Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature/name
- Follow Conventional Commits for messages
- Submit pull request
License
MIT - see file
Support
- š Documentation
- š Report Issues
- š¬ MCP Community
Built with FastMCP and TypeScript š