借助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.pswp.cn/diannao/76888.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76888.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76888.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安裝gpu版本的dgl

1.先去網址,找到對應版本的dgl,然后下載到本地。 dgl-whl下載地址 我的是python 3.8 ,cuda 11.6. windows 2.在虛擬環境里 輸入 pip install E:\dgl-1.0.2cu116-cp38-cp38-win_amd64.whl (因為我下載到E盤里了) 這樣GPU版本的d…

PyTorch使用(7)-張量常見運算函數

1. 基本數學運算 1.1 平方根和冪運算 import torchx torch.tensor([4.0, 9.0, 16.0])# 平方根 sqrt_x torch.sqrt(x) # tensor([2., 3., 4.])# 平方 square_x torch.square(x) # tensor([16., 81., 256.])# 任意冪次 pow_x torch.pow(x, 3) # tensor([64., 729., 4096…

Nginx功能及應用全解:從負載均衡到反向代理的全面剖析

Nginx作為一款開源的高性能HTTP服務器和反向代理服務器,憑借其高效的資源利用率和靈活的配置方式,已成為互聯網領域中最受歡迎的Web服務器之一。無論是作為HTTP服務器、負載均衡器,還是作為反向代理和緩存服務器,Nginx的多種功能廣…

安徽京準:NTP時間同步服務器操作使用說明

安徽京準:NTP時間同步服務器操作使用說明 3.1 連接天線 天線連接到“ANT”口。 3.2 連接電源 將220V電源線連到AC220V座上或將電源適配器(7.5V~12V)接到DC口上。也可以同時接上,提高供電可靠性。 3.3 LAN網口 網線連接到NTP…

Java項目之基于ssm的懷舊唱片售賣系統(源碼+文檔)

項目簡介 懷舊唱片售賣系統實現了以下功能: 用戶信息管理: 用戶信息新增:添加新用戶的信息。 用戶信息修改:對現有用戶信息進行修改。 商品信息管理: 商品信息添加:增加新的商品(唱片&#x…

基于 Python 的自然語言處理系列(70):檢索增強生成(RAG)

1. 什么是 RAG? 在許多大模型(LLM)應用場景中,我們需要使用特定的用戶數據,而這些數據并未包含在模型的訓練集中。檢索增強生成(Retrieval Augmented Generation,RAG)是一種有效的解…

CAD插件實現:所有文字顯示到列表、縮放、編輯——CAD-c#二次開發

當圖中有大量文字,需要全部顯示到一個列表時并縮放到需要的文字時,可采用插件實現,效果如下: 附部分代碼如下: private void BtnSelectText_Click(object sender, EventArgs e){var doc Application.DocumentManager.…

Systemd構建自動化備份服務與外部存儲管理

實訓背景 你是一家數據公司的系統管理員,需設計一套自動化備份系統,滿足以下需求: 定期備份:每周日凌晨1點將 /data 目錄壓縮備份到 /backups。外部存儲掛載:插入USB設備時自動掛載到 /mnt/usb,并觸發增量…

PostgreSQL中根據另一表的值來更新一個字段

UPDATE table1 SET value t2.new_value FROM table2 t2 WHERE table1.id t2.reference_id; 解釋 UPDATE table1:指定要更新的表,不要用別名。 SET value t2.new_value:設置要更新的字段及其新值,這里新值來自 table2。也可更…

#SVA語法滴水穿石# (000)斷言基本概念和背景

一、前言 隨著數字電路規模越來越大、設計越來越復雜,使得對設計的功能驗證越來越重要。首先,我們要明白為什么要對設計進行驗證?驗證有什么作用?例如,在用FPGA進行設計時,我們并不能確保設計出來的東西沒有功能上的漏洞,因此在設計后我們都會對其進行驗證仿真。換句話說…

Git 從入門到精通(開源協作特別版)

🧠 Git 從入門到精通(開源協作特別版) ? 基礎命令 🧰 高級用法 🛠? 開源實戰技巧 🌍 GitHub 社區協作 適合:從0開始 → 熟練開發者 → 參與/維護開源項目 🔰 第1章:…

【SQL】取消sql某一列的唯一值key值的方法

在插入數據到sql時,遇到了這個問題: Duplicate entry ‘XXX’ for key 起因是: 我之前設計表的時候,手動給product_title 這個列加了一個key, key 是這個字段的唯一鍵約束,就不能重復在這一列存入重復的數…

【小沐學Web3D】three.js 加載三維模型(React Three Fiber)

文章目錄 1、簡介1.1 Three.js1.2 React Three Fiber 2、測試2.1 初始化環境2.2 app.js修改(顯示內置立方體)2.3 app.js修改(顯示內置球體)2.4 app.js修改(顯示自定義立方體)2.5 app.js修改(顯示…

本地部署 Firecrawl 爬蟲讓 AI 知識庫更豐滿

https://www.firecrawl.dev/ firecrawl-logo-with-fire.png 什么是Firecrawl Firecrawl 是一款 可以將網站轉換為 便于AI處理的Markdown 格式的爬蟲工具 ,主要 提供 API 服務 ,無需站點地圖,只需要接收一個 URL 地址就可以爬取網站及網站下可…

純個人整理,藍橋杯使用的算法模板day2(0-1背包問題),手打個人理解注釋,超全面,且均已驗證成功(附帶詳細手寫“模擬流程圖”,全網首個

算法索引 01背包優化前空間優化版(使用一維數組)優化后的模擬流程圖為何優化后,j不能使用正序遍歷模擬流程圖 代碼對應實現案例 01背包 優化前 /*** 0-1背包問題解法(與下方代碼表格示例對應,已模擬驗證)*…

APang網聯科技項目報告【服務器篇】

APang網聯科技:連接未來,智能領航 公司簡介 APang網聯科技成立于 [2005年],總部位于 [廣東深圳],是一家集網絡技術研發、系統集成、項目實施與運維服務為一體的高新技術企業。我們致力于為客戶提供全方位、定制化的網絡部署解決…

Scade One - 將MBD技術從少數高安全領域向更廣泛的安全嵌入式軟件普及

Scade One是繼Scade Suite version 6自2008年起發展近20年后的首次主要改進版本。在Scade One發布的同時,Scade團隊發布了一系列介紹Scade One的博客。本篇Scade One - Democratizing model-based development是其中的一部分。在后面的內容中,將復述博客…

Word在生成PDF后,PDF左側導航書簽目錄錯誤顯示的解決方法

1、打開要轉換的word文件,點擊“開始”,“另存為” 2、保存在本地時,在“保存類型”的下拉列表中選擇“PDF(*.pdf)” 3、選擇完保存類型后,點擊“選項”按鈕 4、在彈出的“選項”框中,選擇“創建…

Windows系統服務器安裝Office Online Server

服務器配置 配置參數OSThe 64-bit edition of Windows Server 2016CPU4RAM8GNetwork開啟Hard disk80GPort80, 443, 809 執行命令 PowerShell中添加Windows服務: Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,…

【小沐學Web3D】three.js 加載三維模型(Angular)

文章目錄 1、簡介1.1 three.js1.2 angular.js 2、three.js Angular.js結語 1、簡介 1.1 three.js Three.js 是一款 webGL(3D繪圖標準)引擎,可以運行于所有支持 webGL 的瀏覽器。Three.js 封裝了 webGL 底層的 API ,為我們提供了…