Skip to main content
Glama

MCP-DOC-MID: MCP-Server für OpenAPI und Generierung von Integrationen

Unternehmensreifer Server für das Model Context Protocol (MCP)-Ökosystem in Node.js (ES Modules), spezialisiert auf das Lernen, Dereferenzieren ($ref) und Ermöglichen, dass ein LLM OpenAPI/Swagger-Spezifikationen abfragt und produktionsreife Code-Integrationen generiert.

Verwendet @apidevtools/swagger-parser, um beim Start des Servers alle Verweise und Komponenten-Schemata im Speicher aufzulösen, und stellt einen Katalog von 8 MCP-Tools bereit, die für Suche, Inspektion, Validierung und Generierung von HTTP-Clients in mehreren Sprachen (TypeScript, Python, JavaScript, cURL, C#) entwickelt wurden.


📚 Detaillierte Dokumentation

Für spezialisierte Anleitungen und vollständige Diagramme siehe:


Related MCP server: mcp-swagger

🏛️ Hauptmerkmale

  1. Automatisches Lesen und Dereferenzieren (swaggers/):

    • Rekursives Scannen von .yml, .yaml- und .json-Dateien.

    • Vollständige Auflösung von $ref-Referenzen in Komponenten, Parametern und Modellen.

  2. Generierung von Code-Integrationen für LLMs:

    • generate_integration_code: Generiert Snippets und stark typisierte Clients für jeden Endpoint.

    • Unterstützung für TypeScript (fetch/axios), JavaScript, Python (httpx/requests), cURL und C#.

  3. Validierung und Extraktion von Sicherheit:

    • validate_payload: Vorab-Validierung, ob ein JSON-Payload die erforderlichen Typen und Felder erfüllt.

    • get_security_schemes: Extraktion von Authentifizierungsschemata (Bearer-Tokens, API-Keys, OAuth2).

  4. Dualer Transport:

    • STDIO: Standard-Integration mit Claude Desktop, Antigravity, Cursor und MCP-Erweiterungen.

    • SSE / HTTP: Express-Server mit Schreib-/sse, /messages, /metrics, /health und /dashboard.

  5. Beobachtbarkeit und Sicherheit:

    • Logs ausschließlich über process.stderr mit Pino.

    • Prometheus-Metriken (prom-client) unter /metrics.

    • Session Binding und Schutz vor Session Hijacking unter /messages.


🛣️ Der Integrationsablauf in 3 Schritten (Zero-Code)

Damit die Integration neuer APIs 100 % Coco ist, bis zuletzt ohne Reibung und ohne eine einzige Zeile Code, implementiert der Server Automatische Erkennung und Laden per Konvention:

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️⃣ Schritt 1: Datei in swaggers/ ablegen

Lege deine .json-, .yml- oder .yaml-Datei einfach im Verzeichnis swaggers/ ab.

📁 Empfohlene skalierbare Struktur (nach Domänen oder Microservices):

Der Scanner ist rekursiv, du kannst deine Dateien also in thematischen Unterordnern organisieren, während die Anzahl der APIs steigt:

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 Viva

[!TIP] Automatischer Identifikator (specId): Das System generiert die specId automatisch aus dem Basisnamen der Datei:

  • avasa-car-ren tal.json $\rightarrow$ specId: "avasa-car-rental"

  • openpay-gateway.yml $\rightarrow$ specId: "openpay-gateway"


2️⃣ Schritt 2: Integrität prüfen mit npm run self-test

Du musst keine MCP-Clients starten oder Server blind neu starten. Führe im Terminal aus:

npm run self-test

Was macht dieser Befehl in weniger als 15 ms?

  1. Erkennt die neue Datei und berechnet ihren SHA-256-Hash.

  2. Löst und dereferenziert automatisch alle $ref-Referenzen.

  3. Bereinigt defekte oder fehlende Verweise, damit der Server nie kollabiert.

  4. Generiert den leistungsstarken Snapshot in .cache/swaggers/.

  5. Zeigt die Zusammenfassung in Echtzeit an:

{
  "status": "healthy",
  "checks": {
    "swaggers": {
      "status": "pass",
      "specsCount": 4,
      "endpointsCount": 285,
      "schemasCount": 412
    }
  }
}

3️⃣ Schritt 3: Bereit für Abfragen durch Agents und LLMs

Sofort erlernen die 8 MCP-Tools die neuen Endpunkte und Schemata, ohne dass eine zusätzliche Konfiguration nötig ist:

  • Globale Suche: search_docs({ query: "rent a autos" }) durchsucht alle Swaggers gleichzeitig.

  • Gefilterte Suche: search_docs({ query: "renta", specId: "avasa-car-rental" }) fragt ausschließlich diese API ab.

  • Codegenerierung: generate_integration_code({ path: "/v1/cars/book", language: "typescript" }) erzeugt den typisierten Client.

  • Payloadvalidierung: validate_payload({ schemaName: "CarBookingDto", payload: { ... } }) validiert gegen das neue Modell.


🏆 Bewährte Methoden für maximale Qualität im LLM

Damit die Sprachmodelle beim Lesen deiner neuen Swaggers den besten Code und die präzisesten Antworten generieren:

  1. Basis-URL deklarieren (servers):

servers:
  - url: https://api.vivaaerobus.com/v1
    description: Ambiente de Producción
  1. Beispiele in die Schemas aufnehmen (example / examples): Die Beispiele ermöglichen dem Tool generate_integration_code und dem LLM, automatisch realistische Test-Payloads zu erstellen.

  2. Klare Tags verwenden (tags): Die Gruppierung in Tags (z.B. [ "CarRental", "Payments", "Security" ]) ermöglicht den Agenten, Endpunkt-Sammlungen schnell über search_docs({ tag: "Payments" }) zu filtern.

  3. Sicherheit deklarieren (components.securitySchemes): Angeben, ob bearerFormat: JWT, ApiKey oder OAuth2 verwendet wird, damit das Tool get_security_schemes die benötigten Header bereitstellt.


🛠️ Vorhandene MCP-Tools

Tool

Funktionalität

Hauptparameter

list_specs

Aktuelle alle geladenen APIs mit ihren Versionen, Servern und Routenanzahl.

Keine

search_docs

Sucht Endpunkte, Modelle und Beschreibungen anhand von Schlüsselwörtern.

query (erforderlich), SpecId (option), tag (option), limit (option)

get_endpoint_doc

Ruft die vollständige und dereferenzierte Spezifikation eines Endpunkts ab.

path (erforderlich), method (option, Standard: GET), specId (option)

get_schema_doc

Ruft das dereferenzierte Datenmodell/Schema ab.

schemaName (erforderlich), specId (option)

generate_integration_code

Generiert produktionsbereiten Client-Code (TS, Python, JS, cURL, C#).

path (erforderlich), method (option), language (option), clientType (option)

get_security_schemes

Ruft Authentifizierungsschemata und erforderliche Header ab.

specId (option)

validate_payload

ValidiERT ein JSON-Payload gegen das Schema eines Endpunkts.

schemaName (erforderlich), payload (erforderlich), specId (option)

query_api_knowledge

Synthetisiert Antworten auf fachliche oder architektonische API-Fragen.

query (erforderlich), specId (option)


⚙️ Umgebungsvariablen (.env)

Variable

Beschreibung

Standardwert

TRANSPORT_MODE

Transportmodus (stdio, http, sse) für SSE/HTTP

stdio

PORT

Port für den Verbindungsaufbau von SSE/HTTP

3000

LOG_LEVEL

Log-Level (debug, info, warn, error)

info

MCP_API_KEY

Geheimer Schlüssel für die API-Authentifizierung

default-mcp-secret-key

ENABLE_AUTH

Authentifizierung aktivieren/deaktivieren (true/false)

true

ALLOWED_ORIGINS

Erlaubte Ursprünge für CORS

*

DASHBOARD_USER

Benutzer für den Zugriff auf das Web-Dashboard

admin

DASHBOARD_PASSWORD

Passwort für den Zugriff auf das Web-Dashboard

admin

RATE_LIMIT_WINDOW_MS

Zeitfenster (in Millisekunden) für das Rate Limiting

900000 (15 Min.)

RATE_LIMIT_MAX

Maximale Anzahl an Anforderungen im Fenster

1000

STATS_STORAGE_ENABLED

Persistenz der Statistiken auf Datenspeicher

true

STATS_STORAGE_PATH

Pfad zur Persistenzdatei (Dateisystem)

data/stats.json

SWAGGERS_DIR

Ordner von OpenAPI-Spezifikationen

swaggers


🚀 Schnellstart

# 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

📦 Tests und Benchmarks

Das Projekt verfügt über eine umfassende Testsuite mit 116 Tests bestanden (100%) und einer Abdeckung von über 93% der Anweisungen:

# 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

🐳 Deployment mit 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:latest
Install Server
F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    D
    maintenance
    Exposes Swagger/OpenAPI API documentation to AI models, enabling exploration, search, and interaction with endpoints, schemas, and execution of API calls.
    14
    10
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to understand and interact with OpenAPI specifications, providing deep insight into API structures for faster and more accurate API integration.
    6
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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