development
documentation
public
AI
semantic search
What is A TypeScript-based Model Context Protocol (MCP) server for document management and semantic search.?
MCP Documentation Server is a TypeScript-based Model Context Protocol (MCP) server that provides document management and semantic search capabilities. Users can upload documents, search them with AI embeddings, and integrate seamlessly with MCP clients like Claude Desktop. It supports multiple languages and offers features like intelligent chunking and context window retrieval.
Documentation
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
npx @andrea9293/mcp-documentation-server
2. Configure MCP Client
Add to your MCP client configuration (e.g., Claude Desktop):
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
After finding relevant chunks with 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.
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
npm run dev
# Build and test
npm run build
# Inspect tools with web UI
npm run inspect