MCP Documentation Server
MCP Documentation Server
Gestión documental local-first y búsqueda semántica para agentes de programación con IA. Sin bases de datos externas, sin APIs en la nube y sin dependencia de proveedor.
A diferencia de otros servidores MCP que son solo CLI, este incluye un panel web completo — explora, busca, sube y gestiona tu base de conocimiento desde el navegador. Cada herramienta MCP también se expone como una API REST, lo que ofrece a los agentes de IA una interfaz ligera y sin esquemas.
🏠 Funciona totalmente sin conexión — base de datos vectorial Orama con embeddings de IA locales (Transformers.js)
🌐 Interfaz web integrada — se inicia automáticamente en el puerto 3080 junto con el servidor MCP
🔍 Búsqueda híbrida — texto completo + similitud vectorial con fragmentación padre-hijo
🤖 Búsqueda con IA opcional — Google Gemini para el análisis avanzado de documentos (aporta tu propia clave)
📁 Subidas por arrastrar y soltar — compatibilidad con
.txt,.md,.pdf📦 Publicado en el MCP Registry — instalable mediante npx, sin necesidad de clonar
Inicio rápido
{
"mcpServers": {
"documentation": {
"command": "npx",
"args": ["-y", "@Unity-Billal-mesloub/mcp-documentation-server"]
}
}
}🤖 Habilidad de agente (API REST) — recomendada para agentes de IA
Cada herramienta MCP también es accesible a través de la API REST en ``. Esta es la forma recomendada de interactuar desde agentes de IA (Claude Code, OpenCode, Gemini CLI, Cursor), porque evita cargar los esquemas de las herramientas MCP en el contexto de la conversación — solo el JSON de la respuesta entra en el contexto.
-H "Content-Type: application/json" \
-d '{"query": "your search", "limit": 5}'Se incluye una habilidad lista para usar en skills/documentation-server/SKILL.md — enseña a tu agente todos los endpoints con ejemplos. Instálala:
npx skills add https://github.com/Unity-Billal-mesloub/mcp-documentation-server --skill documentation-serverFlujo de trabajo básico
Añade documentos con
add_documento coloca archivos.txt/.md/.pdfen la carpeta de subidas y llama aprocess_uploads.Busca en todo con
search_all_documents, o dentro de un solo documento consearch_documents.Usa
get_context_windowpara obtener los fragmentos vecinos y dar al LLM un contexto más amplio.
Related MCP server: OpenLMlib
Interfaz web
La interfaz web se inicia automáticamente en el puerto 3080 cuando se lanza el servidor MCP. Desde la interfaz web puedes:
📊 Panel — visión general de todos los documentos y estadísticas
📄 Documentos — explora, visualiza y elimina documentos
➕ Añadir documento — crea documentos con título, contenido y metadatos
🔍 Buscar en todo — búsqueda semántica en todos los documentos
🎯 Buscar en documento — búsqueda dentro de un documento específico
🤖 Búsqueda con IA — análisis con Gemini (si
GEMINI_API_KEYestá definida)📁 Subir archivos — arrastra y suelta archivos y procésalos en la base de conocimiento
🪟 Ventana de contexto — explora los fragmentos alrededor de un índice específico
Configurar un cliente MCP
Mínimo
{
"mcpServers": {
"documentation": {
"command": "npx",
"args": ["-y", "@Unity-Billal-mesloub/mcp-documentation-server"]
}
}
}Con variables de entorno (todas opcionales)
{
"mcpServers": {
"documentation": {
"command": "npx",
"args": ["-y", "@Unity-Billal-mesloub/mcp-documentation-server"],
"env": {
"MCP_BASE_DIR": "/path/to/workspace",
"GEMINI_API_KEY": "your-api-key-here",
"MCP_EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2",
"START_WEB_UI": "true",
"WEB_HOST": "127.0.0.1",
"WEB_PORT": "3080"
}
}
}
}Todas las variables de entorno son opcionales. Sin GEMINI_API_KEY, solo están disponibles las herramientas de búsqueda basadas en embeddings locales.
Herramientas MCP
El servidor registra las siguientes herramientas (todas validadas con esquemas Zod):
Gestión de documentos
Tool | Description |
| Añade un documento (título, contenido, metadatos opcionales) |
| Lista todos los documentos con metadatos y vista previa del contenido |
| Recupera el contenido completo de un documento por ID |
| Elimina un documento, sus fragmentos, las entradas de la base de datos y los archivos asociados |
Procesamiento de archivos
Tool | Description |
| Procesa todos los archivos de la carpeta de subidas (fragmentación + embeddings) |
| Devuelve la ruta absoluta a la carpeta de subidas |
| Lista los archivos de la carpeta de subidas con información de tamaño y formato |
| Devuelve la URL de la interfaz web (p. ej. http://localhost:3080) — útil para abrir el panel o localizar la carpeta de subidas desde el navegador |
Búsqueda
Tool | Description |
| Búsqueda vectorial semántica dentro de un documento específico |
| Búsqueda híbrida (texto completo + vectorial) entre documentos |
| Devuelve una ventana de fragmentos alrededor de un índice de fragmento determinado |
| 🤖 Búsqueda impulsada por IA con Gemini (requiere |
Configuración
Se configura mediante variables de entorno o un archivo .env en la raíz del proyecto:
Variable | Default | Description |
|
| Directorio base para el almacenamiento de datos |
|
| Nombre del modelo de embeddings |
| — | Clave de API de Google Gemini (habilita |
|
| Activa/desactiva la caché de embeddings LRU |
|
| Establécelo en |
|
| Dirección de escucha de la interfaz web (usa |
|
| Puerto de la interfaz web |
|
| Activa las lecturas en streaming para archivos grandes |
|
| Tamaño del búfer de streaming en bytes (64KB) |
|
| Umbral para cambiar a streaming (10MB) |
Estructura de almacenamiento
~/.mcp-documentation-server/ # Or custom path via MCP_BASE_DIR
├── data/
│ ├── orama-chunks.msp # Orama vector DB (child chunks + embeddings)
│ ├── orama-docs.msp # Orama document DB (full content + metadata)
│ ├── orama-parents.msp # Orama parent chunks DB (context sections)
│ ├── migration-complete.flag # Written after legacy JSON migration
│ └── *.md # Markdown copies of documents
└── uploads/ # Drop .txt, .md, .pdf files hereModelos de embeddings
Se define mediante MCP_EMBEDDING_MODEL:
Model | Dimensions | Notes |
| 384 | Por defecto — rápido y de buena calidad |
| 768 | Recomendado — mejor calidad y multilingüe |
Los modelos se descargan la primera vez que se usan (~80–420 MB). La dimensión de los vectores se determina automáticamente a partir del proveedor.
⚠️ Importante: cambiar el modelo de embeddings requiere volver a añadir todos los documentos — los embeddings de diferentes modelos son incompatibles. La base de datos de Orama se recrea automáticamente cuando cambia la dimensión.
Arquitectura
Server (FastMCP, stdio)
├─ Web UI (Express, port 3080)
│ └─ REST API → DocumentManager
└─ MCP Tools
└─ DocumentManager
├─ OramaStore — Orama vector DB (chunks DB + docs DB + parents DB), persistence, migration
├─ IntelligentChunker — Parent-child chunking (code, markdown, text, PDF)
├─ EmbeddingProvider — Local embeddings via @xenova/transformers
│ └─ EmbeddingCache — LRU in-memory cache
└─ GeminiSearchService — Optional AI search via Google GeminiOramaStore gestiona tres instancias de Orama: una para los metadatos/contenido de los documentos, una para los fragmentos secundarios con embeddings vectoriales y otra para los fragmentos principales (secciones de contexto). Todas se guardan en archivos binarios en el disco y se restauran al inicio.
IntelligentChunker implementa el patrón Parent-Child Chunking: los documentos se dividen primero en fragmentos principales grandes que conservan el contexto completo (secciones, párrafos), y luego cada fragmento principal se subdivide en fragmentos secundarios pequeños para una búsqueda vectorial precisa. En el momento de la consulta, los resultados se deduplican por fragmento principal, de modo que el LLM recibe tanto el fragmento coincidente como el contexto más amplio.
EmbeddingProvider carga de forma diferida un modelo de Transformers.js para la inferencia local: no se necesitan llamadas a la API.
Desarrollo
git clone https://github.com/Unity-Billal-mesloub/mcp-documentation-server.git
cd mcp-documentation-server
npm installnpm run dev # FastMCP dev mode with hot reload
npm run build # TypeScript compilation
npm run inspect # FastMCP web UI for interactive tool testing
npm start # Direct tsx execution (MCP server + web UI)
npm run web # Run only the web UI (development)
npm run web:build # Run only the web UI (compiled)Contribuciones
Haz un fork del repositorio
Crea una rama de funcionalidad:
git checkout -b feature/nameSigue Conventional Commits para los mensajes
Abre una pull request
Soporte
🤖 Google AI Studio — obtén una clave de API de Gemini
Historial de estrellas
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables any MCP-compatible AI assistant to search, filter, and retrieve information from a local document collection using a hybrid search pipeline with vector, BM25, reranking, and LLM enrichment.4
- AlicenseNot gradedqualityAmaintenanceProvides AI assistants with a local knowledge base and research library, enabling semantic and full-text retrieval, memory persistence, and multi-agent collaboration via 58 MCP tools.2MIT
- FlicenseNot gradedqualityDmaintenanceProvides tools for ingesting documents into a local vector database and retrieving relevant information via semantic search, enabling retrieval-augmented generation for MCP clients.6
- FlicenseAqualityBmaintenanceA local-first document retrieval engine that mounts as an MCP tool for agents to index files, search for relevant passages, and let the agent's own LLM answer.4
Related MCP Connectors
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Unity-Billal-mesloub/mcp-documentation-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server