当前位置: 首页 > news >正文

借助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就可以完成启动。

uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

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

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官方时间转换的工具为例,其启动配置如下:

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,具体配置如下:

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

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

 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生态中的各种工具。

http://www.dtcms.com/a/112985.html

相关文章:

  • Oracle Cloud (OCI) 服务器最新控制台启用 IPv6 超详细图文指南(2025最新实践)
  • 2025年 能够有效提升AI的生成质量和逻辑严谨性 的通用型系统提示
  • 使用Android Studio开发基于Java+xml的安卓app之环境搭建
  • 华为:合并LLM以减少冗余推理
  • 蓝桥杯高频考点——经典01背包问题详解(附例题)
  • 前端布局难题:父元素padding导致子元素无法全屏?3种解决方案
  • $R^n$平面约束下的向量列
  • PCL学习(5)随机采样一致性算法RANSAC
  • Maven工具学习使用(七)——Maven属性
  • 从零构建大语言模型全栈开发指南:第三部分:训练与优化技术-3.1.2Tokenization策略:BPE算法与词表设计
  • 4.5蓝桥入门赛题解
  • 高级:分布式系统面试题精讲
  • ARXML文件解析-2
  • STL剖析
  • 人工智能赋能工业制造:智能制造的未来之路
  • Hash结构之购物车实战
  • 【零基础入门unity游戏开发——动画篇】unity旧动画系统Animation组件的使用
  • AntDesign下,Select内嵌Menu标签,做一个多选下拉框,既可以搜索,还可以选择下拉项
  • 【项目管理】第一部分 信息技术 1/2
  • 十道海量数据处理面试题与十个方法总结
  • 嵌入式Linux驱动—— 1 GPIO配置
  • 浙考!【触发器逻辑方程推导(电位运算)】
  • Ai提示词大师 1.0 | 预制1000+模板满足
  • 《Java实战:素数检测算法优化全解析——从暴力枚举到筛法进阶》
  • GD32H759IMT6 Cortex-M7 OpenHarmony轻量系统移植——4.1版本升级到5.0.3
  • 网络编程—TCP/IP模型(UDP协议与自定义协议)
  • Altshuller矛盾矩阵查询:基于python和streamlit
  • 哈希表(Hashtable)核心知识点详解
  • 【虚拟仪器技术】Labview虚拟仪器技术习题答案(二),设计VI程序
  • 练习题:124