LLMs之MCP:如何使用 Gradio 構建 MCP 服務器
導讀:本文詳細介紹了如何使用Gradio構建MCP服務器,包括前提條件、構建方法、關鍵特性和相關資源。通過一個簡單的字母計數示例,演示了如何將Gradio應用轉換為LLM可以使用的工具。Gradio在構建MCP服務器比較便利和靈活,開發者可以使用Gradio為LLM添加各種自定義功能。
>> Gradio 的新功能:Gradio 現在支持將應用作為 MCP 服務器啟動,使得 LLMs 能夠調用這些應用作為工具,擴展其能力。
>> 構建 MCP 服務器的簡便性:只需幾行代碼,開發者就可以將自己的 Python 函數包裝為 LLMs 可調用的工具,極大地降低了集成門檻。
>> 廣泛的適用性:無論是圖像生成、音頻合成還是數學計算,只要是 Python 函數,都可以通過 Gradio 轉換為 MCP 工具,供 LLMs 使用。
總之,Gradio 與 MCP 的集成為開發者提供了一個強大而靈活的工具,使得構建和部署可供 LLMs 使用的工具變得前所未有的簡單。
目錄
如何使用 Gradio 構建 MCP 服務器
1. 引言
2. 構建 MCP 服務器的先決條件
3. 為什么構建 MCP 服務器?
4. 示例:統計單詞中某個字母的出現次數
5. Gradio 與 MCP 集成的關鍵特性
如何使用 Gradio 構建 MCP 服務器
地址 | 文章地址:https://huggingface.co/blog/gradio-mcp |
時間 | 2025年4月30日 |
作者 | Abubakar Abid yuvraj sharma |
1. 引言
Gradio 是一個廣泛使用的 Python 庫,每月有超過 100 萬開發者使用它來構建機器學習模型的用戶界面。 除了創建 UI,Gradio 還提供 API 功能,現在更支持將 Gradio 應用作為 Model Context Protocol(MCP)服務器啟動的新功能,使得大型語言模型(LLMs)能夠調用這些應用作為工具。
>> Gradio是一個流行的Python庫,用于構建機器學習模型的接口。
>> Gradio不僅可以創建UI,還提供API功能。
>> Gradio應用現在可以作為LLM的Model Context Protocol (MCP) 服務器啟動。這意味著Gradio應用可以被LLM調用作為工具。
2. 構建 MCP 服務器的先決條件
明確了使用Gradio構建MCP服務器所需的軟件環境。要構建 MCP 服務器,需要滿足以下條件:
>> 安裝Gradio時需要包含[mcp] extra,即pip install "gradio[mcp]"。
>> 需要支持工具調用且使用MCP協議的LLM應用,例如Claude Desktop, Cursor, 或 Cline(稱為“MCP客戶端”)。
3. 為什么構建 MCP 服務器?
MCP 服務器是一種標準化的方式,用于向 LLMs 暴露工具,使其能夠執行額外的功能,如生成或編輯圖像、合成音頻或執行特定計算(例如質因數分解)。Gradio 使得構建這些 MCP 服務器變得簡單,將任何 Python 函數轉換為 LLMs 可使用的工具。
闡述了構建MCP服務器的價值和意義,強調了Gradio的便利性。
>> MCP服務器是一種標準化的方式來暴露工具,以便LLM可以使用它們。
>>MCP服務器可以為LLM提供各種額外的能力,例如生成或編輯圖像、合成音頻、執行特定計算等。
>>Gradio使得構建這些MCP服務器變得容易,將任何Python函數轉換為LLM可以使用的工具。
4. 示例:統計單詞中某個字母的出現次數
通過一個具體的例子,演示了如何使用Gradio構建MCP服務器,并提供了配置信息。LLMs 在統計單詞中某個字母的出現次數方面表現不佳。 通過為其提供一個工具,可以提升其能力。
以下是一個使用 Gradio 構建的簡單應用,用于統計單詞或短語中某個字母的出現次數:
通過設置mcp_server=True,Gradio應用就可以作為MCP服務器運行。
Gradio自動將letter_counter函數轉換為MCP工具,函數的docstring用于生成工具的描述和參數。
提供了將MCP服務器URL添加到MCP客戶端配置的示例:
import gradio as grdef letter_counter(word, letter):"""統計特定字母在單詞中的出現次數。參數:word: 要分析的單詞或短語letter: 要統計的字母返回:字母在單詞中出現的次數"""return word.lower().count(letter.lower())demo = gr.Interface(fn=letter_counter,inputs=["text", "text"],outputs="number",title="字母計數器",description="統計某個字母在單詞中出現的次數"
)demo.launch(mcp_server=True)
設置 mcp_server=True
后,Gradio 應用將:
-
啟動常規的 Gradio Web 界面
-
啟動 MCP 服務器
-
在控制臺打印 MCP 服務器的 URL
MCP 服務器將可通過以下地址訪問:http://your-server:port/gradio_api/mcp/sse
Gradio 會自動將 letter_counter
函數轉換為 LLMs 可使用的 MCP 工具。 函數的文檔字符串用于生成工具的描述及其參數信息。
只需將此 URL 端點添加到 MCP 客戶端的配置中即可,例如:
{"mcpServers": {"gradio": {"url": "http://your-server:port/gradio_api/mcp/sse"}}
}
對于尚不支持 SSE 的 MCP 客戶端(如 Claude Desktop),可以使用 mcp-remote
工具進行中轉。 首先安裝 Node.js,然后在 MCP 客戶端配置中添加以下內容:
{"mcpServers": {"gradio": {"command": "npx","args": ["mcp-remote","http://your-server:port/gradio_api/mcp/sse"]}}
}
此外,可以通過 Gradio 應用底部的 "View API" 鏈接,點擊 "MCP" 查看確切的配置。
5. Gradio 與 MCP 集成的關鍵特性
詳細介紹了Gradio <> MCP集成的關鍵特性,包括工具轉換、環境變量支持、文件處理和托管服務器。
>> 工具轉換:Gradio 應用中的每個 API 端點都會自動轉換為具有相應名稱、描述和輸入模式的 MCP 工具。 可以通過訪問 http://your-server:port/gradio_api/mcp/schema 或 Gradio 應用底部的 "View API" 鏈接,點擊 "MCP" 查看工具和模式。
>> 環境 變量支持: 可以使用mcp_server參數或設置GRADIO_MCP_SERVER=True環境變量來啟用MCP服務器功能。
>> 文件處理: 服務器自動處理文件數據轉換,包括base64編碼字符串到文件數據、圖像文件處理和臨時文件存儲。
>> 托管 MCP 服務器在 �� Spaces 上: 可以將Gradio應用免費發布到Hugging Face Spaces,從而獲得免費的托管MCP服務器。
建議將輸入圖像和文件作為完整的URL傳遞("http://..." 或 "https://..."),因為MCP客戶端不總是正確處理本地文件。