Turn any OpenAPI REST API into an MCP server so AI agents can call it โ zero dependencies
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
English | Tรผrkรงe
Turn any OpenAPI REST API into an MCP server โ so Claude Code, Cursor, and every other MCP client can call your API directly. One command, zero runtime dependencies:
Focused, production-ready, CLI-first: one job (OpenAPI โ MCP). Everything else โ governance, credentials, token economics, operations โ is opt-in and stays out of the way until you need it:
--lazy), secret masking (--redact), blast-radius limits (--read-only, per-token RBAC)From spec to server
parameters + requestBody, internal $refs are resolvedmcpify diff old.yaml new.yaml reports added/removed/changed operations with per-change breaking verdicts and a migration guide; --fail-on-breaking is a CI gatemcpify doctor โ tells you if your spec is agent-friendly before you ship: missing operationIds, missing summaries, instruction-like tool text, overlong descriptions; --probe dials the API once โ with your real credential (--auth-env) when you want auth proven end-to-end, and --fail-on-http-error for a strict CI gatemcpify try / mcpify mock / mcpify output-server โ call the tools without an agent client, serve a schema-shaped fake API for CI, or bake a serve command into a shareable scriptCredentials & policy
--write-oauth2-* gives non-GET calls a second client identity so reads and writes authenticate as different clients--write-auth-env splits the static credential (reads on your read key, writes on a dedicated key), --read-only filters the surface, --deny/--allow hides mutating GETs, per-token RBAC gives each bearer token its own allow/deny scopes--redact password,token โ values whose key names a secret are masked with *** at every level of every response (error bodies included, case-insensitive); the model never sees them--plugin loads your Python module for auth/request/result hooksToken economics
mcpify list --cost prices the surface (~4 chars/token): what every agent pays in EVERY tools/list; multi-API configs get per-API and total prices in one run--fields id,event โ response projection that selects at every level: selected keys keep their value, non-selected containers stay transparent, emptied containers drop. Live weather.gov: 350 alerts in full inside the budget that previously truncated at ~189"truncated": true marker, never mid-document--lazy search-then-call โ cut api.weather.gov's listing by 95.5%; search results now show what pulling each full schema would cost, so the agent pulls only what it needs[tool-text] overrides โ doctor flags model-facing instruction-like descriptions; you replace them per tool in configOperations
serve --http 8080 speaks MCP Streamable HTTP (SSE responses for clients that ask, JSON otherwise) so a whole team shares one server, with optional bearer tokens[apis.NAME] sections in .mcpify.toml: per-API auth, caching, retries, filters and rate limits; collision-safe renames; aggregated health; mcpify status probes every API in parallel--wait-on-429 honors Retry-After, --rate-limit RPS caps requests/second (per upstream in multi-API, retries included)--metrics (call counters, latencies, cache, health โ plus projection/redaction counters when those run), --otel spans, --reload hot swap, mcpify ui local dashboardpip install 'mcpify[yaml]'No explicit style needed in the common case โ the spec's security
declarations pick bearer/basic/header/query (with the right name) for
you. For HTTP Basic, the env variable holds username:password:
--auth-style basic --auth-env CREDS.
| Flag | Meaning |
|---|---|
--auth-env VAR | environment variable holding the credential |
--auth-style bearer|basic|header|query | how it is sent (default: auto-detected from the spec) |
--auth-name NAME | header / query name for non-bearer styles (e.g. X-API-Key) |
For APIs behind an OAuth2 identity provider (RFC 6749 ยง4.4). Credentials
live in the environment; the access token is fetched, cached until its
expires_in, refreshed transparently, and re-fetched automatically once
if the API answers 401 mid-flight:
Split write identities too: --write-oauth2-token-url (+ client/scope
flags) runs a second client-credentials flow for non-GET calls โ reads
authenticate as the read client, writes as the write client, each with
its own token cache and the same 401 self-heal. Mutually exclusive with
--write-auth-env (pick one credential kind for writes).
Put several OpenAPI documents in one config and serve them as a single tool surface โ no gateway, no per-API process:
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcpify)<a href="https://allmcps.com/mcp/mcpify"><img src="https://allmcps.com/api/badge/mcpify?style=directory" alt="Mcpify on AllMCPs" /></a>