内容
# ⚡️ mcpo
将任何 MCP 工具暴露为兼容 OpenAPI 的 HTTP 服务器——瞬间完成。
mcpo 是一个极其简单的代理,它接受 MCP 服务器命令并通过标准的 RESTful OpenAPI 使其可访问,因此您的工具可以“正常工作”与期望 OpenAPI 服务器的 LLM 代理和应用程序。
没有自定义协议。没有粘合代码。没有麻烦。
## 🤔 为什么使用 mcpo 而不是原生 MCP?
MCP 服务器通常通过原始 stdio 进行通信,这具有以下缺点:
- 🔓 本质上不安全
- ❌ 与大多数工具不兼容
- 🧩 缺少文档、身份验证、错误处理等标准功能
mcpo 解决了所有这些问题——无需额外努力:
- ✅ 与 OpenAPI 工具、SDK 和 UI 即刻兼容
- 🛡 使用可信的网络标准增加安全性、稳定性和可扩展性
- 🧠 自动生成每个工具的交互式文档,无需配置
- 🔌 使用纯 HTTP——没有套接字,没有粘合代码,没有意外
看似“多一步”的操作实际上是更少的步骤,且结果更好。
mcpo 使您的 AI 工具可用、安全且互操作——现在就可以,毫无麻烦。
## 🚀 快速使用
我们建议使用 uv 以实现快速启动和零配置。
```bash
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
```
或者,如果您使用 Python:
```bash
pip install mcpo
mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
```
要使用兼容 SSE 的 MCP 服务器,只需指定服务器类型和端点:
```bash
mcpo --port 8000 --api-key "top-secret" --server-type "sse" -- http://127.0.0.1:8001/sse
```
您还可以通过 Docker 运行 mcpo,无需安装:
```bash
docker run -p 8000:8000 ghcr.io/open-webui/mcpo:main --api-key "top-secret" -- your_mcp_server_command
```
示例:
```bash
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](http://localhost:8000/docs) 进行实时测试。
🤝 **要在启动服务器后与 Open WebUI 集成,请查看我们的 [docs](https://docs.openwebui.com/openapi-servers/open-webui/)。**
### 🔄 使用配置文件
您可以通过单个配置文件提供多个 MCP 工具,该文件遵循 [Claude Desktop](https://modelcontextprotocol.io/quickstart/user) 格式:
通过以下命令启动:
```bash
mcpo --config /path/to/config.json
```
示例 config.json:
```json
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
},
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=America/New_York"]
},
"mcp_sse": {
"url": "http://127.0.0.1:8001/sse"
} // SSE MCP 服务器
}
}
```
每个工具将通过其独特的路由进行访问,例如:
- http://localhost:8000/memory
- http://localhost:8000/time
每个工具都有专用的 OpenAPI 架构和代理处理程序。访问完整的架构 UI:`http://localhost:8000/<tool>/docs` (例如 /memory/docs, /time/docs)
## 🔧 需求
- Python 3.8+
- uv(可选,但强烈推荐以提高性能和打包)
## 🛠️ 开发与测试
要进行贡献或在本地运行测试:
1. **设置环境:**
```bash
# 克隆仓库
git clone https://github.com/open-webui/mcpo.git
cd mcpo
# 安装依赖(包括开发依赖)
uv sync --dev
```
2. **运行测试:**
```bash
uv run pytest
```
## 🪪 许可证
MIT
## 🤝 贡献
我们欢迎并强烈鼓励社区的贡献!
无论您是在修复错误、添加功能、改善文档,还是仅仅分享想法——您的意见都非常宝贵,有助于让 mcpo 更好地服务于每个人。
开始很简单:
- Fork 这个仓库
- 创建一个新分支
- 进行更改
- 提交一个拉取请求
不确定从哪里开始?随时可以打开一个问题或提问——我们很乐意帮助您找到一个好的入门任务。
## ✨ 星标历史
<a href="https://star-history.com/#open-webui/mcpo&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-webui/mcpo&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-webui/mcpo&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-webui/mcpo&type=Date" />
</picture>
</a>
---
✨ 让我们一起构建互操作 AI 工具的未来!