简介
MCPO 能把 MCP 工具“代理成”带 OpenAPI schema 的 HTTP 服务(含 docs UI),让不支持 MCP 的客户端也能调用工具;支持 uvx/pip/Docker 启动,并可对接 SSE / streamable-http 传输。
- 适合谁: 想把 MCP 工具暴露成可鉴权的 HTTP/OpenAPI 接口,方便接入现有 API 客户端的团队
- 可搭配: uvx 或 pip 安装、Docker 运行、OpenAPI schema + /docs UI、可对接 SSE 或 streamable-http 类型 MCP 后端
- 准备时间: 10–15 分钟
实战建议
- README Quick Usage 示例使用
--port 8000与--api-key;docs UI 在/docs。 - README 说明
--root-path子路径部署,以及用 Claude Desktop 风格config.json管理多工具(可选 hot reload)。
不要把工具面“裸奔”到公网
一旦变成 OpenAPI 服务,你就需要按 API 的思路治理:
- 用
--api-key做鉴权,并定期轮换。 - 尽量在内网跑;必须对公网时,在反向代理上做限流与访问控制。
- MCP server 命令尽量固定版本,避免“升级即变更接口行为”。
一个好用的模式:适配层
当内部是 MCP 工具,而外部消费者不是 MCP 客户端时,MCPO 作为适配层很合适:
- 工具仍然保持 MCP 形态,便于 Agent 使用。
- 对外用 OpenAPI,方便集成、监控与治理。
FAQ
一定要 uv 吗? 答:不一定。README 推荐 uvx,但也提供 pip 安装与 Docker 运行方式。
能代理非 stdio 的 MCP 吗?
答:可以。README 提供 --server-type,包括 sse 与 streamable-http。
如何同时服务多个工具?
答:用 Claude Desktop 格式的 config 文件;README 给出 mcpo --config ... 与 --hot-reload。