mcpField
O
OpenAPI to MCP server Generator

OpenAPI to MCP server Generator

本地服务
github.com/vincent-pli开发工具177 周前更新

关于 OpenAPI to MCP server Generator

OpenAPI to MCP server Generator 是一个命令行工具,可根据 OpenAPI 规范生成 MCP 服务项目。它为 API 端点生成工具,并创建运行服务所需的文件。

主要功能

  1. 01为每个 API 端点生成工具
  2. 02支持嵌套的 $ref 引用
  3. 03生成服务配置和项目文件
  4. 04通过环境变量配置生成的服务
  5. 05向客户端发送日志通知

适用场景

  1. 01从本地 OpenAPI 规范创建 MCP 服务
  2. 02根据远程 OpenAPI URL 生成服务项目

MCP 相关

生成 MCP 服务代码,将 OpenAPI 端点作为工具开放。生成的服务支持 stdio 传输,并可配置为供 MCP 客户端使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

OpenAPI 到 MCP 服务生成器

一个命令行工具,可根据 OpenAPI 规范生成 Model Context Protocol(MCP)服务代码。此工具可帮助你快速创建 MCP 服务,在大模型(Large Language Models,LLM)与 API 之间充当桥梁。

npm version License: MIT

English | 简体中文

起源

此仓库最初从 openapi-mcp-generator 分叉而来,并添加了一些额外功能:

  • 支持 OpenAPI 规范中的嵌套 $ref
  • 除源代码外,还可生成 MCP 服务配置
  • 允许客户端设置日志级别,并以通知的形式向客户端发送日志消息
  • 发生错误时,向 stderr 发送消息
  • 支持构建 Docker 镜像,并引导客户端在 Docker 容器中运行(2025/5/8 更新)

功能

  • 自动生成工具:将 OpenAPI 规范中的每个 API 端点转换为 MCP 工具
  • 传输选项:仅支持 stdio;对于 sse,可使用 mcp-proxy
  • 完整的项目配置:生成运行 MCP 服务所需的所有文件
  • 轻松配置:为生成的服务提供简单的基于环境变量的配置

安装

# Install globally from npm
npm install -g openapi-mcpserver-generator

# Or with yarn
yarn global add openapi-mcpserver-generator

# Or with pnpm
pnpm add -g openapi-mcpserver-generator

使用方法

根据 OpenAPI 规范生成 MCP 服务:

openapi-mcpserver-generator --openapi path/to/openapi.json --output /Path/to/output
命令行选项
选项别名描述默认值
--openapi-oOpenAPI 规范的路径或 URL(必填)
--output-d生成文件的输出目录./mcp-server
--name-nMCP 服务的名称openapi-mcp-server
--version-vMCP 服务的版本1.0.0
--transport-t传输机制(stdio、websocket、http)stdio
--help-h显示帮助信息
示例

根据本地 OpenAPI 文件生成:

openapi-mcpserver-generator --openapi ./specs/petstore.json --output ./petstore-mcp

根据远程 OpenAPI URL 生成:

openapi-mcpserver-generator --openapi https://petstore3.swagger.io/api/v3/openapi.json --output ./petstore-mcp

生成的文件

此工具会在输出目录中生成以下文件:

  • server.js - MCP 服务的主要实现
  • package.json - 依赖项和脚本
  • README.md - 生成的服务的文档
  • .env.example - 环境变量模板
  • types.d.ts - API 的 TypeScript 类型定义
  • tsconfig.json - TypeScript 配置
  • Dockerfile - Dockerfile
  • .dockerignore - Docker 忽略文件

使用生成的服务

生成 MCP 服务后:

  1. 进入生成的目录:

    cd my-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 创建环境文件:

    cp .env.example .env
    
  4. 编辑 .env,设置 API 基础 URL 和任何必需的标头:

    API_BASE_URL=https://api.example.com
    API_HEADERS=Authorization:Bearer your-token-here
    
  5. 启动服务:

    npm start
    

要求

  • Node.js 16.x 或更高版本
  • npm 7.x 或更高版本

端到端示例

建议使用 mcpclihost 作为 MCP 宿主进行尝试。 此工具(mcpclihost)支持 Azure Openai 和 deepseek

你可以像这样添加生成的 MCP 服务配置:

{
  "mcpServers": {
    "petstore-mcp": {
      "command": "/usr/local/bin/node",
      "args": [
        "/Users/lipeng/workspaces/github.com/vincent-pli/openapi-mcpserver-generator/petstore-mcp/server.js",
        "run"
      ]
    }
  }
}

将其添加到 ~/.mcp.json(mcpclihost 的默认 MCP 服务配置路径)中,然后尝试使用

Openapi 中的安全方案

Openapi 3.0 支持4 种安全类型:

  • apiKey: 例如:
        "securitySchemes": {
            "my_api_key": {
                "type": "apiKey",
                "name": "api_key",
                "in": "header"
            }
        }

需要在 .env 中定义一个名为大写形式 MY_API_KEY_{securitySchemes.my_api_key.name} 的环境参数,在此例中应为:MY_API_KEY_API_KEY

  • http:
        "securitySchemes": {
            basicAuth: {
               type: "http",
               scheme: "basic"
            }
        }

它会尝试在 .env 中查找 BASICAUTH_USERNAME 和 BASICAUTH_PASSWORD

        "securitySchemes": {
            basicAuth: {
               type: "http",
               scheme: "bearer"
            }
        }

它会尝试在 .env 中查找 BASICAUTH_BEARERTOKEN

  • oauth2: 由于 oauth2 较为复杂,无法自动处理,我们建议手动获取 access token,然后按如下方式将其设置到 .env 中:
API_HEADERS=Authorization:Bearer your-access-token-here
  • openIdConnect 暂不支持

许可证

Apache 2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。