MCP server for loading and exploring OpenAPI/Swagger specifications. Lets AI assistants browse API contracts dynamically — load any OpenAPI spec, search endpoints, inspect schemas, retrieve operations, diff versions — all through MCP tools.
- Node.js >= 22 or Bun >= 1.0
- oasdiff (optional) — required only for the
diff_specstool. Install from github.com/oasdiff/oasdiff.
Add to your MCP client config:
{
"mcpServers": {
"openapi-mcp": {
"command": "npx",
"args": ["-y", "@ceski23/openapi-mcp"]
}
}
}Ask your AI assistant to add it:
Add the MCP server
@ceski23/openapi-mcpto my config. Run it withnpx -y @ceski23/openapi-mcpvia stdio.
Most assistants can modify your MCP config file directly.
| Tool | Description |
|---|---|
load_spec |
Load an OpenAPI/Swagger spec from a URL or local file path. Parses and validates the spec, returns a specId for use by other tools. |
find_operations |
Search operations in a loaded spec by operationId, path, summary, tags, or description. Supports filtering by HTTP method and tags, with pagination. |
get_operation |
Get full details for a single operation by operationId — method, path, parameters, requestBody, and responses. |
get_path |
Get all HTTP methods defined on a specific path. Returns a summary of each method. |
find_schemas |
Search component/definition schema names in a loaded spec. Supports pagination. |
get_schema |
Retrieve a fully dereferenced component/definition schema by name. |
search_contract |
Search both operations and schemas in a single call — matches against operationIds, summaries, tags, paths, schema names, schema descriptions, property names, and enum values. The best first call when exploring an API. |
diff_specs |
Compare two loaded OpenAPI specs. Supports summary, detailed (JSON), and markdown changelog output. Requires oasdiff on PATH. |
list_cached_specs |
List all currently cached specs with their specIds, sources, titles, and versions. |
list_versions |
List all cached versions for a specId (tracked across repeated loads of the same source). |
unload_spec |
Remove a loaded spec (and its version history) from the cache by specId. |