The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Agentify listing page.
Turn any OpenAPI / Swagger spec into an agent-ready MCP server.
Listed on the official MCP Registry (
io.github.sani-savaliya/agentify) and Smithery.
Point it at a spec — a URL, a file, OpenAPI 3.x or Swagger 2.0 — and every operation becomes a tool an AI agent can call. No code generation, no per-API boilerplate, no hosting. One command.
"Today, agents have to operate software designed for humans. The interfaces of the future will be built for agents — APIs, MCPs, CLIs — with agents as first-class citizens." — YC RFS: Software for Agents
There are tens of thousands of APIs that already describe themselves with an OpenAPI
document. agentify makes every one of them agent-native, instantly, without anyone
hand-writing an integration.
Add it to your client's MCP config. The same command/args shape works in
Claude Desktop, Claude Code (claude mcp add), Cursor
(.cursor/mcp.json), Windsurf, Cline, and anything else that speaks MCP:
The agent now has one tool per API operation. Calling a tool builds the HTTP request (path params, query string, headers, JSON body) and returns the live response.
Pointing at GitHub (1000+ operations) or Stripe (400+) would flood your agent with hundreds of tools and wreck its tool-selection accuracy. Filter down to what matters — by tag, HTTP method, or name glob — and cap the total:
--read-only (GET/HEAD/OPTIONS) is also a simple safety rail — expose a giant API to
an agent without exposing anything that can mutate state.
Provide credentials via environment variables — agentify reads the spec's declared
security scheme to find the right header name when it can:
| Variable | Effect |
|---|---|
AGENTIFY_BEARER_TOKEN | Authorization: Bearer <token> |
AGENTIFY_BASIC_USER / AGENTIFY_BASIC_PASS | HTTP basic auth |
AGENTIFY_API_KEY | API key (sent as a header by default) |
AGENTIFY_API_KEY_HEADER | Override the api-key header name |
AGENTIFY_API_KEY_QUERY | Send the api key as a query param instead |
You can also inject raw headers from the CLI: --header "X-Org-Id: 42" (repeatable).
A small, pure pipeline — each stage is independently unit-tested:
Only the HTTP execution and MCP transport touch the outside world; everything else is deterministic and tested.
multipart/form bodies are passed
through best-effort.cookie parameters and OAuth2 flows are not yet handled (use --header for now).MIT