← 返回目录
M

mcpo

官方
将 MCP 工具即时转换为 OpenAPI 服务。
GitHub 源仓库 ↗
★ 4.3k Stars 分类 · 开发工具 非常热门
53FMRS · D
可靠性
8/20
安全与权限
8/20
维护活跃度
11/20
文档质量
13/20
安装易用性
13/20

mcpo 将 MCP 工具转换为 OpenAPI 兼容的 HTTP 服务,支持 stdio、SSE 和 Streamable HTTP,并提供自动生成文档、多服务器配置、热重载和 Streamable HTTP 下的 OAuth 2.1 支持。

查看 FMRS 评分方法 →

mcpo 是一个简单、安全的 MCP-to-OpenAPI 代理服务器。它接收 MCP 服务器命令或 SSE、Streamable HTTP 端点,并通过标准 RESTful HTTP 暴露工具,同时自动生成 OpenAPI 架构和交互式文档。

工具能力

暂未整理工具清单。

安装接入

使用 uvx:uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command。也可使用 pip install mcpo 后运行 mcpo,或使用 Docker 镜像 ghcr.io/open-webui/mcpo:main。启动后访问 http://localhost:8000/docs。多个服务器可通过 Claude Desktop 格式的配置文件运行:mcpo --config /path/to/config.json;需要时加上 --hot-reload。

选型与风险

适合谁

  • 需要通过 HTTP 使用 MCP 工具的 LLM 应用和开发者
  • 使用 OpenAPI 工具、SDK 或 UI 的团队
  • 需要多服务器配置、热重载或 OAuth 2.1 的场景

不适合谁

  • 只需要直接使用原生 MCP stdio 通信的客户端
  • 不愿管理 API 密钥、网络端口或代理安全配置的部署
  • 需要证据中未说明的其他协议或客户端集成

所需权限

  • 需要执行指定的 MCP 服务器命令,或连接指定的 SSE、Streamable HTTP 端点
  • 需要监听配置的 HTTP 端口
  • 若使用 OAuth 2.1,可能需要浏览器授权、回调端口以及在文件存储模式下写入 ~/.mcpo/tokens/

风险与副作用

  • 暴露的 HTTP 服务应配置 API 密钥;README 将 API 密钥作为启动参数示例
  • 代理会把 MCP 工具暴露给能够访问该 HTTP 服务的调用方,因此端口和反向代理配置需要谨慎
  • OAuth 令牌可能存储在 ~/.mcpo/tokens/;应按部署环境保护该目录
  • 配置文件中的命令、端点和请求头会影响代理连接的目标与凭据

常见排障

  1. 确认 Python 版本为 3.8 或更高
  2. 确认 MCP 服务器命令可执行,且端口没有被占用
  3. SSE 连接使用 --server-type sse,并检查端点和请求头
  4. Streamable HTTP 连接使用 --server-type streamable-http,并检查端点
  5. 使用 /docs 或配置的 /<tool>/docs 路径检查生成的文档
  6. 若部署在子路径后,使用 --root-path 设置对应路径
  7. OAuth 连接失败时检查 server_url、回调端口和动态客户端注册支持

使用场景

将基于 stdio 的 MCP 工具暴露为标准 HTTP/OpenAPI 服务
为 OpenAPI 工具、SDK 和用户界面提供 MCP 工具
代理 SSE 或 Streamable HTTP MCP 服务器
为多个 MCP 工具提供独立路由和交互式文档

支持客户端

Open WebUI完整支持