模型上下文协议 (MCP)
Open WebUI 从 v0.6.31 版本开始原生支持 MCP (Model Context Protocol)。本页面将展示如何快速启用它、在生产环境中进行加固以及解决常见问题。
需要 Open WebUI v0.6.31+。
您 必须 在 Docker 设置中设置 WEBUI_SECRET_KEY 环境变量。如果没有它,OAuth 连接的 MCP 工具(如 Notion) 在您每次重启或重新创建容器时都会 失效(错误:Error decrypting tokens),迫使您重新进行所有身份验证。
🚀 快速入门
- 打开 ⚙️ 管理员设置 → 外部工具。
- 点击 + (添加服务器)。
- 将 类型 设置为 MCP (可流式 HTTP)。
- 输入您的 服务器 URL 和 身份验证 详情(如果需要,使用 OAuth 2.1)。
- 保存。如果系统提示,请重启 Open WebUI。
您现在可以从 Open WebUI 调用 MCP 服务器暴露的工具了。
🧭 什么时候使用 MCP vs OpenAPI
对于大多数部署,OpenAPI 仍然是 首选 的集成路径。
如果您需要以下特性,请选择 OpenAPI:
- 企业级就绪:深度 SSO、API 网关、审计、配额、类型化 SDK。
- 运行韧性:标准 HTTP 动词、幂等性、缓存、丰富的错误代码。
- 可观测性:一流的追踪和策略集成。
如果您需要以下特性,请选择 MCP (可流式 HTTP):
- 您的 MCP 服务器/客户端已经使用的 通用工具协议。
- 在具有新兴生态系统支持的 HTTP 上的 流式 工具事件。
您不必二选一:许多团队在内部暴露 OpenAPI,并在边缘为特定客户端 包装 MCP。
基于浏览器的多用户部署增加了攻击面(CORS/CSRF、用户隔离、重连)。在向外部暴露 MCP 之前,请审查您组织的身份验证、代理和频率限制策略。
❓ 常见问题
你们支持 stdio 或 SSE 传输吗?
Open WebUI 中的原生 MCP 支持 仅限可流式 HTTP。这一设计选择反映了我们的架构:Open WebUI 是一个 基于 Web 的多租户环境,而不是本地桌面进程。
浏览器在严格的 沙箱和事件驱动的 HTTP 限制 下运行,这使得在用户和会话之间安全地维护长效的 stdio 或 SSE 连接变得困难。
如果您需要桥接这些其他 MCP 传输方式,请查看 mcpo —— 一个开源代理,它将 基于 stdio 或 SSE 的 MCP 服务器转换为 OpenAPI 兼容的端点。它实际上让您无需修改传输层即可在 Open WebUI 中运行传统的 MCP 工具。
MCP 在这里被 认为是稳定的吗?
支持并正在改进。更广泛的生态系统仍在发展中;预计偶尔会有重大更改。
我可以混合使用 OpenAPI 和 MCP 工具吗?
可以。许多部署同时使用两者。