openapi-md-mcp
openapi-md-mcp
Ein MCP-Server, der OpenAPI-Specs progressiv offenlegt (progressive disclosure) als Markdown.
Warum
Swagger UI (
/docs) ist eine JS-Hülle, die AI kann den Inhalt nicht erfassen.Die vollständige
/openapi.jsonumfasst oft dutzende K Tokens; den gesamten Kontext damit zu füllen ist zu teuer.Dieses Tool gibt der AI nur eine dauerhaft im Kontext residente Endpunkttabelle mit „Schlüssel + Zusammenfassung“ (~1k Tokens). Über den Schlüssel wird in die Markdown-Details eines einzelnen Endpunkts / Schemas eingetaucht. In der Praxis spart das ~90% Kontext.
Related MCP server: OpenAPI MCP Server
Tools (progressive Offenlegung, alle Ausgaben als Markdown)
Tool | Eingabe | Ausgabe |
|
| Endpunkttabelle |
|
| Endpunktdetails: Authentifizierung, Parametertabelle, Request-Body ( |
|
| Schema-Attributtabelle + verschachtelte |
|
| Batch-Auswahl: Endpunktschlüsseltabelle mit Authentifizierungsspalte + passende Schema-Namen (horizontale Aggregation, z. B. „alle authentifizierten Endpunkte“) |
|
| Batch-Abstieg: Alle Details mit gemischten Schlüsseln auf einmal abrufen, referenzierte Schemas werden automatisch zu einem deduplizierten Anhang zusammengefasst |
Der Drilldown-Schlüssel ist METHOD /path oder der Schema-Name; er wird direkt aus der Ausgabe der oberen Ebene übernommen.
Batch-Modus (select + get_batch)
Der Drilldown mit einem einzelnen Schlüssel kann horizontale Fragen nicht beantworten („alle authentifizierten Endpunkte“ erforderten dutzende einzelne get_endpoint-Aufrufe),
die Batch-Ebene füllt diese Lücke:
select(patterns=["GET /v1/auth/*", "* /v1/scoring/*"], security="X-Service-Token", tag="scoring", schema_glob="Credit*")patterns-Elemente haben die Form
"METHOD /path/glob": Die Methode kann*sein (Groß-/Kleinschreibung wird ignoriert); der Pfad-Glob unterscheidet Groß-/Kleinschreibung.securityist der Scheme-Name; zwischen den patterns gilt OR, mit security/tag gilt AND.Null Treffer liefern Erfolgstext (verfügbare Schemes/Tags + Vorschläge zur Lockerung), keinen Fehler.
get_batch(["POST /v1/scoring/credit", "CreditBatchRequest"])Schlüssel werden dedupliziert und in Reihenfolge beibehalten, Obergrenze 40; die Gesamtzahl der gerenderten Zeichen ist auf 100k begrenzt; bei Überschreitung wird
include_refs=Falseoder eine Aufteilung in Chargen empfohlen.include_refs=Truefasst die im Rendering referenzierten$refautomatisch zu einem „gemeinsamen Schema-Anhang“ zusammen (jeder Name wird nur einmal gerendert).
Konfiguration (env)
Variable | Standard | Beschreibung |
|
| Laufzeit-Spec (bevorzugt). Direkt die Dokumentationsseiten-URL |
| leer | Fallback-Spec-Dateipfad (wird verwendet, wenn die Laufzeit nicht erreichbar ist) |
|
| Abruf-Timeout (Sekunden) |
Die Spec unterstützt JSON und YAML; nach dem Laden wird sie 60 s im Prozess zwischengespeichert.
Die Anfragen erfolgen direkt (
trust_env=False): Ziel ist eine localhost-/Intranet-Spec, der Systemproxy wird nicht verwendet (der macOS-Systemproxy kapert localhost und erzeugt 502).Nur lesend, keine Fähigkeit zum Aufrufen von APIs (Authentifizierungs-Header gelangen nicht in die MCP-Ebene).
Einbindung in beliebige Repositories
Claude-Code-Registrierung auf Benutzerebene (einmal registriert, für alle Repositories verfügbar):
claude mcp add openapi-md -s user -- \
uv run --directory /path/to/openapi-md-mcp openapi-md-mcpRepositories, die unterschiedliche Datenquellen benötigen, überschreiben einfach die env-Werte in ihrem projektweiten .mcp.json.
Protokollkonformität (MCP 2026-07-28, allgemein als 2.0 bekannt)
Toolname / Beschreibung / inputSchema entsprechen der Spezifikation §Tools (Zeichensatz und Länge der Namen, deterministische
tools/list-Reihenfolge).Alle fünf Tools deklarieren
annotations.readOnlyHint: true(nur lesen).Die Fehlersemantik folgt §Tools Error Handling der Spezifikation: Spec-Ladefehler, unbekannte Schlüssel (einschließlich Vorschlägen für ähnliche Schlüssel), ungültige Filterpatterns und Überschreitung des Batch-Limits werden als Tool Execution Error mit
ToolErrorgeworfen → auf der Leitung erscheint das alsCallToolResult(isError=true), der Client gibt die Vorschläge zur Selbstkorrektur an das Modell zurück; Null Treffer sind Erfolgstext; keinecall-Fähigkeit (API-Aufruf).Versionsaushandlung: stdio nutzt die initialize-Handshake-Ära (maximal 2025-11-25); die zustandslose Envelope-Ära von 2026-07-28 wird vom SDK auf der HTTP-Transportebene behandelt (
server/discover), das stdio-Szenario ist nicht betroffen.
Entwicklung
uv sync # 安装依赖
uv run pytest --cov=openapi_md_mcp # 测试(fixture 为真实 OpenAPI 3.1 快照)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
- AlicenseAqualityDmaintenanceAn MCP server that provides tools for exploring large OpenAPI schemas without loading entire schemas into LLM context. Perfect for discovering and analyzing endpoints, data models, and API structure efficiently.914MIT
- 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
- AlicenseNot gradedqualityDmaintenanceMCP server that converts OpenAPI documentation to Markdown with tolerant parsing, enabling LLMs to batch query and explore APIs.151MIT
- FlicenseNot gradedqualityDmaintenanceTurns any OpenAPI/Swagger spec into queryable tools for LLMs, enabling endpoint search, detail retrieval, and schema exploration.1
Related MCP Connectors
Same functionality, consuming only 1/20 of the context window tokens.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.
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/YuShenLiu06/openapi-md-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server