将任何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工具的未来!
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务