OpenMCP
OpenMCP turns any OpenAPI specification into an MCP server and lets you choose which tools the agent sees
- 303 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The agent gets access to a third-party API's methods, including write ones if the spec has them
- API keys end up in openmcp.json or environment variables
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/openmcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent gets access to a third-party API's methods, including write ones if the spec has them
- API keys end up in openmcp.json or environment variables
This is third-party code. Review the repository files before installing.
What it does
OpenMCP takes an OpenAPI specification from a URL or a local file and starts an MCP server for it. Each operation in the spec becomes an agent tool, named after its operationId. The `npx -y openmcp install <url or path> --client <client>` command creates an openmcp.json file and registers the server in the chosen client's MCP configuration, for example Cursor. Running it again updates the existing file. In openmcp.json you set headers, query parameters and an allowlist of tools for each server. One file can combine several sources: servers built from OpenAPI and ordinary stdio servers such as postgres. They merge into a single MCP server with only the tools you need.
Who it is for. For developers who want to give an agent access to a REST API that has an OpenAPI description without hand-writing an MCP server.
Good fit when
- A service publishes an openapi.json but has no ready MCP server, and the agent needs a few of its methods
- A large spec would produce hundreds of tools and you want to keep two or three by operationId
- You want one server that combines a REST API with a database stdio server, keeping only the safe query tool for the database
- The API key should live in an environment variable and be injected into a header through a template
Not a fit when
- You need an MCP server with curated descriptions and composite workflows: OpenMCP exposes the spec's operations as they are
- The API has no OpenAPI description: there is nothing to build the server from without a spec
- You need ongoing support: the repository was last updated in August 2025
Example request
Connect the weather API at https://api.weather.gov/openapi.json as an MCP server in Cursor and keep only the zone forecast toolMCP
- Transport
- stdio, sse
- Authentication
- not required
Limitations
- Requires Node.js: every command runs through npx.
- The agent gets only what the spec describes, and tool description quality depends on its author.
- Only the stdio and sse transports.
- For APIs with authorization you must set the key or header in openmcp.json yourself.
- OpenMCP does not judge how dangerous a method is: delete or payment operations from the spec reach the agent until you remove them from the allowlist.
- OpenMCP does not track spec changes, so recheck the file after the API is updated.
How to disable. Remove the openmcp entry from the client's MCP configuration and the openmcp.json file from the project. No further processes start after that.
FAQ
How do I turn an OpenAPI file into an MCP server?
Run `npx -y openmcp install <url or path> --client cursor`. The command creates openmcp.json and adds the server to the client's configuration. To start the server by hand use `npx -y openmcp run --config <path to openmcp.json>`.
How do I leave the agent only some API methods?
In openmcp.json each server has a tools array of operationIds. An empty array exposes every operation. The same list works for stdio servers: for postgres you can allow only the query tool.
How do I pass an API key without writing it into the config?
Define variables in the configs section and reference them in headers with a {{NAME}} template. If a value is not set, OpenMCP tries to read an environment variable with the same name.
Does OpenMCP pick up changes in the spec?
Not on its own. After the API changes, run the install command again: it updates the existing openmcp.json. Then check whether new dangerous methods appeared in the list.
Which clients does OpenMCP work with?
You pick the client with the `--client` flag, and there are examples for Cursor and Claude. The server runs over stdio and sse.
Discussion
No questions or reviews yet.
Related
MCP serversA CLI that builds a ready-made TypeScript MCP server from an OpenAPI 3 spec, with tools, validation and auth generated for you
A gateway that turns any API with an OpenAPI V3 spec into an MCP server, without touching the original API
A plugin with skills for building TypeScript MCP servers and MCP apps: the agent scaffolds, edits, debugs and verifies them
An MCP server that lets an agent read files, search code and run commands in a workspace
Ref's MCP server: documentation search for APIs and libraries that hands the agent only the relevant parts of pages
1MCP Agent
1mcp-agent
One MCP server instead of many: the agent merges connected servers and gives them to a client through a single address. A beta version
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| OpenMCP (this entry) | no | not required | 303 | |
| X API MCP (xmcp) | yes | OAuth | 865 | a ready server for one API, X, OpenMCP builds from any specification |
| Weeek MCP server | no | API key | 0 | a ready MCP server for one service built from its OpenAPI, with no general generator |
README in short
A weather API example walks from the install command to a working server in Cursor. A large openmcp.json example covers auth, headers and tool lists.