openapi-md-mcp
Provides progressive-disclosure Markdown access to OpenAPI/Swagger API specifications, allowing AI agents to list endpoints, inspect endpoint details, retrieve schemas, and batch-select related operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@openapi-md-mcpList endpoints under /v1/scoring"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
openapi-md-mcp
An MCP server that exposes OpenAPI specs to markdown with progressive disclosure.
Why
Swagger UI (
/docs) is a JS shell; AI can't scrape its contentThe full
/openapi.jsonis often tens of thousands of tokens—too expensive to stuff into contextThis tool keeps the AI's resident context to just an endpoint table of "key + summary" (~1k tokens), drilling down by key to fetch single-endpoint / single-schema markdown details—measured to save ~90% of context
Related MCP server: OpenAPI MCP Server
Tool surface (progressive disclosure, all output is markdown)
tool | input | output |
|
| Endpoint table |
|
| Endpoint details: auth, parameter table, request body ( |
|
| Schema property table + nested |
|
| Batch selection: endpoint key table with auth column + matching schema names (horizontal aggregation, e.g. "all authenticated endpoints") |
|
| Batch drill-down: mixed keys fetch all details at once, referenced schemas auto-merged into a deduplicated appendix |
Drill-down key = METHOD /path or schema name, obtained directly from the output of the layer above.
Batch mode (select + get_batch)
Single-key drill-down can't answer horizontal questions ("all authenticated endpoints" would require dozens of individual get_endpoint calls), so the batch layer fills the gap:
select(patterns=["GET /v1/auth/*", "* /v1/scoring/*"], security="X-Service-Token", tag="scoring", schema_glob="Credit*")patternselements look like"METHOD /path/glob": method can be*(case-insensitive); path glob is case-sensitivesecurityis a scheme name; patterns are OR'd together, and AND'd with security/tagZero matches return success text (available schemes / tags + relaxation suggestions), not an error
get_batch(["POST /v1/scoring/credit", "CreditBatchRequest"])Keys deduplicated preserving order, cap of 40; total rendered character cap of 100k, beyond which
include_refs=Falseor batching is suggestedinclude_refs=Trueauto-merges$refs referenced during rendering into a "shared schema appendix" (each name rendered only once)
Configuration (env)
variable | default | description |
|
| Runtime spec (preferred). Can be set directly to the |
| empty | Fallback spec file path (used when the runtime URL is unreachable) |
|
| Fetch timeout (seconds) |
Spec supports JSON and YAML; cached in-process for 60s after loading
Requests are direct (
trust_env=False): the target is a localhost / intranet spec, so system proxy is bypassed (macOS system proxy hijacks localhost into a 502)Read-only, no API-calling capability (auth headers never enter the MCP layer)
Integrate into any repository
Claude Code user-level registration (register once, available in all repositories):
claude mcp add openapi-md -s user -- \
uv run --directory /path/to/openapi-md-mcp openapi-md-mcpRepositories needing a different data source can override env in their project-level .mcp.json.
Protocol compliance (MCP 2026-07-28, colloquially 2.0)
Tool names / descriptions / inputSchema conform to spec §Tools (name character set and length, deterministic
tools/listordering)All five tools declare
annotations.readOnlyHint: true(read-only)Error semantics follow spec §Tools Error Handling: spec load failure, unknown keys (with near-match suggestions), invalid filter patterns, and batch over-limit are thrown as
ToolErrorfor Tool Execution Error → surfaced online asCallToolResult(isError=true), and the client feeds suggestions back to the model for self-correction; zero matches are success text; nocall(API invocation) capabilityVersion negotiation: stdio uses the initialize handshake epoch (highest 2025-11-25); the stateless envelope epoch of 2026-07-28 is handled by the SDK at the HTTP transport layer (
server/discover), not applicable to the stdio scenario
Development
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