Skip to main content

mcpify

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.


Why

MCP 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.

Install

pipx install mcpify-cli      # or: uvx mcpify-cli ...

Use

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

Plug it into Claude

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.

How it works

  1. Load the OpenAPI 3.x document (URL or file, JSON or YAML).
  2. Walk every path/method into an Operation with a generated JSON input schema.
  3. 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.

Supported

  • 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)

Roadmap

  • 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.

License

MIT

Metadata

Release files for mcpify-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcpify-cli 0.1.0
File Size Uploaded Provenance
mcpify_cli-0.1.0.tar.gz 6.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcpify-cli 0.1.0
File Interpreter ABI Platform
mcpify_cli-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.9 kB

Release files / mcpify_cli-0.1.0.tar.gz

Download URL mcpify_cli-0.1.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8e4179477d00619831442f7e182d8b701bd8a910d0eb78562cc40052a5788351
BLAKE2b-256 checksum
How to use checksums
16fa09697d23a2a4b88d0b9a5d5794bd54e578b94c418d609e3e8a71ddd2b991
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mcpify_cli-0.1.0-py3-none-any.whl

Download URL mcpify_cli-0.1.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63f9a5b39453a3d6a91773bef9f2713a7bc83ca4af01089487f8efdcf89d7924
BLAKE2b-256 checksum
How to use checksums
dab2df58104afe3fad21ff4f66d54c99dec7164eee3d4a043b216e00c33a08fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for mcpify-cli 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page