Point mcpify at an OpenAPI 3.x spec and every endpoint becomes a fully typed MCP tool — parameter validation, error handling, and auth included. No boilerplate, no codegen, no maintenance.

Every "connect your API to Claude" tutorial ends at "now write a custom MCP server." That's the part mcpify deletes.
Schemas, descriptions, and validation are generated from the spec at serve time. A 40-endpoint API takes seconds, not a day of wrapping.
--auth-env API_KEY --auth-style bearer injects credentials from the environment. Secrets never touch your config file or CLI history.
--read-only exposes only GET operations — let agents look without letting them touch. Safe by default.
--tag, --include, --exclude filters expose 5 relevant tools instead of 200. Your context window will notice.
mcpify doctor inspects a spec before you serve it: missing operationIds, dead servers, agent-unfriendly summaries.
60 tests, typed end-to-end with mypy strict, CI on every push. It speaks standard MCP stdio — if your client speaks MCP, it works.
# 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
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 |