Show HN: Mcpify – Turn any REST API into an MCP server in one command Mcpify, a new open-source CLI tool, lets developers turn any REST API with an OpenAPI spec into an MCP server with a single command, eliminating the need for hand-written tool wrappers. The tool automatically generates MCP tools from the spec, supports auth headers, and works with AI agents like Claude, Cursor, and Windsurf. It is available via pipx and is MIT-licensed. Turn any REST API into an MCP server in one command. Point mcpify at an OpenAPI spec and every endpoint becomes a tool your AI agent Claude, Cursor, Windsurf, … can call — no glue code, no per-endpoint wrappers. mcpify https://api.example.com/openapi.json That's it. Every operation in the spec is now a live MCP tool. MCP https://modelcontextprotocol.io is how AI agents call real tools. But wiring an existing API into MCP means hand-writing a tool wrapper for every endpoint — tedious and stale the moment the API changes. Almost every API already publishes an OpenAPI spec . mcpify reads that spec and generates the whole MCP server at runtime, so: Zero per-endpoint code — N endpoints → N tools, automatically. Always in sync — regenerate from the spec; no wrappers to maintain. Auth-aware — pass an API key / bearer token once, applied to every call. pipx install mcpify-cli or: uvx mcpify-cli ... Preview the tools a spec produces no server : mcpify --list examples/petstore-mini.yaml Run it as an MCP server stdio : mcpify https://petstore3.swagger.io/api/v3/openapi.json mcpify ./openapi.yaml --base-url https://staging.internal.api mcpify ./openapi.yaml --auth "Authorization: Bearer $TOKEN" or set MCPIFY AUTH Add to your MCP client config Claude Desktop / Claude Code mcp.json : { "mcpServers": { "petstore": { "command": "mcpify", "args": "https://petstore3.swagger.io/api/v3/openapi.json" } } } Restart the client and ask: "list the available pets" — Claude calls the API directly. - Load the OpenAPI 3.x document URL or file, JSON or YAML . - Walk every path/method into an Operation with a generated JSON input schema. - Serve them over MCP; each tool call is mapped to a live HTTP request path, query, header params and JSON bodies all handled and the response is returned to the agent. - OpenAPI 3.x, JSON or YAML, from a URL or local file GET / POST / PUT / PATCH / DELETE - Path, query, and header parameters; JSON request bodies - A single global auth header API key or bearer token - Per-operation filtering --only , --tag to expose a subset of a large API $ref resolution for fully-expanded body schemas- Swagger 2.0 specs - SSE / HTTP transport in addition to stdio PRs welcome. MIT