← 返回目录
O

OpenAPI Proxy MCP Server

社区
将任意 OpenAPI 定义的 REST API 动态暴露为 MCP 工具。
分类
开发工具 第 243 / 438
Stars
★ 157 热门
传输方式
stdio(本地进程) · Streamable HTTP
运行环境
Python
凭据
可选 API Key
许可证
MIT
最近提交
51FMRS · D

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

最强项 · 安装易用性 13/20 最弱项 · 安全与权限 7/20

可靠性
8/20
安全与权限
7/20
维护活跃度
10/20
文档质量
13/20
安装易用性
13/20
查看各项评分依据
可靠性 8/20
仅提供 README 证据,未提供源代码、CI 或已提交测试。README 声称已在多个客户端实测并修复多个 bug,快乐路径看似可行,但无法静态确认。文档中的预期 JSON-RPC 响应显示复制的 sqlite serverInfo,进一步降低可信度。因缺少可执行证据扣分,按静态校准上限低于 12。
安全与权限 7/20
该代理会把用户提供的 API 密钥和额外请求头发送到 OpenAPI 规范指定的任意主机,可暴露破坏性动词(DELETE/POST/PUT),并支持关闭 TLS 校验(IGNORE_SSL_TOOLS)。没有确认机制、主机白名单、密钥脱敏或安全策略证据。风险可见但权限界定/确认机制不完整;未触发红线(示例无真实密钥,未见窃取/外传代码)。
维护活跃度 10/20
仓库有 MIT 许可、未归档、5 个未关闭 issue,README 提到多个版本和问题修复,表明项目活跃。但提供的材料中无法核实提交历史、发布标签、依赖更新或安全响应渠道,且 README 声明本身不可信。按“活跃但治理/版本证据不足”评分。
文档质量 13/20
README 非常全面:安装、环境变量参考、模式说明、大量实际示例、客户端矩阵、故障排查和限制说明。扣分原因:预期 initialize 响应中显示 sqlite server;GetZep 认证说明与其配置示例矛盾;VirusTotal 示例用 EXTRA_HEADERS,而测试命令用 API_AUTH_HEADER/API_AUTH_TYPE。此外,许多“验证”内容为自述,缺少可查证测试产物。
安装易用性 13/20
安装路径清晰:通过 uvx 安装/运行,然后添加 mcpServers 配置;针对多个主流客户端提供了配置片段。但由于存在较多环境变量和过滤配置,复杂度较高;且无 CI/测试证据,按静态校准 setup 不超过 15;README 声称的客户端的验证无法独立确认。

静态评测 · 未实际运行收录于 2026-08-07

查看 FMRS 评分方法 →

选型与风险

能访问什么访问网络

适合谁

  • 需要将 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 支持不完整,功能可能受限。

安装接入

准备工作

运行环境:Python

OPENAPI_SPEC_URL 必填 必填,OpenAPI 规范的 URL 或 file:// 本地路径。
API_KEY 可选密钥 目标 API 的认证令牌,默认以 Bearer 方式发送;在 API 文档或账户设置中获取。
其他可选配置项(21 个)
OPENAPI_SIMPLE_MODE 可选 设为 true 启用 FastMCP 简单模式(静态工具集)。
TOOL_WHITELIST 可选 逗号分隔的端点路径列表,用于过滤要暴露的工具。
ADDITIONAL_RESOURCES 可选 逗号分隔的 name=/path/to/file 条目,作为额外 MCP 资源提供。
TOOL_NAME_PREFIX 可选 为所有工具名添加前缀。
API_AUTH_TYPE 可选 覆盖默认 Bearer 的认证方案(如 Token、api-key)。
STRIP_PARAM 可选 JMESPath 表达式,用于从请求负载中剥离不需要的参数(如 Slack 的 token)。
DEBUG 可选 设为 true/1/yes 启用详细调试日志。
EXTRA_HEADERS 可选 额外 HTTP 头,接受 JSON 数组、每行一条或 \n 分隔。
SERVER_URL_OVERRIDE 可选 覆盖规范中的基础 URL,用于自定义部署。
TOOL_NAME_MAX_LENGTH 可选 截断工具名的最大长度。
IGNORE_SSL_SPEC 可选 设为 true 时获取规范不校验 SSL 证书。
IGNORE_SSL_TOOLS 可选 设为 true 时工具发起的 API 请求不校验 SSL 证书。
API_AUTH_HEADER 可选 API_AUTH_TYPE=api-key 时使用的请求头名(如 x-apikey)。
OPENAPI_SPEC_FORMAT 可选 设为 yaml 可解析 file:// 的 YAML 规范。
OPENAPI_SPEC_CACHE_TTL_SECONDS 可选 远程规范的磁盘缓存 TTL(秒),默认 86400,0 为禁用。
ENABLE_TOOLS 可选 低级模式下是否启用 tools 表面,默认启用。
ENABLE_PROMPTS 可选 低级模式下是否启用 prompts 表面,默认启用。
ENABLE_RESOURCES 可选 低级模式下是否启用 resources 表面,默认启用。
CAPABILITIES_TOOLS 可选 在相应能力上通告 listChanged,默认 false。
CAPABILITIES_PROMPTS 可选 在相应能力上通告 listChanged,默认 false。
CAPABILITIES_RESOURCES 可选 在相应能力上通告 listChanged,默认 false。

通过 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}"
      }
    }
  }
}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

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

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add mcp-openapi-proxy -e 'OPENAPI_SPEC_URL=${OPENAPI_SPEC_URL}' -e 'API_KEY=${API_OPENAPI_KEY}' -- uvx mcp-openapi-proxy

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

启动后(OPENAPI_SPEC_URL 设为 https://glama.ai/api/mcp/openapi. 并运行 uvx mcp-openapi-proxy),在客户端工具列表中应出现由规范端点动态生成的工具(如 get_v1_attributes),或通过 JSON-RPC 的 tools/list 返回非空列表。

常见排障

  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。

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 列出这个 OpenAPI 规范里所有可用的工具
  • 用 Glama 的规范调用 get_v1_attributes
  • 列出 APIs.guru 的指标数据(get_metrics_)
  • 通过 Slack 的 auth.test 工具检查我的 bot token

使用场景

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

支持客户端

Claude Desktop部分支持
Codex
Gemini部分支持
Qwen部分支持
Kilocode部分支持
OpenCode
Vibe部分支持
Letta部分支持

依据项目文档列出,未经本站实测。

详细介绍

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)。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 62.9k · 工具数 2 与当前对比 →

源版本 04334a0c8992 数据同步于 2026-10-12 查看 FMRS 评分方法