OpenAPI → MCP Server
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:
- Docs home: nihal1294.github.io/openapi-to-mcp
Current capabilities
stdioandstreamable-httpgeneration 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, andtest-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:
- source and local workflows: Local Workflows
- contribution guide: Contributing
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)
| File | Size | Uploaded | |
|---|---|---|---|
| openapi_to_mcp_cli-0.9.3.tar.gz | 231.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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