MCP-DOC-MID
MCP-DOC-MID: Servidor MCP para OpenAPI y Generación de Integraciones
Servidor de grado empresarial para el ecosistema Model Context Protocol (MCP) en Node.js (ES Modules), especializado en aprender, dereferenciar ($ref) y permitir que un LLM consulte especificaciones OpenAPI/Swagger y genere integraciones de código listas para producción.
Utiliza @apidevtools/swagger-parser para resolver en memoria todos los apuntadores y esquemas de componentes al iniciar el servidor, y expone un catálogo de 8 herramientas MCP diseñadas para búsqueda, inspección, validación y generación de clientes HTTP en múltiples lenguajes (TypeScript, Python, JavaScript, cURL, C#).
📚 Documentación Detallada
Para guías especializadas y diagramas completos, consulta:
🏛️ Guía de Arquitectura del Sistema (
docs/ARCHITECTURE.md): Diagramas de flujo, Session Binding, observabilidad, persistencia atómica y Circuit Breaker.🛠️ Referencia de Herramientas MCP (
docs/TOOLS_REFERENCE.md): Detalle exhaustivo de parámetros, esquemas JSON y ejemplos de respuesta de cada herramienta.📂 Guía de Archivos Swagger / OpenAPI (
docs/SWAGGER_GUIDE.md): Instrucciones para añadir, validar y organizar especificaciones.ymly.json.📋 Especificación Estructural Doters API Internal (
docs/MIDDLEWARE_API_SPEC.md): Análisis de los 110 endpoints, 221 DTOs, envoltorios de respuesta y 25 dominios demiddleware-api.json.
Related MCP server: mcp-swagger
🏛️ Características Principales
Lectura y Dereference Automático (
swaggers/):Escaneo recursivo de archivos
.yml,.yamly.json.Resolución completa de referencias
$refen componentes, parámetros y modelos.
Generación de Integraciones de Código para LLM:
generate_integration_code: Genera snippets y clientes fuertemente tipados para cualquier endpoint.Soporte para TypeScript (
fetch/axios), JavaScript, Python (httpx/requests), cURL y C#.
Validación y Extracción de Seguridad:
validate_payload: Comprobación previa de que un payload JSON cumpla con tipos y campos requeridos.get_security_schemes: Extracción de esquemas de autenticación (Bearer tokens, API keys, OAuth2).
Transporte Dual:
STDIO: Integración estándar con Claude Desktop, Antigravity, Cursor y extensiones MCP.
SSE / HTTP: Servidor Express con
/sse,/messages,/metrics,/healthy/dashboard.
Observabilidad y Seguridad:
Logs dirigidos exclusivamente a
process.stderrcon Pino.Métricas Prometheus (
prom-client) en/metrics.Session Binding y protección contra Session Hijacking en
/messages.
🛣️ El Flujo de Integración en 3 Pasos (Zero-Code)
Para que la integración de nuevas APIs sea 100% escalable, sin fricción y sin tocar una sola línea de código, el servidor implementa Autodescubrimiento y Carga por Convención:
flowchart LR
A["1. Copiar Archivo\n(swaggers/mi-api.json o .yml)"] --> B["2. Auto-Discovery & Caching\n(Hash SHA-256 + Dereference)"]
B --> C["3. Auto-Diagnóstico\n(npm run self-test)"]
C --> D["✅ Disponible en las 8 Tools MCP\n(search_docs, get_endpoint_doc, etc.)"]1️⃣ Paso 1: Colocar el Archivo en swaggers/
Simplemente guarda tu archivo .json, .yml o .yaml en el directorio swaggers/.
📁 Estructura Escalable Recomendada (Por Dominios o Microservicios):
El escáner es recursivo, por lo que puedes organizar tus archivos en subcarpetas temáticas a medida que crezca el número de APIs:
swaggers/
├── middleware-api.json # API Core Middleware
├── partners/
│ ├── avasa-car-rental.json # Swagger de Avasa
│ └── iamsa-bus.json # Swagger de IAMSA
├── payments/
│ └── openpay-gateway.yml # OpenAPI de Pasarelas de Pago
└── flights/
└── viva-booking.yaml # OpenAPI de Reservaciones VivaIdentificador Automático (specId):
El sistema genera el specId automáticamente a partir del nombre base del archivo:
avasa-car-rental.json$\rightarrow$specId: "avasa-car-rental"openpay-gateway.yml$\rightarrow$specId: "openpay-gateway"
2️⃣ Paso 2: Verificar la Integridad con npm run self-test
No necesitas levantar clientes MCP ni reiniciar servidores a ciegas. Ejecuta en terminal:
npm run self-test¿Qué hace este comando en < 15 ms?
Detecta el nuevo archivo y calcula su hash SHA-256.
Resuelve y dereferencia automáticamente todos los apuntadores
$ref.Sanitiza referencias rotas o ausentes para que el servidor nunca colapse.
Genera el snapshot de alto rendimiento en
.cache/swaggers/.Muestra el resumen en tiempo real:
{
"status": "healthy",
"checks": {
"swaggers": {
"status": "pass",
"specsCount": 4,
"endpointsCount": 285,
"schemasCount": 412
}
}
}3️⃣ Paso 3: Listo para Consultar por los Agentes y LLMs
De forma inmediata, las 8 herramientas MCP aprenden los nuevos endpoints y esquemas sin configuración adicional:
Búsqueda global:
search_docs({ query: "renta autos" })buscará en todos los swaggers a la vez.Búsqueda filtrada:
search_docs({ query: "renta", specId: "avasa-car-rental" })consulta exclusivamente esa API.Generación de código:
generate_integration_code({ path: "/v1/cars/book", language: "typescript" })generará el cliente tipado.Validación de payloads:
validate_payload({ schemaName: "CarBookingDto", payload: { ... } })validará contra el nuevo modelo.
🏆 Buenas Prácticas para Garantizar Máxima Calidad en el LLM
Para que los modelos de lenguaje generen el mejor código y respuestas precisas al leer tus nuevos swaggers:
Declarar la URL Base (
servers):servers: - url: https://api.vivaaerobus.com/v1 description: Ambiente de ProducciónIncluir Ejemplos en los Schemas (
example/examples): Los ejemplos permiten a la herramientagenerate_integration_codey al LLM crear payloads de prueba realistas automáticamente.Usar Etiquetas Claras (
tags): Agrupar por tags (ej.[ "CarRental", "Payments", "Security" ]) permite a los agentes filtrar colecciones de endpoints rápidamente consearch_docs({ tag: "Payments" }).Declarar la Seguridad (
components.securitySchemes): Especificar si usabearerFormat: JWT,ApiKeyoOAuth2para que la herramientaget_security_schemesexponga las cabeceras requeridas.
🛠️ Herramientas MCP Disponibles
Herramienta | Descripción | Parámetros Principales |
Lista todas las APIs cargadas con sus versiones, servidores y conteo de rutas. | Ninguno | |
Busca endpoints, modelos y descripciones por palabras clave. |
| |
Obtiene la especificación completa y dereferenciada de un endpoint. |
| |
Obtiene el modelo de datos / schema dereferenciado. |
| |
Genera código de cliente listo para producción (TS, Python, JS, cURL, C#). |
| |
Obtiene esquemas de autenticación y cabeceras requeridas. |
| |
Valida un payload JSON contra el schema de un endpoint antes de invocarlo. |
| |
Sintetiza respuestas a preguntas de negocio o arquitectura sobre las APIs. |
|
⚙️ Variables de Entorno (.env)
Variable | Descripción | Valor por Defecto |
| Modo de transporte ( |
|
| Puerto de escucha para modo SSE/HTTP |
|
| Nivel de logs ( |
|
| Llave secreta para autenticación de API |
|
| Habilitar/deshabilitar autenticación ( |
|
| Orígenes permitidos para CORS |
|
| Usuario para acceso al Dashboard web |
|
| Contraseña para acceso al Dashboard web |
|
| Ventana de tiempo para Rate Limit en ms |
|
| Máximo de peticiones por ventana |
|
| Persistencia de estadísticas en disco |
|
| Ruta del archivo de persistencia |
|
| Carpeta de especificaciones OpenAPI |
|
🚀 Inicio Rápido
# 1. Instalar dependencias
npm install
# 2. Autodiagnóstico en runtime (<5ms)
npm run self-test
# 3. Iniciar en modo STDIO (predeterminado)
npm start
# 4. Iniciar en modo SSE / HTTP (servidor web)
TRANSPORT_MODE=sse PORT=3000 npm start🧪 Pruebas Automatizadas y Benchmarks
El proyecto cuenta con una suite integral de pruebas con 116 tests pasando (100%) y una cobertura superior al 93% en sentencias:
# 1. Ejecutar suite completa de pruebas unitarias y de integración
npm test
# 2. Reporte de cobertura detallado con Vitest y V8 (>93% Stmts)
npm run test:coverage
# 3. Pruebas de carga de alta concurrencia (100 agentes concurrentes)
npm run test:load
# 4. Benchmark de latencia y throughput (<5ms)
npm run benchmark
# 5. Pipeline de integración continua (CI)
npm run test:ci🐳 Despliegue con Docker
# Construir imagen Docker multi-stage
docker build -t mcp-doc-mid:latest .
# Ejecutar contenedor en modo SSE
docker run -p 3000:3000 -e TRANSPORT_MODE=sse mcp-doc-mid:latestMaintenance
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
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to explore and query OpenAPI specifications, allowing natural language interaction with API endpoints, parameters, request bodies, and response schemas from any OpenAPI 3.x spec.12MIT
- AlicenseAqualityDmaintenanceExposes Swagger/OpenAPI API documentation to AI models, enabling exploration, search, and interaction with endpoints, schemas, and execution of API calls.14102MIT
- FlicenseNot gradedqualityCmaintenanceBrings OpenAPI/Swagger documentation into AI assistants, enabling endpoint discovery, deep inspection, cURL generation, and TypeScript type generation.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to understand and interact with OpenAPI specifications, providing deep insight into API structures for faster and more accurate API integration.61MIT
Related MCP Connectors
Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
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/manuelperezg/mcp-docu-mid'
If you have feedback or need assistance with the MCP directory API, please join our Discord server