SuperAPI AI 工具集

mcpo

mcpo 是一个简单、安全的 MCP 到 OpenAPI 代理服务器,由 open-webui 团队开发。它的核心作用是把任何 MCP(Model Context Protocol)服务器命令代理为标准的 RESTful OpenAPI 接口,让原本只能通过 stdio 通信的 MCP 工具能够直接被期望 OpenAPI 的 LLM 智能体和应用使用。mcpo 无需自定义协议或胶水代码,通过纯 HTTP 提供服务,并自动为每个工具生成可交互的文档。它支持 UV 快速启动、Python 运行、Docker 无安装运行,兼容 SSE 和 Streamable HTTP 类型的 MCP 服务器,还支持通过配置文件同时托管多个 MCP 工具以及配置文件热重载。此外,mcpo 内置 OAuth 2.1 认证支持,默认使用动态客户端注册,能为需要授权的 MCP 服务器自动完成授权流程并安全存储令牌。

访问官网

工具介绍

mcpo 是一个简单、安全的 MCP 到 OpenAPI 代理服务器,属于 open-webui 项目系列。它的目标是把任意 MCP 工具暴露为兼容 OpenAPI 的 HTTP 服务器。

【用途】 MCP 服务器通常使用原始 stdio 通信,这种方式存在安全性不足、与多数工具不兼容、缺少文档、认证、错误处理等标准功能的问题。mcpo 旨在解决这些问题,让 MCP 工具无需额外工作即可与 OpenAPI 工具、SDK 和 UI 配合使用。

【主要能力】

  • 将 MCP 服务器命令代理为标准 RESTful OpenAPI 服务。
  • 自动为每个工具生成可交互的文档,无需配置。
  • 基于 HTTP,无需 socket 或胶水代码。
  • 支持 SSE 和 Streamable HTTP 类型的 MCP 服务器,可为 SSE 连接提供自定义请求头。
  • 支持通过配置文件托管多个 MCP 工具,配置文件格式与 Claude Desktop 一致,每个工具拥有独立路由和 OpenAPI schema。
  • 支持 --hot-reload 热重载,自动监听配置文件变化并重新加载服务器,无需停机。
  • 支持 --root-path,可在反向代理或子路径下提供服务。
  • 支持 OAuth 2.1 认证,默认使用动态客户端注册,适用于需要授权的 MCP 服务器;首次连接时会执行动态注册(如支持)、打开浏览器授权、自动捕获回调、安全存储令牌,并在后续请求中复用令牌。

【使用方式】 官方推荐使用 uv 以获得快速启动和零配置体验,也支持通过 Python 运行,或使用 Docker 免安装运行。基本用法是运行 mcpo 并指定 MCP 服务器命令,启动后 MCP 工具会出现在 http://localhost:8000,并生成 OpenAPI schema,可在 http://localhost:8000/docs 实时测试。 对于 SSE 兼容的 MCP 服务器,需指定服务器类型和端点,并可提供连接请求头。对于 Streamable HTTP 兼容的 MCP 服务器,同样指定类型和端点。 使用子路径时,通过 --root-path 参数让所有路由在指定根路径下提供服务。 使用配置文件时,可通过单一 config.json 服务多个 MCP 工具,每个工具在独立路由下可访问,并拥有各自的 OpenAPI schema 和代理处理器;可通过 --hot-reload 开启热重载。 OAuth 2.1 配置中,server_url 为必填的 OAuth 服务器基础 URL,storage_type 可选 file(持久化)或 memory(仅会话),callback_port 指定本地回调端口(默认 3030),use_loopback 控制是否自动打开浏览器授权(默认 true)。高级选项可为不支持动态客户端注册的服务器指定静态客户端元数据。文档提示避免在配置中设置 scope、authorization_endpoint 或 token_endpoint,这些会在动态注册流程中自动发现。OAuth 支持 streamable-http 服务器类型。

【适用场景】 希望将现有 MCP 工具快速接入只支持 OpenAPI 的 LLM 智能体、应用或 UI 的场景;需要通过 HTTP 获得更安全、稳定、可扩展的工具服务的场景;需要为多个 MCP 工具统一提供文档和路由的场景;需要 OAuth 授权的 MCP 服务器接入场景。与 Open WebUI 集成时,可参考其官方文档。

【限制】 OAuth 仅支持 streamable-http 服务器类型。运行时依赖方面,uv 为可选但推荐。其他限制资料暂未提供。