MCP.so
登录
服务器

OpenAPI to MCP Generator (openapi-mcp-generator)

@harsha-iiiv

A tool that converts OpenAPI specifications to MCP server

概览

What is OpenAPI to MCP Generator?

A CLI tool that generates Model Context Protocol (MCP) servers from OpenAPI 3.0+ specifications. It produces proxy servers that let AI agents and MCP clients interact with existing REST APIs.

How to use OpenAPI to MCP Generator?

Install globally via npm (npm install -g openapi-mcp-generator), then run the CLI with --input (path/URL to an OpenAPI spec) and --output (target directory). Optionally specify transport (--transport=stdio|web|streamable-http), port, and other flags. The generated project can be run with npm start (stdio), npm run start:web, or npm run start:http.

Key features of OpenAPI to MCP Generator

  • Converts OpenAPI 3.0+ specs into MCP-compatible servers
  • Proxies calls to the original REST API with validation and auth
  • Supports API key, Bearer, Basic, and OAuth2 authentication
  • Generates Zod schemas for runtime input validation
  • Outputs a complete, typed TypeScript project with dependencies
  • Offers three transport modes: stdio, SSE (web), and StreamableHTTP
  • Includes a browser-based test client for web transports

Use cases of OpenAPI to MCP Generator

  • Expose an existing REST API as MCP tools for AI assistants
  • Quickly scaffold an MCP server from a well-defined OpenAPI spec
  • Test and debug MCP interactions locally with stdio transport
  • Deploy a multi-client MCP server behind a firewall using HTTP transports

FAQ from OpenAPI to MCP Generator

What runtime is required?

Node.js v20 or later.

How does authentication work?

Credentials are configured via environment variables (e.g., API_KEY_<SCHEME_NAME>, BEARER_TOKEN_<SCHEME_NAME>, or OAUTH_CLIENT_ID_<SCHEME_NAME>). The generated server applies auth automatically when proxying requests.

Can I exclude certain endpoints from the generated server?

Yes. Use the OpenAPI extension x-mcp: true|false at root, path, or operation level. The --default-include flag changes the default inclusion behavior.

Which transport should I choose?

Stdio is best for local development and single-client use. Web (SSE) supports browser-based testing and multiple clients. StreamableHTTP offers full HTTP semantics, load balancing, and session management.

Where is the generated output placed?

In the directory specified by --output. It includes a full Node.js project with package.json, tsconfig.json, source files, and a test client for web transports.

来自「开发工具」的更多内容