如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
将任何MCP工具即时暴露为OpenAPI兼容的HTTP服务器。
mcpo是一款极其简单的代理,它接收MCP服务器命令并通过标准的RESTful OpenAPI使其可访问,因此您的工具可以与期望OpenAPI服务器的LLM代理和应用“无缝协作”。
无需自定义协议。无需粘合代码。无需额外麻烦。
MCP服务器通常通过原始标准输入输出(stdio)通信,这存在以下问题:
mcpo无需额外 effort 即可解决所有这些问题:
看似“多一步”,实则步骤更少且效果更佳。
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连接提供 headers:
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
要使用Streamable 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 实时测试。
🤝 启动服务器后如需集成Open WebUI,请查阅我们的文档。
如果需要在反向代理后或子路径(例如 /api/mcpo)下提供mcpo服务,请使用 --root-path 参数:
mcpo --port 8000 --root-path "/api/mcpo" --api-key "top-secret" -- your_mcp_server_command
所有路由将在指定的根路径下提供服务,例如 http://localhost:8000/api/mcpo/memory。
您可以通过单个遵循Claude Desktop格式的配置文件提供多个MCP工具。
使用 --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"],
"disabledTools": ["convert_time"] // 如需禁用特定工具
},
"mcp_sse": {
"type": "sse", // 显式定义类型
"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服务器
}
}
每个工具将在其自己的唯一路由下可访问,例如:
每个工具都有专用的OpenAPI模式和代理处理程序。访问完整模式UI的地址为:http://localhost:8000/<路由>/docs(例如 /memory/docs、/time/docs)。
mcpo支持为需要OAuth 2.1身份验证的MCP服务器提供认证。该实现默认为动态客户端注册,因此大多数服务器只需最少的配置:
{
"mcpServers": {
"oauth-protected-server": {
"type": "streamable-http",
"url": "http://localhost:8000/mcp",
"oauth": {
"server_url": "http://localhost:8000"
}
}
}
}
基本选项:
高级选项(很少需要):对于不支持动态客户端注册的服务器,您可以指定静态客户端元数据:
{
"mcpServers": {
"legacy-oauth-server": {
"type": "streamable-http",
"url": "http://api.example.com/mcp",
"oauth": {
"server_url": "http://api.example.com",
"client_metadata": {
"client_name": "My MCPO Client",
"redirect_uris": ["http://localhost:3030/callback"]
}
}
}
}
}
[!NOTE] 避免在配置中设置 scope、authorization_endpoint 或 token_endpoint。这些会在动态注册流程中从服务器的OAuth元数据自动发现。
首次连接时,mcpo将:
OAuth支持streamable-http服务器类型。详见OAUTH_GUIDE.md获取详细文档。
要贡献代码或在本地运行测试:
设置环境:
# 克隆仓库
git clone https://github.com/open-webui/mcpo.git
cd mcpo
# 安装依赖(包括开发依赖)
uv sync --dev
运行测试:
uv run pytest
使用本地修改运行:
要使用特定分支(例如 my-feature-branch)的本地修改运行mcpo:
# 确保位于开发分支
git checkout my-feature-branch
# 在 src/mcpo 目录或其他位置进行代码修改
# 使用uv运行mcpo,将使用本地修改后的代码
# 此命令在端口8000启动mcpo并代理 your_mcp_server_command
uv run mcpo --port 8000 -- your_mcp_server_command
# 使用测试MCP服务器(如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。
我们欢迎并强烈鼓励社区贡献!
无论您是修复错误、添加功能、改进文档,还是分享想法——您的投入都非常宝贵,有助于让mcpo变得更好。
入门很简单:
不确定从何开始?随时打开issue或提问——我们很乐意帮助您找到合适的入门任务。
✨ 让我们共同构建可互操作AI工具的未来!
来自真实用户的反馈,见证轩辕镜像的优质服务