Model Context Protocol (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 (Streamable HTTP)。
- 输入你的服务器 URL 和身份验证详情(如需要,OAuth 2.1)。
- 保存。如有提示,重启 Open WebUI。
现在你可以从 Open WebUI 调用 MCP 服务器暴露的工具了。
添加 MCP 服务器时,请确保类型设置为 MCP (Streamable HTTP),而不是 OpenAPI。
将 MCP 风格的配置(包含 mcpServers 的 JSON)输入到 OpenAPI 连接中会导致 UI 崩溃或显示无限加载页面。如遇此情况:
- 通过管理员设置禁用有问题的工具连接
- 以正确的类型重新添加为 MCP
🔒 MCP 服务器仅限管理员添加
MCP 服务器只能由管理员在管理员设置 → 外部工具下添加。普通用户按设计无法自行注册。
这不是与 OpenAPI 相同的限制。当你授予直接工具服务器权限(按用户或用户组,默认关闭)后,用户可以在设置 → 工具下添加自己的 OpenAPI 工具服务器,但那条路径是 OpenAPI 专属的:连接类型被锁定,不提供 MCP 选项。
这其中的差别在于能力。用户提供的 OpenAPI 服务器是一个无状态的 HTTP URL,暴露一组固定的已声明端点。而 MCP 服务器强大得多:它有状态、能力强(支持 sampling、elicitation、持久会话以及通过 stdio 传输的任意主机命令执行),并运行在 Open WebUI 的信任边界内,拥有连接用户的完整权限范围。实际上,一个恶意的或被攻陷的 MCP 服务器可能会以该用户的访问权限执行代码、读取或外泄数据,因此该能力被限定为管理员才可使用。Open WebUI 自带的 MCP 支持仅限 Streamable HTTP,但协议本身具有特权性质,这正是为何新增 MCP 服务器只保留给管理员的原因。
若想在不让用户拥有服务器配置权限的前提下,让用户使用由 MCP 支持的能力,可以由管理员添加一次服务器,然后通过访问控制将其限定给指定用户或用户组。