Token导航 LogoToken导航TokenDH.com
Openapi MCP Generator logo
开发工具未说明官方级别未说明来源级核验

Openapi MCP Generator

MCP Server

A tool that converts OpenAPI specifications to MCP server

工具数

0

提示词数

0

GitHub Stars

585

资源数

0
类型安全TypeScriptAPI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

harsha-iiiv

提供方

harsha-iiiv

最后核验

2026/5/18 03:27

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

OpenAPI到MCP生成器(OpenAPI-MCP生成器)

](https://www.npmjs.com/package/openapi-mcp-generator) ![License: MIT](https://opensource.org/licenses/MIT) ](https://github.com/harsha-iiiv/openapi-mcp-generator)

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

此CLI工具自动生成与MCP兼容的服务器,这些服务器将请求代理到现有的REST API,使AI代理和其他MCP客户端能够使用您选择的传输方法与您的API无缝交互。

______________________________________________________________________

✨ 特性

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

______________________________________________________________________

🚀 安装

npm install -g openapi-mcp-generator
您还可以使用 yarn global add openapi-mcp-generatorpnpm add -g openapi-mcp-generator

______________________________________________________________________

🛠 用法

# Generate an MCP server (stdio)
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir

# Generate an MCP web server with SSE
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir --transport=web --port=3000

# Generate an MCP StreamableHTTP server
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir --transport=streamable-http --port=3000

CLI选项

选项别名描述默认值
--input-iOpenAPI规范的路径或URL(YAML或JSON)必需
--output-o输出生成的MCP项目的目录必需
--server-name-nMCP服务器的名称(package.json:name)OpenAPI标题或 mcp-api-server
--server-version-vMCP服务器的版本(package.json:version)OpenAPI版本或 1.0.0
--base-url-bAPI请求的基本URL。如果OpenAPI需要 servers 缺失或含糊不清。如果可能,自动检测
--transport-t运输方式: "stdio" (默认), "web",或 "streamable-http""stdio"
--port-p基于网络的传输端口3000
--default-includex-mcp筛选的默认行为。接受 truefalse 不区分大小写 true =默认情况下包含, false =默认情况下排除。true
--force未经确认覆盖输出目录中的现有文件false

📦 程序化API

您还可以在Node.js应用程序中以编程方式使用此包:

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

// Extract MCP tool definitions from an OpenAPI spec
const tools = await getToolsFromOpenApi('./petstore.json');

// With options
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的完整文档,请参阅 编程\_ API.md.

______________________________________________________________________

🧱 项目结构

生成的项目包括:

/
├── .gitignore
├── package.json
├── tsconfig.json
├── .env.example
├── src/
│   ├── index.ts
│   └── [transport-specific-files]
└── public/          # For web-based transports
    └── index.html   # Test client

核心依赖关系:

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

______________________________________________________________________

📡 运输方式

标准(默认)

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

带SSE的Web服务器

启动一个功能齐全的HTTP服务器,包括:

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

流式HTTP

实现MCP StreamableHTTP传输,该传输提供:

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

运输比较

功能stdioweb(SSE)可流式传输http
协议stdio上的JSON-RPCSSE上的JSON-RTCHTTP上的JSON-RSC
连接持久持久请求/响应
双向有(有状态)
多个客户端
浏览器兼容
防火墙友好
负载平衡有限
状态代码有限完整HTTP代码
标头有限完整HTTP标头
测试客户端

______________________________________________________________________

🔐 身份验证的环境变量

在您的环境中配置身份验证凭据:

身份验证类型变量格式
API密钥API_KEY_
持票人BEARER_TOKEN_
基本身份验证BASIC_USERNAME_, BASIC_PASSWORD_
OAuth2OAUTH_CLIENT_ID_, OAUTH_CLIENT_SECRET_, OAUTH_SCOPES_

______________________________________________________________________

🔎 使用OpenAPI扩展过滤端点

您可以使用供应商扩展标志控制哪些操作作为MCP工具公开 x-mcp。此扩展在根、路径和操作级别都受支持。默认情况下,除非明确排除,否则将包括端点。

  • 扩展名: x-mcp: true | false
  • 违约: true (默认包含)
  • 优先级:操作>路径>根(第一个未定义的获胜)
  • CLI选项: --default-include false 将默认值更改为默认排除

示例:

# Optional root-level default
x-mcp: true

paths:
  /pets:
    x-mcp: false # exclude all ops under /pets
    get:
      x-mcp: true # include this operation anyway

  /users/{id}:
    get:
      # no x-mcp -> included by default

这使用了标准的OpenAPI扩展(x-…字段)。请参阅 OpenAPI扩展指南 了解详情。

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

______________________________________________________________________

▶️ 运行生成的服务器

cd path/to/output/dir
npm install

# Run in stdio mode
npm start

# Run in web server mode
npm run start:web

# Run in StreamableHTTP mode
npm run start:http

测试基于Web的服务器

对于web和StreamableHTTP传输,会自动生成基于浏览器的测试客户端:

  1. 使用适当的命令启动服务器
  2. 打开浏览器 `http://localhost:

`

  1. 使用测试客户端与MCP服务器交互

______________________________________________________________________

⚠️ 需求

  • Node.js v20或更高版本

______________________________________________________________________

明星历史

🤝 贡献

欢迎投稿!

  1. 分叉回购
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. npm run format.write 格式化代码
  4. 提交您的更改: git commit -m "Add amazing feature"
  5. 推送并打开PR

📌 存储库:

______________________________________________________________________

📄 许可证

MIT许可证——见 许可证 了解全部细节。

目录标签

目录标签

类型安全TypeScriptAPI代理developer-toolsOpenAPI转换本地部署MCP协议运行时验证

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP