mcp-documentation-server

mcp-documentation-server

3.6

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

ToolDescription
add_documentAdd a document with title, content, and metadata
search_documentsSearch for chunks within a specific document
list_documentsList all documents with their metadata
get_documentRetrieve a complete document by ID
delete_documentDelete a document by ID (removes all associated chunks)
get_uploads_pathGet path to uploads folder
list_uploads_filesList files in uploads folder
process_uploadsProcess 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

  1. Get uploads path: get_uploads_path (~/.mcp-documentation-server/uploads/)
  2. Place your .txt/.md/.pdf files in that folder
  3. Process files: process_uploads
  4. 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 quality
  • Xenova/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

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/name
  3. Follow Conventional Commits for messages
  4. Submit pull request

License

MIT - see file

Support


Built with FastMCP and TypeScript šŸš€