Point mcpify at an OpenAPI document — JSON or YAML, Swagger 2.0 or OpenAPI 3.x — and every endpoint becomes a typed MCP tool. Validation, auth, and error handling included. No codegen, no boilerplate, no maintenance.
One job: OpenAPI in, MCP server out. Everything else is opt-in and stays out of the way.
Read the launch story: how a live weather API broke this tool (and made it better)

Every "connect your API to Claude" tutorial ends at "now write a custom MCP server." That's the part mcpify deletes.
--read-only exposes only GET operations — let agents look without letting them touch.
--tag, --include, --exclude scope the surface; --lazy replaces the whole listing with three meta tools. Your context window will notice.
--redact password,token masks secret-looking fields in every response; --fields id,name trims payloads to what the task needs.
Schemas, descriptions, and validation come from the spec at serve time. A 40-endpoint API takes seconds, not a day of wrapping — and 1,200-endpoint specs load too (see below).
mcpify try is an interactive REPL: pick a tool, fill the arguments, see the real response — no agent client required.
mcpify serve speaks stdio to your local agent; serve --http 8080 --http-token $T shares the same tools with your team over MCP Streamable HTTP.
--auth-env API_KEY injects credentials from the environment; OAuth2 client-credentials are fetched, cached, and self-healed on a 401. Secrets never touch your config file or CLI history.
mcpify doctor inspects a spec before you serve it: missing operationIds, untyped parameters, dead servers, agent-unfriendly summaries.
506 tests across 28 suites: protocol end-to-end on both transports, a hostile-spec corpus, live-CI checks against api.weather.gov. Typed end-to-end (mypy strict), CodeQL scanned, Linux + Windows CI. Listed in the official MCP Registry.
# the context price tag — measured on the real GitHub REST spec (1,222 tools) $ mcpify list github-api.json --cost --lazy surface cost: ~289,706 tokens — paid in every tools/list by every agent lazy surface: ~291 tokens — three meta tools (search / schema / call) replace the full list # big specs are the norm here, not the edge case # GitHub REST, 1,222 tools ...... 0.5s Kubernetes Swagger 2.0, 1,190 ...... 0.2s # Stripe YAML, 6 MB, 594 tools .. 2.6s Twilio, 197 ...................... 0.1s
# 1. install $ pipx install mcpify-openapi # 2. preview what your agent will see $ mcpify list ./openapi.json --read-only mcpify: 8 tools from ./openapi.json findpetsbystatus GET /pet/findByStatus getpetbyid GET /pet/{petId} ... # 3. serve — your API is now an MCP server $ mcpify serve ./openapi.json --read-only \ --auth-env API_TOKEN --auth-style bearer ✓ MCP server ready — 8 tools on stdio + no agent at hand? try the tools right in your terminal $ mcpify try ./openapi.json
Standard MCP over stdio. Point any MCP client at the mcpify serve command.
| Client | Config |
|---|---|
| Claude Desktop | "command": "mcpify", "args": ["serve", "./openapi.json"] |
| Claude Code | claude mcp add myapi -- mcpify serve ./openapi.json |
| Cursor | Same JSON as Claude Desktop, in .cursor/mcp.json |
| Anything MCP | Any client that speaks MCP stdio |
| Team-shared (HTTP) | mcpify serve ./openapi.json --http 0.0.0.0:8080 --http-token $TOKEN, then point HTTP-capable clients at the URL |