概要
What is open-api-mcp?
open-api-mcp is a command-line tool that generates an MCP (Model Context Protocol) server from OpenAPI specifications. It simplifies creating API clients by leveraging OpenAPI schemas and generating strongly-typed clients using Zod.
How to use open-api-mcp?
Clone the repository, install dependencies with bun install, prepare an OpenAPI specification (JSON or YAML), copy .env.template to .env, then start the server with bun dev or ./cli.sh open-api.json. For Docker, add the spec to a specs directory and run docker-compose up with appropriate environment variables.
Key features of open-api-mcp
- Generate MCP servers from OpenAPI specifications
- Automatically create Zod-based API clients for type-safe interactions
- Supports both JSON and YAML OpenAPI specification formats
- Easily configurable via environment variables or Docker Compose
Use cases of open-api-mcp
- Quickly create an MCP server for any REST API with an OpenAPI spec
- Generate type-safe API clients for integration in AI applications
- Deploy API gateway MCP servers in containerized environments
FAQ from open-api-mcp
How do I customize authentication?
Override the get-axios.ts file with your own authentication logic. By default, it uses a Bearer token from the API_KEY environment variable. With Docker, mount a custom version of get-axios.ts as a volume.
What transport types are supported?
Supported transport types are httpStream, sse, and stdio, configurable via the MCP_TRANSPORT_TYPE environment variable.
How do I run open-api-mcp with Docker?
Create a specs directory with your OpenAPI file, define a docker-compose.yml with the nexpando/open-api-mcp image, mount the specs directory, and set environment variables (OPEN_API_FILE, API_URL, optionally API_KEY, MCP_NAME, MCP_VERSION, MCP_TRANSPORT_TYPE). Then run docker-compose up.
What are the runtime dependencies?
The project uses the Bun runtime (install with bun install). A Docker image is also available for containerized deployment.
Where should I place the OpenAPI specification file?
Place it in the specs directory (e.g., specs/open-api.json or specs/open-api.yml) and set the OPEN_API_FILE environment variable to point to it.