MCP.so
Sign In
Servers

open-api-mcp

@nexpando-com

Generate a MCP server based on OpenAPI specifications

Overview

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.

More from Developer Tools