OpenMCP makes it easy to turn any OpenAPI specification into an MCP server, and to remix many MCP servers into a single server with just the tools you need. It supports stdio and sse transports, and works with all of the major chat clients.
To get started, run this command:
npx -y openmcp install <url or file path to openapi specification> --client <chat client>
For example, to add the ability to query the weather from Cursor, you could run this:
# openmcp will prompt you for a security key since this api requires it - but for this weather api the value can be any string
npx -y openmcp install https://api.weather.gov/openapi.json --client cursor
And this is what that ends up looking like:
Running the install command will create an openmcp.json
file for you, and add the openmcp server to your the mcp
config of your target (cursor, claude, etc). Running install again will update any existing openmcp.json
file, if
present.
The openmcp.json
file describes the servers that should be started, auth configuration for each, and which tools you
want to expose for each server.
Bellow is a fully annotated example that mixes an openapi based server with a stdio server. Running openmcp with this config would result in an mcp server with two tools - a tool to get the weather forecast, and a tool to make queries to a local postgres database.
The install command will handle this for you, but if you'd like to run an openmcp server manually you can do so with this command:
npx -y openmcp run --config <path to openmcp.json config>