openapi-mcp-generator

GitHub
555 79 简单 1 次阅读 5天前MITAgent插件
AI 解读 由 AI 自动生成,仅供参考

openapi-mcp-generator 是一款专为开发者设计的命令行工具,旨在将现有的 OpenAPI 规范自动转换为符合模型上下文协议(MCP)的服务器。它主要解决了 AI 智能体难以直接、安全地调用传统 REST API 的痛点,通过生成一个中间代理层,让大语言模型能够无缝理解并操作您的后端服务,无需手动编写繁琐的适配代码。

这款工具特别适合后端工程师、AI 应用开发者以及希望快速集成外部数据源的研究人员使用。其核心技术亮点在于不仅能自动生成类型安全的 TypeScript 项目脚手架,还利用 Zod 库根据 OpenAPI 定义实时校验输入数据,确保交互的可靠性。此外,它灵活支持多种通信传输方式,包括标准的 stdio、基于 Web 的 SSE 以及 StreamableHTTP,并内置了 API 密钥、OAuth2 等多种认证机制。无论是希望将内部系统接入 AI 工作流的企业团队,还是想要快速构建原型的独立开发者,openapi-mcp-generator 都能帮助您高效打通从 API 文档到 AI 能力的“最后一公里”。

使用场景

某电商团队的 AI 助手需要实时调用内部库存与订单系统的 REST API 来回答用户查询,但现有接口仅有标准的 OpenAPI 文档,缺乏直接对接大模型的能力。

没有 openapi-mcp-generator 时

  • 开发人员需手动编写大量胶水代码,将 OpenAPI 定义逐个转换为 MCP Server 的工具函数,耗时且易出错。
  • 每次后端接口字段变更,都需要同步修改 AI 侧的调用逻辑和参数校验规则,维护成本极高。
  • 缺乏统一的运行时验证机制,AI 生成的错误参数往往直到请求失败时才被发现,调试困难。
  • 为了支持不同的通信方式(如 Stdio 或 Web SSE),需要重复构建多套服务架构,资源浪费严重。
  • 新加入的开发者难以快速理解如何安全地让 AI 访问敏感业务接口,权限配置混乱。

使用 openapi-mcp-generator 后

  • 只需一条命令即可基于现有的 OpenAPI 文件自动生成完整的 MCP Server 项目,将集成时间从数天缩短至几分钟。
  • 工具自动根据接口定义生成 Zod 校验 schema,确保 AI 传入的参数在发送前就符合规范,大幅减少运行错误。
  • 当后端 API 更新时,重新运行生成器即可同步最新逻辑,保证了 AI 能力与业务接口的高度一致。
  • 灵活指定 --transport 参数,一键切换 Stdio、SSE 或 StreamableHTTP 模式,无缝适配本地调试或云端部署需求。
  • 内置支持 API Key 和 OAuth2 等多种认证方式,通过环境变量即可安全管理 AI 对敏感数据的访问权限。

openapi-mcp-generator 通过将标准 API 文档瞬间转化为可交互的 AI 桥梁,彻底消除了传统集成中的手工编码负担与维护断层。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具基于 Node.js 运行,需要 Node.js v20 或更高版本。支持通过 npm、yarn 或 pnpm 安装。生成的项目包含完整的 TypeScript 配置和依赖,可根据不同传输模式(stdio、web/SSE、streamable-http)启动服务。认证信息需通过环境变量配置。
python不适用
@modelcontextprotocol/sdk
axios
zod
json-schema-to-zod
hono
uuid
openapi-mcp-generator hero image

快速开始

OpenAPI 至 MCP 生成器 (openapi-mcp-generator)

npm version License: MIT GitHub 仓库

根据 OpenAPI 规范生成 模型上下文协议 (MCP) 服务器。

此 CLI 工具可自动构建与 MCP 兼容的代理服务器,将请求转发至现有的 REST API,从而使 AI 代理及其他 MCP 客户端能够通过您选择的传输方式无缝地与您的 API 进行交互。


✨ 功能

  • 🔧 OpenAPI 3.0 支持:将任何 OpenAPI 3.0 及以上版本的规范转换为与 MCP 兼容的服务器。
  • 🔁 代理行为:在验证请求结构和安全性的同时,将调用代理到您的原始 REST API。
  • 🔐 身份验证支持:通过环境变量支持 API 密钥、Bearer 令牌、Basic 认证和 OAuth2。
  • 🧪 Zod 验证:根据 OpenAPI 定义自动生成 Zod 模式,用于运行时输入验证。
  • ⚙️ 类型化服务器:输出完全类型化的、易于维护的 TypeScript 代码。
  • 🔌 多种传输方式:可通过标准输入输出、Hono 的 SSE 或 StreamableHTTP 进行通信。
  • 🧰 项目脚手架:生成包含 tsconfig.jsonpackage.json 和入口文件的完整 Node.js 项目。
  • 🧪 内置 HTML 测试客户端:可在浏览器中以可视化方式测试 API 交互(适用于基于 Web 的传输)。

🚀 安装

npm install -g openapi-mcp-generator

您也可以使用 yarn global add openapi-mcp-generatorpnpm add -g openapi-mcp-generator


🛠 使用方法

# 生成一个 stdio 传输的 MCP 服务器
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir

# 生成一个带有 SSE 的 Web MCP 服务器
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir --transport=web --port=3000

# 生成一个 StreamableHTTP 传输的 MCP 服务器
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir --transport=streamable-http --port=3000

CLI 选项

选项 别名 描述 默认
--input -i OpenAPI 规范的路径或 URL(YAML 或 JSON) 必填
--output -o 生成的 MCP 项目的输出目录 必填
--server-name -n MCP 服务器的名称(package.json:name OpenAPI 标题或 mcp-api-server
--server-version -v MCP 服务器的版本(package.json:version OpenAPI 版本或 1.0.0
--base-url -b API 请求的基础 URL。如果 OpenAPI 的 servers 缺失或不明确,则必须提供。 尽可能自动检测
--transport -t 传输模式:"stdio"(默认)、"web""streamable-http" "stdio"
--port -p 基于 Web 的传输所使用的端口 3000
--default-include x-mcp 过滤的默认行为。接受 truefalse(不区分大小写)。true 表示默认包含,false 表示默认排除。 true
--force 在不进行确认的情况下覆盖输出目录中的现有文件 false

📦 程序化 API

您也可以在自己的 Node.js 应用程序中以编程方式使用此包:

import { getToolsFromOpenApi } from 'openapi-mcp-generator';

// 从 OpenAPI 规范中提取 MCP 工具定义
const tools = await getToolsFromOpenApi('./petstore.json');

// 带有选项
const filteredTools = await getToolsFromOpenApi('https://example.com/api-spec.json', {
  baseUrl: 'https://api.example.com',
  dereference: true,
  excludeOperationIds: ['deletePet'],
  filterFn: (tool) => tool.method.toLowerCase() === 'get',
});

有关程序化 API 的完整文档,请参阅 PROGRAMMATIC_API.md


🧱 项目结构

生成的项目包括:

<output_directory>/
├── .gitignore
├── package.json
├── tsconfig.json
├── .env.example
├── src/
│   ├── index.ts
│   └── [与传输方式相关的文件]
└── public/          # 用于基于 Web 的传输
    └── index.html   # 测试客户端

核心依赖项:

  • @modelcontextprotocol/sdk - MCP 协议实现
  • axios - 用于 API 请求的 HTTP 客户端
  • zod - 运行时验证
  • json-schema-to-zod - 将 JSON Schema 转换为 Zod
  • 传输特定的依赖项(Hono、uuid 等)

📡 传输模式

Stdio(默认)

通过标准输入输出与 MCP 客户端通信。非常适合本地开发或与 LLM 工具集成。

带有 SSE 的 Web 服务器

启动一个功能齐全的 HTTP 服务器,具备以下特性:

  • 服务器发送事件 (SSE),用于双向消息传递
  • REST 端点,用于客户端到服务器的通信
  • 浏览器内测试客户端 UI
  • 多连接支持
  • 基于轻量级 Hono 框架构建

StreamableHTTP

实现 MCP 的 StreamableHTTP 传输,提供以下功能:

  • 基于 HTTP POST 请求的状态感知 JSON-RPC
  • 使用 HTTP 头部进行会话管理
  • 正确的 HTTP 响应状态码
  • 内置错误处理
  • 与 MCP StreamableHTTPClientTransport 兼容
  • 浏览器内测试客户端 UI
  • 基于轻量级 Hono 框架构建

传输方式对比

特性 标准输入输出 Web (SSE) 可流式 HTTP
协议 基于标准输入输出的 JSON-RPC 基于 SSE 的 JSON-RPC 基于 HTTP 的 JSON-RPC
连接 长连接 长连接 请求/响应
双向通信 是(有状态)
多客户端支持
浏览器兼容性
防火墙友好性
负载均衡 有限
状态码 有限 完整 HTTP 状态码
头信息 有限 完整 HTTP 头
测试客户端

🔐 认证用环境变量

在您的环境中配置认证凭据:

认证类型 变量格式
API 密钥 API_KEY_<SCHEME_NAME>
Bearer 令牌 BEARER_TOKEN_<SCHEME_NAME>
Basic 认证 BASIC_USERNAME_<SCHEME_NAME>, BASIC_PASSWORD_<SCHEME_NAME>
OAuth2 OAUTH_CLIENT_ID_<SCHEME_NAME>, OAUTH_CLIENT_SECRET_<SCHEME_NAME>, OAUTH_SCOPES_<SCHEME_NAME>

🔎 使用 OpenAPI 扩展筛选端点

您可以使用供应商扩展标志 x-mcp 来控制哪些操作作为 MCP 工具公开。此扩展在根、路径和操作级别均受支持。默认情况下,端点会被包含,除非被显式排除。

  • 扩展:x-mcp: true | false
  • 默认值:true(默认包含)
  • 优先级:操作 > 曲线 > 根(第一个非未定义值生效)
  • CLI 选项:--default-include false 可将默认行为更改为默认排除。

示例:

# 可选的根级默认值
x-mcp: true

paths:
  /pets:
    x-mcp: false # 排除 /pets 下的所有操作
    get:
      x-mcp: true # 无论如何都包含此操作

  /users/{id}:
    get:
      # 没有 x-mcp -> 默认包含

这使用了标准的 OpenAPI 扩展(x-… 字段)。有关详细信息,请参阅 OpenAPI 扩展指南

注意:x-mcp 必须是布尔值或字符串 "true"/"false"(不区分大小写)。其他值将被忽略,以遵循更高优先级或默认行为。


▶️ 运行生成的服务器

cd path/to/output/dir
npm install

# 以标准输入输出模式运行
npm start

# 以 Web 服务器模式运行
npm run start:web

# 以可流式 HTTP 模式运行
npm run start:http

测试基于 Web 的服务器

对于 Web 和可流式 HTTP 传输方式,会自动生成一个基于浏览器的测试客户端:

  1. 使用相应的命令启动服务器
  2. 在浏览器中打开 http://localhost:<port>
  3. 使用测试客户端与您的 MCP 服务器交互

⚠️ 系统要求

  • Node.js v20 或更高版本

星标历史

星标历史图表

🤝 贡献

欢迎贡献!

  1. 分支仓库
  2. 创建功能分支:git checkout -b feature/amazing-feature
  3. 运行 npm run format.write 来格式化代码
  4. 提交更改:git commit -m "添加精彩功能"
  5. 推送并打开拉取请求

📌 仓库:github.com/harsha-iiiv/openapi-mcp-generator


📄 许可证

MIT 许可证 — 详情请参阅 LICENSE 文件。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|5天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|6天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

150k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|昨天
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|4天前
插件开发框架