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://petstore3.swagger.io/api/v3/openapi.json \
  --target-api-base-url https://petstore3.swagger.io/api/v3

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

Swagger 2 support

Swagger 2 response-only operations and base URL fields are supported. Convert operations that use Swagger 2 body or form parameters, top-level parameter types, security definitions, or unsupported protocol overrides to OpenAPI 3 before generating. Run openapi-to-mcp doctor to identify the affected operation and field.

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

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.3
File Size Uploaded
openapi_to_mcp_cli-0.9.3.tar.gz 231.5 kB Details

Built distribution (wheel)

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

Total release size: 356.4 kB

Release files / openapi_to_mcp_cli-0.9.3.tar.gz

Download URL openapi_to_mcp_cli-0.9.3.tar.gz
Size 231.5 kB
Tags Source
SHA-256 checksum
How to use checksums
39b994ecec31a51afb833424dbc1d3a2c24b0ccf5a56cbb726e7f3797f6b5158
BLAKE2b-256 checksum
How to use checksums
7e6189b5b863e9c874326a50d4a672a1ebc80826a6a40ca8606a8ecf4b905696
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 21, 2026.

Transparency log

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

Download URL openapi_to_mcp_cli-0.9.3-py3-none-any.whl
Size 124.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8dddb4c1c138fcc5872c9d1f012f1a5030aa776ca4d0676dd07e4d7541c34b69
BLAKE2b-256 checksum
How to use checksums
066edd8c48b7ffbaa9c360f576d19fca43262d5eb3a47f6eacb7ba1bba3ae73c
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 21, 2026.

Transparency log

Release history Release notifications | RSS feed

0.10.0

2 release files

This release

0.9.3 This release

2 release files

0.9.2

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