[说人话系列]最新版v0.6.0 openwebui 怎么配置使用 mcp 经验分享

事先吐槽并叠甲

本人也是个小白菜逼,下面分享的是昨天一晚上倒腾出来的经验分享,有很大的时效性限制(说不定openwebui官方就更新了),另外可能有些疏漏,另外这个经验分享极度话痨,请多担待。然后我先说一个暴论:这次v0.6.0更新的mcp是个半成品,官方的推荐方式极其不适合小白

MCP的基本概念

这方面L站的很多大佬都有过科普了,下面列举几个,我就不赘述了

  1. 探索MCP-我的学习与实践笔记 - 开发调优 - LINUX DO
  2. 面向新手的MCP使用教程:在Cherry Studio中配置和使用模型上下文协议 - 文档共建 - LINUX DO
  3. vscode+cline 配置自己的MCP-Server - 开发调优 - LINUX DO

MCP市场推荐

我个人使用的是这2个

  1. MCP 市场
  2. MCP Servers

言归正传

这次更新我个人最关心的就是mcp功能的官方支持


毕竟大家可能都在cursor,claude desktop,cline等上面用过了,肯定也想在openwebui上面用,首先是要跑起来一个最基础的demo
可以参考官方的
1.:satellite: MCP Support | Open WebUI
2.open-webui/mcpo: A simple, secure MCP-to-OpenAPI proxy server

搭建方式有3种

  1. 使用uvx跑
  2. 使用python跑
  3. 使用docker跑
    这里我要吐槽的第一点就是官方推荐使用
uvx mcpo --port 8000 -- uvx mcp-server-time --local-timezone=America/New_York

这个方式暴露MCP服务器,可是对于我这种使用1penel面板的小白来说面临2个问题,一个是安装uv和mcpo面临的是否需要额外的anaconda虚拟环境的问题(我懒的配),还有一点是这种方式不方便管理,时间长了谁记得到开放了啥端口,还得去用Linux命令查,小白哪记得住,每次都得翻手册命令,我嫌麻烦,我目前推荐 docker跑,主要是1panel面板看得到任务状态,能看任务日志,以及能清晰的看到暴露的端口,比前2种方法适合小白。

docker 跑的demo可以参看刚才说的 :satellite: MCP 支持 | 开放 WebUI — :satellite: MCP Support | Open WebUI这里的 Dockerize your Proxy Server using mcpo 章节构建容器并开跑。

20250405 更新

如果真要玩这个,推荐使用 @zgccrui 大佬的 cr-zhichen/mcpo-proxy 仓库来配置 MCPO Proxy 代理服务,拉取下来后只需要修改config.json即可完成一键部署

多mcp服务器怎么编写Dockerfile

可以参考我目前的思路

Dockerfile:

FROM python:3.11-slim

WORKDIR /app

# ---------------------------
# 1)  安装必要的系统依赖 + Node.js (自带 npx) 
# ---------------------------
RUN apt-get update && \
    apt-get install -y curl unzip && \
    curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
    apt-get install -y nodejs && \
    apt-get clean

# ---------------------------
# 2)  安装 bun (bunx) 
# ---------------------------
RUN curl -fsSL https://bun.sh/install | bash
# bun 默认安装到 /root/.bun
ENV BUN_INSTALL="/root/.bun"
ENV PATH="${BUN_INSTALL}/bin:${PATH}"

# ---------------------------
# 3)  安装 Python 依赖
# ---------------------------
RUN pip install --no-cache-dir mcpo uv

# ---------------------------
# 4)  拷贝 config.json 到容器中
# ---------------------------
COPY config.json /app/config.json

# ---------------------------
# 5)  启动 mcpo,加载该 config.json
# ---------------------------
CMD ["mcpo", "--config", "/app/config.json"]

也就是把多个mcp写到一个config.json里面,docker一起跑,这样就可以在只开启一个docker服务的前提下跑多个mcp了,这个 config.json 的写法基本上每个mcp服务器都有,各位就按需写就OK

怎么应用到openwebui

这是我觉得openwebui这次更新最傻逼的地方,首先是高贵的官方手册完全没说搭完以后怎么使用,我被他的【 Future-Proof : MCP proxy uses existing, stable, standard REST/OpenAPI formats guaranteed long-term community support and evolution.】这句话误导了好久,我还以为是添加外部连接模型,搞了好久都没出来,后面才发现是 点击左下角的头像,点设置,点工具,添加工具服务器

20250417 更新
感谢 @xixia 大佬的评论指引,现在openwebui 已经更新文档了https://docs.openwebui.com/openapi-servers/open-webui ,可以参照这个搭建

然后是第二个坑,在你的openwebui配置了反代时不能用http://filesystem-server:8000这种docker内部网络连接,因为…


这个有多整人我给大家演示一下,首先是我使用我https的反代网址想添加这个 http://filesystem-server:8000

所以咋解决呢?问题的根源是

也就是说当你使用反代的https网址时,http的本地网址就用不了了,因为工具服务器直接从浏览器发出请求,而不是从后端发出,所以要么给这个docker也设置个反代,要么就直接使用 http://你的服务器地址:openwebui端口 + http://你的服务器地址:docker端口 这种才能正常访问。

怎么填写这里的工具服务器网址

单个mcp的可以直接写,但是如果各位是按照前面我说的写在config.json的话,就要写分支了,比如现在你的docker任务的反代网址是 https://mcp.server.com ,然后config.json里面有3个mcp服务

{
  "mcpServers": {
    "server_1": {
      ...
    },
    "server_2": {
      ...
    },
    "server_3": {
      ...
    }
  }
}

那么这里的管理工具服务器就可以添加3个网址,分别是

https://mcp.server.com/server_1
https://mcp.server.com/server_2
https://mcp.server.com/server_3

这样就可以正常连接了,成功应该只弹绿框


当你看到右下角有个这个标志的时候就说明可以正常使用了

为啥说他是个半成品

原因很简单,有些mcp服务器用不了,比如说我使用了 mcp-server-time 这个是能正常工作的,但是 Firecrawl MCP Server 这个就不行,同样的配置,cherry studio 又是正常的,各位可以尝试不同的mcp服务的效果

总结

现阶段不是很建议用openwebui跑mcp,体验不好不说,官方的引导做的还差。(不说了睡觉去了,通宵都在整这个遭不住了)

85 个赞

佬友好强:+1:,感谢佬友分享:folded_hands:

3 个赞

大佬太强了!

4 个赞

感谢喂饭:folded_hands:

3 个赞

感谢分享~

3 个赞

好好好,原来是这么玩儿的!!终于搞明白了!

果然不好使,tools返回了结果,但是AI不认识(或许是我模型用得不对?)。

这是tools返回的结果。


再次update一下,我让AI给我改写代码,它给我调用了地图的API,这也太抽象了!!
image


再次update,这玩意儿……能用又不能用的,很迷!

5 个赞

太强了大佬!
@coker 佬学习一下 :tieba_087:

3 个赞

太强了大佬!
@coker 佬学习一下 :tieba_087:

2 个赞

学习不动,等喂饭 :tieba_087:

2 个赞

跟我试的一样,Firecrawl用不了,再观望观望

4 个赞

我试了下 firecrawl 可以用

mcpo 的使用体验还不错,可以很方便的管理自己 host 的 mcp server。而且用的是 fastapi,在 /docs 暴露 swagger 文档,也很方便。

例如:

https://mcp.lkwplus.com/time/docs

我选择用 pm2 管理 mcpo 的后台运行,形如:

pm2 start uvx --name “mcpo” – mcpo --host 127.0.0.1 --port 8888 --config /path/to/mcpo_config.json

2 个赞

大佬牛逼!!

直接一键启动

3 个赞

太强了佬 :tieba_087:

1 个赞

我昨天也用过了,总结就是两个字:垃圾

  1. 作者非常傲慢,非要特立独行搞 OpenAPI 的方式,将 MCP 全部统一化为 OpenAPI 接口格式,这使得普通用户管理和使用 MCP 非常不便
  2. MCP 服务器底层竟然还是由任务模型进行驱动的,这就离谱
  3. 无法根据自身需求自定义开启或关闭特定 MCP 服务器
  4. MCP 交互逻辑很烂,不过市面上 MCP 交互逻辑好的实际上并不多,像 Claude 官方客户端那种一个一个步骤进行 MCP 操作,并非常连贯的进行响应是最合理的也最直观的,而 openwebui 你根本不知道它怎么处理 MCP,反正最后回复完了底下就直接显示 MCP 服务器响应的内容,直观性很差,包括 Cherry Studio 在这一点也不好

感言:open-webui 的功能开发越来越鸡肋,经常大半个月都在修 BUG,在真正的交互逻辑上毫无改善,实际上用过各种套壳的都知道,类似 LobeChat 和 Cherry Studio 这种助手智能体的对话逻辑才是合理的,能在一个智能体下自由切换不同模型。open-webui 刚开始只是一昧的模仿 chatgpt 官方的对话界面和逻辑,随后在这基础上进行扩展,但这种形式在套壳 chat 上是不太合理的,想必拥有大量模型的高级用户在用过 cherry studio 后都会有这种感受。感觉如果 open-webui 再这么下去我可能真用不下去了,真得完全转战 cherry 了 :tieba_087:

8 个赞

对,是这样的,体验极其操蛋

这个贼抽象,我跟另一个哥们儿都是相同的配置代码和openwebui版本,结果一个能跑一个不能跑,只能等官方更新了,这个版本完全没法用

是的,巨jer傻逼!!

最开始用的就是OWUI,一开始是搜索速度劝退了我,但是我还是挺喜欢他的界面风格。 想着等支持MCP了再来试试,现在再来看简直一坨。。。

4 个赞

厲害啊 好玩是真好玩 但也真多不便
期待後續更方便的安裝方式