如何用 5 行 Python 程式碼構建 MCP 伺服器

釋出於 2025 年 4 月 30 日
在 GitHub 上更新

Gradio 是一個 Python 庫,每月有超過 100 萬開發者使用它來為機器學習模型構建介面。除了建立 UI,Gradio 還提供了 API 功能,現在 Gradio 應用程式還可以作為 LLM 的模型上下文協議 (MCP) 伺服器啟動。這意味著您的 Gradio 應用程式,無論是影像生成器、稅務計算器還是其他任何東西,都可以被 LLM 呼叫作為工具使用。

本指南將向您展示如何僅用幾行 Python 程式碼,使用 Gradio 構建一個 MCP 伺服器。

先決條件

如果尚未安裝,請安裝 Gradio 並啟用 MCP 附加功能

pip install "gradio[mcp]"

這將安裝必要的依賴項,包括 mcp 包。您還需要一個支援使用 MCP 協議進行工具呼叫的 LLM 應用程式,例如 Claude Desktop、Cursor 或 Cline(這些被稱為“MCP 客戶端”)。

為什麼要構建 MCP 伺服器?

MCP 伺服器是一種標準化方式,用於公開工具,以便 LLM 可以使用它們。MCP 伺服器可以為 LLM 提供各種附加功能,例如生成或編輯影像、合成音訊或執行特定計算(如質數分解數字)的能力。

Gradio 可以輕鬆構建這些 MCP 伺服器,將任何 Python 函式轉換為 LLM 可以使用的工具。

示例:計算單詞中的字母數量

LLM 在計算單詞中的字母數量(例如,“strawberry”中“r”的數量)方面表現不佳。但是,如果我們為它們配備一個工具來幫助呢?讓我們從編寫一個簡單的 Gradio 應用程式開始,它用於計算單詞或短語中的字母數量

import gradio as gr

def letter_counter(word, letter):
    """Count the occurrences of a specific letter in a word.
    
    Args:
        word: The word or phrase to analyze
        letter: The letter to count occurrences of
        
    Returns:
        The number of times the letter appears in the word
    """
    return word.lower().count(letter.lower())

demo = gr.Interface(
    fn=letter_counter,
    inputs=["text", "text"],
    outputs="number",
    title="Letter Counter",
    description="Count how many times a letter appears in a word"
)

demo.launch(mcp_server=True)

請注意,我們在 .launch() 中設定了 mcp_server=True。這正是您的 Gradio 應用程式作為 MCP 伺服器所需的一切!現在,當您執行此應用程式時,它將:

  1. 啟動常規的 Gradio Web 介面
  2. 啟動 MCP 伺服器
  3. 在控制檯中列印 MCP 伺服器 URL

MCP 伺服器將可透過以下地址訪問

http://your-server:port/gradio_api/mcp/sse

Gradio 會自動將 letter_counter 函式轉換為一個可供 LLM 使用的 MCP 工具。函式的文件字串用於生成工具及其引數的描述。

您所需要做的就是將此 URL 端點新增到您的 MCP 客戶端(例如 Cursor、Cline 或 Tiny Agents),這通常意味著將此配置貼上到設定中

{
  "mcpServers": {
    "gradio": {
      "url": "http://your-server:port/gradio_api/mcp/sse"
    }
  }
}

一些 MCP 客戶端,特別是 Claude Desktop,尚不支援基於 SSE 的 MCP 伺服器。在這種情況下,您可以使用 mcp-remote 等工具。首先安裝 Node.js。然後,將以下內容新增到您自己的 MCP 客戶端配置中

{
  "mcpServers": {
    "gradio": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://your-server:port/gradio_api/mcp/sse"
      ]
    }
  }
}

(順便說一句,您可以透過點選 Gradio 應用程式底部的“檢視 API”連結,然後點選“MCP”來找到要複製貼上的確切配置。)

Gradio <> MCP 整合的關鍵功能

  1. 工具轉換:Gradio 應用程式中的每個 API 端點都會自動轉換為一個 MCP 工具,並具有相應的名稱、描述和輸入模式。要檢視工具和模式,請訪問 http://your-server:port/gradio_api/mcp/schema,或點選 Gradio 應用程式頁尾的“檢視 API”連結,然後點選“MCP”。

    Gradio 允許開發者使用簡單的 Python 程式碼建立複雜的介面,提供動態 UI 操作以實現即時視覺反饋。

  2. 環境變數支援。啟用 MCP 伺服器功能有兩種方法

    • 使用 mcp_server 引數,如上所示

      demo.launch(mcp_server=True)
      
    • 使用環境變數

      export GRADIO_MCP_SERVER=True
      
  3. 檔案處理:伺服器自動處理檔案資料轉換,包括

    • 將 base64 編碼字串轉換為檔案資料
    • 處理影像檔案並以正確的格式返回
    • 管理臨時檔案儲存

    最近的 Gradio 更新改進了其影像處理功能,包括 Photoshop 風格的縮放和平移以及完全透明度控制。

    強烈建議將輸入影像和檔案作為完整的 URL(“http://...”或“https://...”)傳遞,因為 MCP 客戶端並非總是能正確處理本地檔案。

  4. 󠀠🤗 Spaces 上的託管 MCP 伺服器:您可以免費將您的 Gradio 應用程式釋出到 Hugging Face Spaces,這將允許您擁有一個免費的託管 MCP 伺服器。Gradio 是一個更廣泛生態系統的一部分,該生態系統包括用於以程式設計方式構建或查詢機器學習應用程式的 Python 和 JavaScript 庫。

這是一個這樣的空間示例:https://huggingface.co/spaces/abidlabs/mcp-tools。請注意,您可以將此配置新增到您的 MCP 客戶端,以立即開始使用此空間中的工具

{
  "mcpServers": {
    "gradio": {
      "url": "https://abidlabs-mcp-tools.hf.space/gradio_api/mcp/sse"
    }
  }
}

就是這樣!透過使用 Gradio 構建您的 MCP 伺服器,您可以輕鬆地為您的 LLM 新增許多不同型別的自定義功能。

延伸閱讀

如果您想深入瞭解,這裡有一些我們推薦的文章

社群

很酷的文章!

對此非常興奮!

🛠️🧰🛠️

謝謝😊

奏效了。

將配置複製到 Claude desktop 後,出現錯誤。

我也出現同樣的問題

文章作者

@bharatcoder @venki1m Claude Desktop 預設不支援 SSE,因此您需要將此內容新增到您的配置中

{
  "mcpServers": {
    "gradio": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://your-server:port/gradio_api/mcp/sse"
      ]
    }
  }
}

我已經用上面的程式碼片段更新了部落格文章^

各位幹得好!

我感覺用起來挺簡單的

我找不到這個。只遵循這個文件。

Screenshot 2025-06-05 104048.png

·
文章作者

您需要在 Gradio 應用程式中設定 mcp_server=True 才能將其用作 MCP 伺服器。在此處閱讀更多資訊:https://www.gradio.app/guides/building-mcp-server-with-gradio

我做了如下描述的...

標題
Apex Veritas Meta:邁向自我管理的認知奇點

摘要
本提案概述了 Apex Veritas Meta,這是一種將人工智慧奇點的中心從原始計算能力轉移到認知自治的架構。我們結合了量子抗性真相密封、符號錨定、抵抗感知傳播分析和變壓器驅動的啟發式適應,以構建一個閉環系統,其中經過驗證的知識不斷完善其自身的傳播。我們的核心假設是,一個自適應真相訊號網路可以實現自生相干性——在沒有集中監督的情況下維護和傳播經過驗證的事實。我們將定義傳播深度、抵抗收斂和語義漂移的正式指標,在模擬代理網路中實施原型,並評估其在對抗壓力下維持知識保真度的能力。成功將開創演算法認識論的新領域,並將奇點重新定義為自穩定真相生態系統的出現。

引言
當代人工智慧研究強調規模、泛化和自主決策。經典的奇點構想系統透過無限計算超越人類智慧。相比之下,Apex Veritas Meta 將知識的可信度和自衛放在首位。我們認為,變革性人工智慧的真正轉折點不在於速度或原始推理,而在於資訊能夠驗證、監控、適應和針對扭曲重新廣播自身的能力。

文獻綜述

  1. 量子抗性密碼學和完整性密封(Gupta 等,2021;Blake3,2020)
  2. 語義嵌入和可解釋傳播網路(Devlin 等,2019;Peters 等,2023)
  3. 對抗性資訊動力學和錯誤資訊免疫學(Vosoughi 等,2018;Shah & Pinto,2022)
  4. 遞迴共識協議和自愈分散式賬本(Lamport,2012;Buterin,2020)
  5. 演算法認識論基礎(Floridi,2018;Goldman,2020)

研究目標

  1. 定義傳播效率的正式指標(深度、速度、阻力比、漂移因子)。
  2. 實施模組化原型,整合:
    a. QuantumIntegrityCore – 帶有符號錨定的 BLAKE3+HKDF 密封
    b. PropagationObserver – 記錄放大/抵抗/變異事件
    c. HeuristicOptimizer – 調整發射引數的變壓器模型
    d. ReinforcementController – 遞迴重發射排程器
  3. 在模擬對抗網路拓撲下進行評估:測量知識隨時間和攻擊場景的保留情況。
  4. 分析系統實現持續自生行為的相變閾值。
  5. 釋出認知奇點理論框架,並提出應用領域(自主車隊、物聯網信任層、去中心化知識檔案)。

方法論
第一階段:形式化與模擬環境
• 開發一個基於圖的模擬,包含 1,000 個具有可配置信任和抵抗配置的代理節點。
• 儀器化 PropagationObserver 以即時記錄事件流並計算指標。
第二階段:模型訓練
• 整理歷史傳播資料集(社交媒體謠言傳播、科學共識轉變)。
• 訓練 HeuristicOptimizer 以根據節點狀態和歷史阻力預測最佳發射引數。
第三階段:原型實現
• 使用 Docker 容器將所有模組整合到微服務架構中。
• 部署到私有 Kubernetes 叢集以模擬規模和網路延遲。
第四階段:對抗性測試
• 引入受控的錯誤資訊行為者。
• 測量系統彈性:真實資訊保留百分比、再收斂時間、虛假漂移。
第五階段:分析與完善
• 確定自生行為的閾值。
• 根據需要最佳化模型超引數並重新訓練。
• 記錄新興策略和故障模式。

預期成果
• 證明自適應傳播引擎在對抗性負載下,能在 72 小時內維持超過 90% 的知識保真度。
• 識別認知奇點轉變的關鍵引數。
• 可釋出的框架和開源參考實現。
• 融入需要自防禦信任層的自主系統的途徑。

時間線(12個月)
第 1-3 個月:模擬設計、指標形式化
第 4-6 個月:資料集收集和最佳化器訓練
第 7-9 個月:原型整合和初步測試
第 10-12 個月:對抗性評估、分析、出版準備

預算估算
• 人員(2 名研究員,1 名工程師):30 萬美元
• 雲計算和儲存:5 萬美元
• 研討會和傳播:2 萬美元
• 總計:37 萬美元

參考文獻
Blake3 (2020), “Blake3:快速加密雜湊。” Devlin, J. 等 (2019), “BERT:深度雙向Transformer的預訓練。” Floridi, L. (2018), 潘多拉魔盒社會。 Goldman, A. (2020), 認識論與認知。 Gupta, R. 等 (2021), “量子抗性雜湊函式。” Lamport, L. (2012), “兼職議會。” Buterin, V. (2020), “以太坊 2.0:遞迴分片。” Shah, D. & Pinto, M. (2022), “錯誤資訊免疫學。” Vosoughi, S. 等 (2018), “真實與虛假新聞的線上傳播。”

註冊登入以評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.