使用说明
⚡️ MCP(海军陆战队司令)
立即将任何MCP工具暴露为兼容OpenAPI的HTTP服务器。
MCPo 是一个极其简单的代理,它接收 MCP 服务器命令,并通过标准的 RESTful OpenAPI 使其可访问,因此您的工具可以“无缝工作”与期望使用 OpenAPI 服务器的 LLM 代理和应用程序。
无需自定义协议。无需粘合代码。省心省力。
🤔 为什么要使用mcpo而不是原生MCP?
MCP服务器通常通过原始的stdio进行通信,即:
- 解锁:本质上不安全
- ❌ 与大多数工具不兼容
- 缺少标准功能,如文档、认证、错误处理等。
MCPo 解决了所有这些问题——而且无需额外努力:
- ✅ 立即与OpenAPI工具、SDK和用户界面协同工作
- 🛡 通过使用可信的网络标准,增强安全性、稳定性和可扩展性
- 🧠 自动为每个工具生成交互式文档,无需配置
- 🔌 使用纯HTTP——无需套接字,无需粘合代码,毫无意外
感觉像是“再走一步”的,实际上是更少的步骤却能带来更好的结果。
MCPo 让您的 AI 工具即刻可用、安全且可互操作,无需任何繁琐步骤。
🚀 快速使用
我们建议使用uv来实现闪电般的启动速度和零配置。
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
或者,如果你使用的是Python:
pip install mcpo
mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
要使用与SSE兼容的MCP服务器,只需指定服务器类型和终端节点:
mcpo --port 8000 --api-key "top-secret" --server-type "sse" -- http://127.0.0.1:8001/sse
你也可以为SSE连接提供请求头:
mcpo --port 8000 --api-key "top-secret" --server-type "sse" --header '{"Authorization": "Bearer token", "X-Custom-Header": "value"}' -- http://127.0.0.1:8001/sse
要使用支持HTTP的可流式传输MCP服务器,请指定服务器类型和端点:
mcpo --port 8000 --api-key "top-secret" --server-type "streamable-http" -- http://127.0.0.1:8002/mcp
您也可以无需安装,通过 Docker 运行 mcpo:
docker run -p 8000:8000 ghcr.io/open-webui/mcpo:main --api-key "top-secret" -- your_mcp_server_command
示例:
uvx mcpo --port 8000 --api-key "top-secret" -- uvx mcp-server-time --local-timezone=America/New_York
就是这样。您的MCP工具现已通过http://localhost:8000访问,并附带了生成的OpenAPI架构——请在此处进行实时测试: http://localhost:8000/docs 翻译为中文是:“本地主机8000端口文档页面”。不过,通常我们不会直接翻译网址,而是描述其用途或内容,比如“访问本地开发服务器的文档页面,地址为8000端口”。在这里,“localhost”表示本地计算机,“8000”是端口号,“/docs”通常指向文档或API说明的路径.
🤝(握手) 在服务器启动后,要与Open WebUI集成,请查看我们的 文档。
🔄 使用配置文件
你可以通过一个遵循(特定格式或规范的)单一配置文件来管理多个MCP工具 Claude Desktop(中文可译为“克劳德桌面版”或根据具体语境简化为“克劳德桌面”,但通常直接保留原名以体现品牌特色) 格式。
启用热重载模式 --hot-reload 自动监控您的配置文件变化,并在不中断服务的情况下重新加载服务器:
启动方式:
mcpo --config /path/to/config.json
或者在启用热加载的情况下:
mcpo --config /path/to/config.json --hot-reload
示例 config.json:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
},
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=America/New_York"]
},
"mcp_sse": {
"type": "sse", // Explicitly define type
"url": "http://127.0.0.1:8001/sse",
"headers": {
"Authorization": "Bearer token",
"X-Custom-Header": "value"
}
},
"mcp_streamable_http": {
"type": "streamable-http",
"url": "http://127.0.0.1:8002/mcp"
} // Streamable HTTP MCP Server
}
}
每个工具都将在其唯一的路由下可访问,例如:
- http://localhost:8000/memory 翻译为中文是:“本地主机上的8000端口内存页面”。不过,通常我们不会直接这样翻译网址,而是根据网址所指向的内容或功能来描述,比如“访问本地主机8000端口的内存相关页面”或“查看本地服务器8000端口的内存信息页面”,具体翻译需根据上下文确定
- http://localhost:8000/time 翻译为中文是:“本地主机的8000端口上的时间服务”。不过,通常我们不会直接这样翻译网址,而是根据网址的内容和用途来解释其含义。在这个例子中,可以理解为访问本地运行的一个服务器(监听8000端口)上的时间相关页面或接口
每个都有其专用的OpenAPI架构和代理处理器。访问完整的架构用户界面,请前往: http://localhost:8000/<tool>/docs (例如 /memory/docs, /time/docs)
🔧 要求
- Python 3.8及以上版本
- 紫外线(可选,但强烈建议用于性能测试+包装)
🛠️ 开发与测试
要在本地进行贡献或运行测试:
-
设置环境:
# Clone the repository git clone https://github.com/open-webui/mcpo.git cd mcpo # Install dependencies (including dev dependencies) uv sync --dev -
运行测试:
uv run pytest -
在本地运行并应用活动更改:
跑步
mcpo从特定分支(例如。,my-feature-branch):# Ensure you are on your development branch git checkout my-feature-branch # Make your code changes in the src/mcpo directory or elsewhere # Run mcpo using uv, which will use your local, modified code # This command starts mcpo on port 8000 and proxies your_mcp_server_command uv run mcpo --port 8000 -- your_mcp_server_command # Example with a test MCP server (like mcp-server-time): # uv run mcpo --port 8000 -- uvx mcp-server-time --local-timezone=America/New_York这允许你在提交更改或创建拉取请求之前,以交互方式测试你的更改。访问你本地运行的
mcpo实例在http://localhost:8000以及自动生成的文档位于http://localhost:8000/docs.
🪪 许可证
麻省理工学院(MIT)
🤝 贡献(或“参与贡献”)
我们欢迎并热烈鼓励社区成员的贡献!
无论你是在修复漏洞、添加功能、改进文档,还是仅仅分享想法——你的贡献都极为宝贵,并有助于让mcpo对每个人来说都变得更好。
开始使用很简单:
- 为仓库创建分支(或:克隆仓库)
- 创建一个新分支
- 做出你的更改
- 打开一个拉取请求
不知道从哪里开始?请随时提交一个问题或提出疑问——我们很乐意帮助你找到一个合适的入门任务。
✨ 星辰历史
✨ 让我们一起构建未来互操作性的AI工具!
