SuperAPI AI 工具集

openapi-to-mcp

openapi-to-mcp 是一个基于 MCP(Model Context Protocol)的服务器工具,能够将 OpenAPI 规范中定义的 API 端点自动转换为强类型的 MCP 工具,让 AI Agent 或 MCP 客户端可以直接调用 API。它支持 OpenAPI 2.0 和 3.0 规范,参数与请求体均使用 JSON Schema 描述,响应原样返回。项目提供 NuGet 工具和可执行文件两种安装方式,支持 STDIO 传输、Bearer Token 认证及多种 OAuth 流程,并允许通过自定义扩展定制工具名称、描述、启用状态和初始化指令。

访问官网

工具介绍

用途

openapi-to-mcp 是一个 MCP 服务器,用于将你的 API 通过 OpenAPI 规范暴露为强类型的 MCP 工具,使 AI Agent 或兼容 MCP 的客户端能够直接调用 API 端点。

主要能力

  • 将 OpenAPI 规范中的操作(端点)翻译为 MCP 工具
  • 暴露所有路径参数、查询参数及 JSON 请求体参数(基于其 JSON Schema)
  • 响应原样返回
  • 工具名称默认依次通过 operation.x-mcp-tool-name 扩展、operation.operationId、{httpMethod}_{escaped_path} 计算得出,也可通过 --tool-naming-strategy 选项定义命名策略。注意:名称不匹配 ^[a-zA-Z0-9_-]{1,64}$ 的工具会被丢弃
  • 工具描述按 operation.x-mcp-tool-description、operation.description、path.description 的顺序提取
  • 支持 Bearer Token 认证(--bearer-token 选项),会以 Authorization: Bearer {token} 头提供给所有调用,同时在获取远程规范时也使用
  • 支持 ClientCredentials、RefreshToken、Password 等 OAuth 流程,若 OpenAPI 规范中声明了对应 securitySchemes,则使用其 tokenUrl

OpenAPI 支持

  • 目前支持 OpenAPI 2.0 和 3.0,不支持 3.1(除非 microsoft/OpenAPI.NET 支持)
  • 规范可以是 JSON 或 YAML,本地文件或远程 URL
  • 仅支持本地 $refs

自定义扩展

  • info.x-mcp-instructions(字符串):MCP 服务器在 initialize 握手期间暴露的文本指令
  • operation.x-mcp-tool-name(字符串):自定义工具名称
  • operation.x-mcp-tool-description(字符串):自定义工具描述
  • operation.x-mcp-tool-enabled(布尔值):启用/禁用特定操作(默认启用)

使用方式

  • 安装:作为 NuGet 工具使用 openapi-to-mcp,或从 releases 下载可执行文件
  • 仅支持 STDIO 传输
  • 调用工具时,MCP 服务器会调用底层端点。确定调用主机的方式:--host-override 选项、规范中第一个服务器的 URL(如果是绝对 URL)、远程 OpenAPI 提供者的主机;否则抛出错误
  • 例如运行 openapi-to-mcp https://petstore3.swagger.io/api/v3/openapi.json:该规范定义了一个服务器,但其 URL 是相对路径(/api/v3),因此使用规范自身 URL 的主机 https://petstore3.swagger.io,并附加服务器的相对路径

适用场景

  • 需要让 AI Agent 通过 MCP 协议调用已有 API 的开发者
  • 希望将 API 快速暴露为强类型工具供 AI 使用的场景

限制

  • 不支持 OpenAPI 3.1
  • 仅支持本地 $refs
  • 仅支持 STDIO 传输
  • 工具名称需符合 ^[a-zA-Z0-9_-]{1,64}$,否则被丢弃