An MCP (Model Context Protocol) server that provides token-efficient access to OpenAPI (v3.0) and Swagger (v2.0) specifications via MCP Resource Templates. The primary goal of this project is to allow MCP clients (like Cline or Claude Desktop) to explore the structure and details of large OpenAPI specifications without needing to load the entire file into an LLM's context window. It achieves this
Add this skill
npx mdskills install kadykov/mcp-openapi-schema-explorerWell-documented MCP server providing token-efficient OpenAPI exploration via resource templates
An MCP (Model Context Protocol) server that provides token-efficient access to OpenAPI (v3.0) and Swagger (v2.0) specifications via MCP Resource Templates.
The primary goal of this project is to allow MCP clients (like Cline or Claude Desktop) to explore the structure and details of large OpenAPI specifications without needing to load the entire file into an LLM's context window. It achieves this by exposing parts of the specification through MCP Resource Templates, which provide parameterized access patterns for read-only data exploration.
This server supports loading specifications from both local file paths and remote HTTP/HTTPS URLs. Swagger v2.0 specifications are automatically converted to OpenAPI v3.0 upon loading.
Note: This server provides resource templates (not pre-enumerated resources). MCP clients access these templates through the
resources/templates/listprotocol method. For more information about resource templates, see the MCP Resource Templates documentation.
The Model Context Protocol defines both Resources and Tools.
openapi://paths/{path}/{method}), allowing dynamic access without pre-enumerating all possible values.While other MCP servers exist that provide access to OpenAPI specs via Tools, this project specifically focuses on providing access via Resource Templates. This approach is particularly efficient for large APIs because:
For more details on MCP clients and their capabilities, see the MCP Client Documentation.
For the recommended usage methods (npx and Docker, described below), no separate installation step is required. Your MCP client will download the package or pull the Docker image automatically based on the configuration you provide.
However, if you prefer or need to install the server explicitly, you have two options:
Global Installation: You can install the package globally using npm:
npm install -g mcp-openapi-schema-explorer
See Method 3 below for how to configure your MCP client to use a globally installed server.
Local Development/Installation: You can clone the repository and build it locally:
git clone https://github.com/kadykov/mcp-openapi-schema-explorer.git
cd mcp-openapi-schema-explorer
npm install
npm run build
See Method 4 below for how to configure your MCP client to run the server from your local build using node.
This server is designed to be run by MCP clients (like Claude Desktop, Windsurf, Cline, etc.). To use it, you add a configuration entry to your client's settings file (often a JSON file). This entry tells the client how to execute the server process (e.g., using npx, docker, or node). The server itself doesn't require separate configuration beyond the command-line arguments specified in the client settings entry.
Below are the common methods for adding the server entry to your client's configuration.
Using npx is recommended as it avoids global/local installation and ensures the client uses the latest published version.
Example Client Configuration Entry (npx Method):
Add the following JSON object to the mcpServers section of your MCP client's configuration file. This entry instructs the client on how to run the server using npx:
{
"mcpServers": {
"My API Spec (npx)": {
"command": "npx",
"args": [
"-y",
"mcp-openapi-schema-explorer@latest",
"",
"--output-format",
"yaml"
],
"env": {}
}
}
}
Configuration Notes:
"My API Spec (npx)" with a unique name for this server instance in your client.--output-format is optional (json, yaml, json-minified), defaulting to json.mcpServers, each with a unique name and pointing to a different spec.You can instruct your MCP client to run the server using the official Docker image: kadykov/mcp-openapi-schema-explorer.
Example Client Configuration Entries (Docker Method):
Add one of the following JSON objects to the mcpServers section of your MCP client's configuration file. These entries instruct the client on how to run the server using docker run:
Remote URL: Pass the URL directly to docker run.
Using a Remote URL:
{
"mcpServers": {
"My API Spec (Docker Remote)": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"kadykov/mcp-openapi-schema-explorer:latest",
""
],
"env": {}
}
}
}
Using a Local File: (Requires mounting the file into the container)
{
"mcpServers": {
"My API Spec (Docker Local)": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"/full/host/path/to/spec.yaml:/spec/api.yaml",
"kadykov/mcp-openapi-schema-explorer:latest",
"/spec/api.yaml",
"--output-format",
"yaml"
],
"env": {}
}
}
}
Important: Replace /full/host/path/to/spec.yaml with the correct absolute path on your host machine. The path /spec/api.yaml is the corresponding path inside the container.
If you have installed the package globally using npm install -g, you can configure your client to run it directly.
# Run this command once in your terminal
npm install -g mcp-openapi-schema-explorer
Example Client Configuration Entry (Global Install Method):
Add the following entry to your MCP client's configuration file. This assumes the mcp-openapi-schema-explorer command is accessible in the client's execution environment PATH.
{
"mcpServers": {
"My API Spec (Global)": {
"command": "mcp-openapi-schema-explorer",
"args": ["", "--output-format", "yaml"],
"env": {}
}
}
}
command (mcp-openapi-schema-explorer) is accessible in the PATH environment variable used by your MCP client.This method is useful if you have cloned the repository locally for development or to run a modified version.
Setup Steps (Run once in your terminal):
git clone https://github.com/kadykov/mcp-openapi-schema-explorer.gitcd mcp-openapi-schema-explorernpm installnpm run build (or just build)Example Client Configuration Entry (Local Development Method):
Add the following entry to your MCP client's configuration file. This instructs the client to run the locally built server using node.
{
"mcpServers": {
"My API Spec (Local Dev)": {
"command": "node",
"args": [
"/full/path/to/cloned/mcp-openapi-schema-explorer/dist/src/index.js",
"",
"--output-format",
"yaml"
],
"env": {}
}
}
}
Important: Replace /full/path/to/cloned/mcp-openapi-schema-explorer/dist/src/index.js with the correct absolute path to the built index.js file in your cloned repository.
openapi://info, openapi://paths/{path}/{method}, openapi://components/{type}/{name}).--output-format).info.title from the loaded spec.$refs (#/components/...) are transformed into clickable MCP URIs.This server exposes the following MCP resource templates for exploring the OpenAPI specification.
Important: This server provides resource templates, not pre-enumerated resources. When you use an MCP client:
- The client calls
resources/templates/listto discover the available template patterns- You then construct specific URIs by filling in the template parameters (e.g., replacing
{path}withusers%2F%7Bid%7D)- The client uses
resources/readwith your constructed URI to fetch the actual contentIf you call
resources/list(without "templates"), you will get an empty list—this is expected behavior.
Understanding Multi-Value Parameters (*)
Some resource templates include parameters ending with an asterisk (*), like {method*} or {name*}. This indicates that the parameter accepts multiple comma-separated values. For example, to request details for both the GET and POST methods of a path, you would use a URI like openapi://paths/users/get,post. This allows fetching details for multiple items in a single request.
Resource Templates:
openapi://{field}
info, servers, tags) or lists the contents of paths or components. The specific available fields depend on the loaded specification.openapi://infotext/plain list for paths and components; configured format (JSON/YAML/minified JSON) for other fields.{field} based on the actual top-level keys found in the loaded spec.openapi://paths/{path}
{path} - The API path string. Must be URL-encoded (e.g., /users/{id} becomes users%2F%7Bid%7D).openapi://paths/users%2F%7Bid%7Dtext/plain list of methods.{path} based on the paths found in the loaded spec (URL-encoded).openapi://paths/{path}/{method*}
{path} - The API path string. Must be URL-encoded.{method*} - One or more HTTP methods (e.g., get, post, get,post). Case-insensitive.openapi://paths/users%2F%7Bid%7D/getopenapi://paths/users%2F%7Bid%7D/get,post{path}. Provides static suggestions for {method*} (common HTTP verbs like GET, POST, PUT, DELETE, etc.).openapi://components/{type}
schemas, responses, parameters). The specific available types depend on the loaded specification. Also provides a short description for each listed type.openapi://components/schemastext/plain list of component names with descriptions.{type} based on the component types found in the loaded spec.openapi://components/{type}/{name*}
{type} - The component type.{name*} - One or more component names (e.g., User, Order, User,Order). Case-sensitive.openapi://components/schemas/Useropenapi://components/schemas/User,Order{type}. Provides dynamic suggestions for {name*} only if the loaded spec contains exactly one component type overall (e.g., only schemas). This limitation exists because the MCP SDK currently doesn't support providing completions scoped to the selected {type}; providing all names across all types could be misleading.Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines on setting up the development environment, running tests, and submitting changes.
This project uses semantic-release for automated version management and package publishing based on Conventional Commits.
(Future plans to be determined)
Install via CLI
npx mdskills install kadykov/mcp-openapi-schema-explorerMCP OpenAPI Schema Explorer is a free, open-source AI agent skill. An MCP (Model Context Protocol) server that provides token-efficient access to OpenAPI (v3.0) and Swagger (v2.0) specifications via MCP Resource Templates. The primary goal of this project is to allow MCP clients (like Cline or Claude Desktop) to explore the structure and details of large OpenAPI specifications without needing to load the entire file into an LLM's context window. It achieves this
Install MCP OpenAPI Schema Explorer with a single command:
npx mdskills install kadykov/mcp-openapi-schema-explorerThis downloads the skill files into your project and your AI agent picks them up automatically.
MCP OpenAPI Schema Explorer works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.