Skip to main content

OpenAPI to MCP logo

OpenAPI → MCP Server

CI PyPI version License

Standalone CLI for diagnosing, diffing, generating, running, and testing Node.js/TypeScript MCP servers from OpenAPI specifications.

Install

Install openapi-to-mcp-cli from PyPI. Requires Python 3.14+; building and running generated servers also requires Node.js 22+ and npm.

uv tool install openapi-to-mcp-cli
openapi-to-mcp --help

The installed command remains openapi-to-mcp. For one-off use:

uvx --from openapi-to-mcp-cli openapi-to-mcp --help

See the installation guide for upgrades, tagged Git installs, and release artifacts.

Quickstart

Generate a reusable project:

openapi-to-mcp generate \
  --openapi-json ./openapi.yaml \
  --output-dir ./generated-server

Run directly from a spec:

openapi-to-mcp run \
  --openapi-json https://petstore.swagger.io/v2/swagger.json \
  --target-api-base-url https://petstore.swagger.io/v2

Smoke-test a running server:

openapi-to-mcp test-server \
  --transport streamable-http \
  --host 127.0.0.1 \
  --port 8080 \
  --mcp-endpoint /mcp \
  --list-tools

Documentation

Public product documentation lives on GitHub Pages:

Current capabilities

  • stdio and streamable-http generation targets
  • spec-readiness diagnostics with doctor
  • MCP-surface comparison with diff
  • repeatable generation policy with mcpgen.yaml
  • regeneration-safe custom tools via src/custom/tools.ts
  • richer generated tool descriptions and input examples from spec metadata
  • optional grouped tool names with first-tag prefixes
  • optional request-scoped tool allowlists for streamable-http callers
  • optional redacted audit logs for request and response payloads
  • optional retry budgets and circuit breakers for safe upstream calls
  • reviewable performance presets built on top of the explicit runtime controls
  • strict mode by default with generation_report.json
  • generated auth env mapping for apiKey, bearer, OAuth2, and OpenID Connect
  • generated runtime controls for concurrency, queueing, timeout, bounded caching, rate limiting, retries, and circuit breakers
  • generated-server E2E coverage against a local mock API
  • CLI E2E coverage for generate, run, and test-server
  • version-aware PyPI and GitHub Releases automation on master

Development

For repository-local workflows, use the repo docs directly:

License

Apache License 2.0. See LICENSE.

Metadata

Release files for openapi-to-mcp-cli 0.9.2

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

Source distribution (sdist)

Source distribution for openapi-to-mcp-cli 0.9.2
File Size Uploaded
openapi_to_mcp_cli-0.9.2.tar.gz 219.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openapi-to-mcp-cli 0.9.2
File Interpreter ABI Platform
openapi_to_mcp_cli-0.9.2-py3-none-any.whl Python 3 none any Details

Total release size: 338.8 kB

Release files / openapi_to_mcp_cli-0.9.2.tar.gz

Download URL openapi_to_mcp_cli-0.9.2.tar.gz
Size 219.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2eec2102143633c00e2bed9ed1b0733a64afd713333436272c7e9b255060f363
BLAKE2b-256 checksum
How to use checksums
839a170f034721bc02506a952ce9a1e7ea32608b5ed0d6c1275794e91153fba1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release files / openapi_to_mcp_cli-0.9.2-py3-none-any.whl

Download URL openapi_to_mcp_cli-0.9.2-py3-none-any.whl
Size 119.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ed53f6a66dac80481658b8b01cb507bd2b2c235625b0d48d37a0b3f52dab75e
BLAKE2b-256 checksum
How to use checksums
c01e31658044b440cdc26782ac01f663aaffa9a3c151cb01174906377eb1c859
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release history Release notifications | RSS feed

0.10.0

2 release files

0.9.3

2 release files

This release

0.9.2 This release

2 release files

0.9.1

2 release files

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