详细介绍
mcpo是一个专为MCP工具设计的代理服务工具,能够将任何遵循Model Context Protocol (MCP)协议的命令行工具即时转换为符合OpenAPI 3.0标准的HTTP服务。通过RESTful API方式暴露功能,使传统工具能无缝对接现代LLM应用和自动化流程。mcpo支持单命令代理和配置文件批量代理两种模式,具备自动文档生成、多工具并行代理、SSE流式支持和API密钥认证等核心功能。
核心功能
mcpo的核心功能包括:
- OpenAPI自动转换:无需编写任何代码,自动将MCP工具转换为符合OpenAPI 3.0规范的HTTP服务。
- 多工具并行代理:通过配置文件同时代理多个MCP工具,每个工具都有独立的API端点。
- SSE流式支持:原生支持Server-Sent Events (SSE)协议的MCP工具,实现实时数据推送。
- 开箱即用的安全:内置API密钥认证机制,保护服务端点不被未授权访问。
- 自动文档生成:自动生成交互式Swagger UI文档,无需额外配置。
安装方法
mcpo可以通过Python的pip工具或uv工具进行安装。以下是具体的安装步骤:
pip install mcpo
# 或
uvx install mcpo安装完成后,即可在命令行中使用mcpo命令。
使用方法
mcpo的使用非常简单,只需在命令行中指定要代理的MCP工具命令即可。以下是几种常见的使用方式:
mcpo --port 8000 --api-key 'your-key' -- your_mcp_tool --args如果需要使用支持SSE的MCP服务器,可以指定服务器类型和端点:
mcpo --server-type sse --host your_sse_server_host:your_sse_server_port此外,还可以通过配置文件管理多个工具:
mcpo --config servers.json启动服务后,访问 http://localhost:8000/docs 即可查看自动生成的API文档。
使用示例
以下是两个具体的使用示例:
1. 时间服务代理
uvx mcpo --port 8000 -- uvx mcp-server-time --local-timez>该命令将本地时间查询工具转换为API服务,可通过 GET / 获取当前上海时间。
2. 多工具配置
mcpo --config servers.json通过配置文件 servers.json 同时代理多个工具,不同工具分别通过 /memory、/time 等路径访问。
配置说明
mcpo支持多种配置选项,以下是常用参数说明:
--port:设置服务监听端口,如8000。--api-key:设置API访问密钥,用于保护服务端点。--server-type:指定服务器类型,可选值为sse或standard(默认为standard)。--config:指定配置文件路径,用于批量代理多个工具。
使用场景
mcpo适用于以下场景:
- 当需要将本地工具接入AI工作流或构建自动化管道时。
- 需要为现有工具添加标准化API接口时。
- 与Open WebUI等AI平台集成时。
注意事项
在使用mcpo时,需要注意以下几点:
- mcpo作为代理层,不会影响原有工具的功能和逻辑。
- 建议始终设置
--api-key参数,并在客户端请求时携带x-api-key头以确保API访问安全。 - mcpo完全支持Windows、macOS和Linux系统。
mcpo通过将MCP工具转换为标准的OpenAPI服务,提升了工具的可用性、安全性和互操作性,是构建现代AI工具链的重要工具。