借助mcpo在open-webui中使用mcp

open-webui前几天发布了0.6版本,我立即进行了升级。新版本中一个重要功能是通过mcpo方式支持了mcp server。本文将介绍mcpo是什么,以及如何在open-webui中使用它。同时,我也会分享几个在接入过程中遇到的问题及解决方案。

首先来介绍mcpo,这是open-webui最新开源的项目。它能将任何MCP工具转换为OpenAPI兼容的HTTP服务器。作为open-webui的子项目,mcpo成功打通了当前火热的mcp生态,让open-webui能够使用各种现有的mcp server。接下来,让我们看看具体使用方法。

安装

使用也很简单,有两种方式,一种是直接通过uvx启动,另外一种是使用pip安装mcpo的命令行工具,然后直接启动。

先说第一种方法,也是官方推荐的方法,直接通过下面的命令就可以将指定的mcp服务在8000端口启动起来。这种方式的好处是不需要额外安装其他工具,直接通过uvx就可以完成启动。

bash 复制代码
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

接下来看看第二种启动方式,先安装mcpo命令行工具,然后直接用命令行工具启动:

bash 复制代码
pip install mcpo
mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

两种启动方式参数都是一样的,需要注意的是,这里的api-key参数不是必须的,它用于后续open-webui访问mcpo服务时的认证,这里推荐填写,防止其他人未经授权访问服务。当然如果是在内网环境,也可以不设置api-key。 另外一个your_mcp_server_command是指mcp具体的指令,我们拿一个mcp官方时间转换的工具为例,其启动配置如下:

bash 复制代码
uvx mcpo --port 8000 --api-key "top-secret" -- uvx mcp-server-time --local-timezone=Asia/Shanghai

最后提醒下大家,不管使用哪种方式,uvx都是必须要安装的,因为大量的mcp server都是使用uvx启动的,不安装uvx就无法使用大部分mcp server。

配置

当需要启动多个mcp服务时,使用命令行拼接参数的方式比较繁琐且容易出错。好在mcpo支持使用配置文件来启动多个服务。你可以将所有配置信息集中在一个json文件中(使用通用mcp json格式),这样更清晰也更容易管理。让我们来看看如何使用配置文件来启动mcpo服务。

启动方式很简单,只需要通过---config参数指定json文件路径即可,这里我拿我服务上的配置为例,首先我服务器上安装了两个mcp server,分别是抓取网页的fetch和时间转换的time,具体配置如下:

bash 复制代码
{
	"mcpServers": {
		"fetch": {
			"command": "uvx",
			"args": ["mcp-server-fetch"]
		},
		"time": {
			"command": "uvx",
			"args": ["mcp-server-time", "--local-timezone=Asia/Shanghai"]
		}
	}
}

这部分内容被我放在~/.mcp/config.json下,所以整体的启动命令就是:

bash 复制代码
 uvx mcpo --port 8000 --api-key "top-secret" --config .mcp/config.json 

如需添加新的 mcp server,只需修改上述 json 文件并重启 mcpo。这个 mcp.json 是一个通用格式,可以在所有支持 mcp 的软件中使用,但请注意区分 Windows 和非 Windows 环境的配置差异。

使用

mcpo启动后,可以直接访问8000端口来测试是否启动成功,不同的mcp服务有不同的path,这里我拿time为例, 访问http://localhost:8000/time 如果看到如下界面,说明mcpo是正常工作的。

在这个页面中,可以看到这个mcp server提供了两个方法,这里也可以对其做简单测试。

由于我们使用mcpo的目的是在open-webui中使用,因此只需要在open-webui的settings/tools中配置http://localhost:8000/time(请根据实际情况更换域名和端口)即可。密码部分需要填写启动服务时指定的api-key。

配置成功后我们就可以对话窗口看到这两个工具。

我们来测试下这两个工具好不好用。

踩坑

遇到了几个坑,也和大家分享下,大家提前规避。

  1. open-webui的bug,请求工具时没有将api-key带过去,所以导致401。 所以这里暂时mcpo不能设置api-key,只能通过无key的方式在open-webui中使用。不过官方也早已发现了这个bug,承诺会在0.6.1版本中修复。 https://github.com/open-webui/open-webui/issues/12379
  2. 工具调用是端侧发起,所以要求接口请求支持cors,其实mcpo本身是支持的,但我开始没调通,发现是因为open-webui页面用的是https,而mcpo我随便开了个http接口,这导致浏览器出于安全考虑阻止了请求。解决方案也很简单,将mcpo服务配置成https,完美解决了这个问题。

结语

总的来说,mcpo提供了一种简单方便的方式来将mcp工具转换为OpenAPI兼容的HTTP服务器,让其融入open-webui中使用。虽然目前还存在一些小问题,但这些都不影响其在open-webui中的使用。随着open-webui的持续更新和完善,相信这些问题很快就会得到解决,让我们能够更好地利用mcp生态中的各种工具。

相关推荐
冰糖猕猴桃1 天前
【AI】把“大杂烩抽取”拆成多步推理:一个从单提示到多阶段管线的实践案例
大数据·人工智能·ai·提示词·多步推理
PPIO派欧云1 天前
PPIO上线GLM-OCR:0.9B参数SOTA性能,支持一键部署
人工智能·ai·大模型·ocr·智谱
金融RPA机器人丨实在智能1 天前
2026动态规划新风向:实在智能Agent如何以自适应逻辑重构企业效率?
算法·ai·重构·动态规划
哥布林学者1 天前
吴恩达深度学习课程:深度学习入门笔记全集目录
深度学习·ai
带刺的坐椅1 天前
用 10 行 Java8 代码,开发一个自己的 ClaudeCodeCLI?你信吗?
java·ai·llm·agent·solon·mcp·claudecode·skills
程序设计实验室1 天前
Windows + AMD 显卡,终于能用 PyTorch 炼丹了
ai
CoderJia程序员甲1 天前
GitHub 热榜项目 - 日榜(2026-02-05)
ai·开源·大模型·github·ai教程
GJGCY1 天前
2026主流智能体平台技术路线差异,各大平台稳定性与集成能力对比
人工智能·经验分享·ai·智能体
acai_polo1 天前
如何在国内合规、稳定地使用GPT/Claude/Gemini API?中转服务全解析
人工智能·gpt·ai·语言模型·ai作画
阿杰学AI1 天前
AI核心知识86——大语言模型之 Superalignment(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·超级对齐·superalignment·#ai安全