← 返回目录
O

OpenAPI Proxy MCP Server

社区
将任意 OpenAPI 定义的 REST API 动态暴露为 MCP 工具。
GitHub 源仓库 ↗
★ 153 Stars 分类 · 开发工具 热门 源版本 5a5e4c955047
51FMRS · D
可靠性
8/20
安全与权限
7/20
维护活跃度
10/20
文档质量
13/20
安装易用性
13/20

mcp-openapi-proxy 是一个实用的通用代理,能够将 OpenAPI 定义的 REST API 动态转换为 MCP 工具,简化集成。它支持多种认证方式和过滤选项,提供了丰富的示例和客户端兼容性验证。不过,工具列表是动态的,无法预先枚举;某些客户端对 prompts/resources 的支持有限。总体而言,对于希望快速接入大量 REST API 的用户来说,这是一个强大的工具。

查看 FMRS 评分方法 →

mcp-openapi-proxy 是一个 Python 包,实现了一个模型上下文协议(MCP)服务器,旨在将 OpenAPI 规范描述的 REST API 动态暴露为 MCP 工具,从而无缝地将 OpenAPI 描述的 API 集成到基于 MCP 的工作流中。支持两种模式:低层模式(默认)根据规范为每个有效端点注册工具;FastMCP 模式(简单模式)暴露预定义的工具集(list_functions 和 call_function)。它支持 OpenAPI v3(可能支持 v2),提供端点白名单过滤、多种认证方式(Authorization 头中的 Bearer、自定义 scheme、api-key 头),以及通过 JMESPath 表达式剥离负载中的 token 参数。还支持额外的 MCP 资源(如自定义用例文档)和提示(如 summarize_spec 和 whimsical_blog)。

工具能力

暂未整理工具清单。

安装接入

通过 PyPI 安装:\n\n``bash\nuvx mcp-openapi-proxy\n`\n\n在 MCP 生态系统的 mcpServers 配置中引入,例如:\n\n`json\n{\n "mcpServers": {\n "mcp-openapi-proxy": {\n "command": "uvx",\n "args": ["mcp-openapi-proxy"],\n "env": {\n "OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",\n "API_KEY": "${API_OPENAPI_KEY}"\n }\n }\n }\n}\n``\n\n设置环境变量 OPENAPI_SPEC_URL(必填)和其他可选变量,如 API_KEY、TOOL_WHITELIST 等。

claude_desktop_config.json
{
  "mcpServers": {
    "mcp-openapi-proxy": {
      "command": "uvx",
      "args": [
        "mcp-openapi-proxy"
      ],
      "env": {
        "OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",
        "API_KEY": "${API_OPENAPI_KEY}"
      }
    }
  }
}

选型与风险

适合谁

  • 需要将 OpenAPI 规范描述的现有 REST API 集成到 MCP 生态系统的开发者和团队。
  • 希望快速将 API 转化为 MCP 工具,并利用动态工具生成功能的场景。

不适合谁

  • 没有 OpenAPI 规范的 API(需要手动生成或转换)。
  • 对每个工具需要精细控制的行为(此服务器是通用的,依赖规范)。
  • 需要复杂身份验证流程(如 OAuth 流)的 API,除非通过自定义 header 和 EXTRA_HEADERS 手动处理。

所需权限

  • 需要访问 OpenAPI 规范 URL(HTTP 或本地文件)。
  • 需要访问目标 API 的密钥(API_KEY 或自定义 header)。
  • 可能需要对目标 API 的读写权限,取决于暴露的工具。

风险与副作用

  • 暴露大量工具可能导致 token 消耗或性能问题;建议使用 TOOL_WHITELIST 限制。
  • 认证信息通过环境变量传递,需确保配置安全。
  • 远程规范文件下载可能失败或缓慢,导致服务器启动问题(已有缓存机制)。
  • 某些客户端对 prompts/resources 支持不完整,功能可能受限。

常见排障

  1. 确保 OPENAPI_SPEC_URL 设置为有效的 OpenAPI JSON 或本地文件路径。
  2. 验证规范文档符合 OpenAPI 标准。
  3. 检查 TOOL_WHITELIST 是否与端点路径匹配(注意点分隔路径需要精确匹配)。
  4. 确认 API_KEY 和 API_AUTH_TYPE 设置正确(例如对于 Fly.io 使用 Api-Key)。
  5. 设置 DEBUG=true 可输出详细日志到 stderr。

使用场景

将内部或第三方 REST API(如 Slack、Notion、Asana、NetBox)暴露给 MCP 客户端,使它们能够通过自然语言调用 API。
在 MCP 工作流中动态生成工具,无需编写自定义代码。
通过白名单控制暴露的端点,保证安全性和性能。

支持客户端

Claude Desktop部分支持
Codex完整支持
Gemini部分支持
Qwen部分支持
Kilocode部分支持
opencode完整支持
Vibe部分支持
Letta部分支持