MCP 課程文件

MCP 客戶端

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

MCP 客戶端

現在我們對模型上下文協議有了基本瞭解,我們可以探索 MCP 客戶端在模型上下文協議生態系統中的重要作用。

在單元 1 的這一部分,我們將探討 MCP 客戶端在模型上下文協議生態系統中的重要作用。

在本節中,您將

  • 瞭解 MCP 客戶端及其在 MCP 架構中的作用
  • 瞭解 MCP 客戶端的關鍵職責
  • 探索主要的 MCP 客戶端實現
  • 瞭解如何使用 Hugging Face 的 MCP 客戶端實現
  • 檢視 MCP 客戶端使用的實際示例

在本頁中,我們將展示如何使用 JSON 表示法以幾種不同方式設定 MCP 客戶端的示例。目前,我們將使用 示例,如 path/to/server.py 來表示 MCP 伺服器的路徑。在下一個單元中,我們將使用真實的 MCP 伺服器來實現這一點。

目前,請專注於理解 MCP 客戶端表示法。我們將在下一個單元中實現 MCP 伺服器。

理解 MCP 客戶端

MCP 客戶端是關鍵元件,充當 AI 應用程式(主機)與 MCP 伺服器提供的外部功能之間的橋樑。將主機視為您的主應用程式(如 AI 助手或 IDE),將客戶端視為該主機內負責處理 MCP 通訊的專門模組。

使用者介面客戶端

讓我們從探索 MCP 可用的使用者介面客戶端開始。

聊天介面客戶端

Anthropic 的 Claude Desktop 是最著名的 MCP 客戶端之一,它提供了與各種 MCP 伺服器的整合。

互動式開發客戶端

Cursor 的 MCP 客戶端實現透過與程式碼編輯功能的直接整合,實現了 AI 驅動的編碼輔助。它支援多個 MCP 伺服器連線,並在編碼過程中提供即時工具呼叫,使其成為開發人員的強大工具。

Continue.dev 是另一個互動式開發客戶端的例子,它支援 MCP 並從 VS Code 連線到 MCP 伺服器。

配置 MCP 客戶端

現在我們已經涵蓋了 MCP 協議的核心內容,接下來我們來看看如何配置 MCP 伺服器和客戶端。

有效部署 MCP 伺服器和客戶端需要正確的配置。

MCP 規範仍在不斷發展,因此配置方法也會隨之演變。我們將重點介紹當前的最佳配置實踐。

MCP 配置檔案

MCP 主機使用配置檔案來管理伺服器連線。這些檔案定義了哪些伺服器可用以及如何連線到它們。

幸運的是,配置檔案非常簡單,易於理解,並且在主要的 MCP 主機中保持一致。

mcp.json 結構

MCP 的標準配置檔名為 mcp.json。以下是其基本結構

這是 mcp.json 的基本結構,可以傳遞給 Claude Desktop、Cursor 或 VS Code 等應用程式。

{
  "servers": [
    {
      "name": "Server Name",
      "transport": {
        "type": "stdio|sse",
        // Transport-specific configuration
      }
    }
  ]
}

在此示例中,我們有一個具有名稱和傳輸型別的伺服器。傳輸型別可以是 stdiosse

stdio 傳輸配置

對於使用 stdio 傳輸的本地伺服器,配置包括啟動伺服器程序的命令和引數

{
  "servers": [
    {
      "name": "File Explorer",
      "transport": {
        "type": "stdio",
        "command": "python",
        "args": ["/path/to/file_explorer_server.py"] // This is an example, we'll use a real server in the next unit
      }
    }
  ]
}

這裡,我們有一個名為“檔案瀏覽器”的伺服器,它是一個本地指令碼。

HTTP+SSE 傳輸配置

對於使用 HTTP+SSE 傳輸的遠端伺服器,配置包括伺服器 URL

{
  "servers": [
    {
      "name": "Remote API Server",
      "transport": {
        "type": "sse",
        "url": "https://example.com/mcp-server"
      }
    }
  ]
}

配置中的環境變數

可以使用 env 欄位將環境變數傳遞給伺服器程序。以下是如何在伺服器程式碼中訪問它們的方法

Python
JavaScript

在 Python 中,我們使用 os 模組訪問環境變數

import os

# Access environment variables
github_token = os.environ.get("GITHUB_TOKEN")
if not github_token:
    raise ValueError("GITHUB_TOKEN environment variable is required")

# Use the token in your server code
def make_github_request():
    headers = {"Authorization": f"Bearer {github_token}"}
    # ... rest of your code

mcp.json 中的相應配置將如下所示

{
  "servers": [
    {
      "name": "GitHub API",
      "transport": {
        "type": "stdio",
        "command": "python",
        "args": ["/path/to/github_server.py"], // This is an example, we'll use a real server in the next unit
        "env": {
          "GITHUB_TOKEN": "your_github_token"
        }
      }
    }
  ]
}

配置示例

讓我們看一些實際的配置場景

場景 1:本地伺服器配置

在此場景中,我們有一個本地伺服器,它是一個 Python 指令碼,可以是一個檔案瀏覽器或一個程式碼編輯器。

{
  "servers": [
    {
      "name": "File Explorer",
      "transport": {
        "type": "stdio",
        "command": "python",
        "args": ["/path/to/file_explorer_server.py"] // This is an example, we'll use a real server in the next unit
      }
    }
  ]
}

場景 2:遠端伺服器配置

在此場景中,我們有一個遠端伺服器,它是一個天氣 API。

{
  "servers": [
    {
      "name": "Weather API",
      "transport": {
        "type": "sse",
        "url": "https://example.com/mcp-server" // This is an example, we'll use a real server in the next unit
      }
    }
  ]
}

正確的配置對於成功部署 MCP 整合至關重要。透過理解這些方面,您可以在 AI 應用程式和外部功能之間建立健壯可靠的連線。

在下一節中,我們將探索 Hugging Face Hub 上可用的 MCP 伺服器生態系統,以及如何將您自己的伺服器釋出到那裡。

微型代理客戶端

現在,讓我們探討如何在程式碼中使用 MCP 客戶端。

您還可以使用微型代理作為 MCP 客戶端,直接從程式碼連線到 MCP 伺服器。微型代理提供了一種簡單的方法來建立可以使用 MCP 伺服器工具的 AI 代理。

微型代理可以透過命令列環境執行 MCP 伺服器。為此,我們需要安裝 npm 並使用 npx 執行伺服器。Python 和 JavaScript 都需要這些。

讓我們使用 npm 安裝 npx。如果您沒有安裝 npm,請檢視 npm 文件

設定

首先,如果您沒有安裝 npx,則需要安裝它。您可以使用以下命令進行安裝

# install npx
npm install -g npx

然後,我們需要安裝支援 MCP 的 huggingface_hub 包。這將允許我們執行 MCP 伺服器和客戶端。

pip install "huggingface_hub[mcp]>=0.32.0"

然後,我們需要登入到 Hugging Face Hub 才能訪問 MCP 伺服器。您可以使用 huggingface-cli 命令列工具完成此操作。您需要一個登入令牌才能執行此操作。

huggingface-cli login
Python
JavaScript

連線到 MCP 伺服器

現在,讓我們建立一個代理配置檔案 agent.json

{
    "model": "Qwen/Qwen2.5-72B-Instruct",
    "provider": "nebius",
    "servers": [
        {
            "type": "stdio",
            "config": {
                "command": "npx",
                "args": ["@playwright/mcp@latest"]
            }
        }
    ]
}

在此配置中,我們正在使用 @playwright/mcp MCP 伺服器。這是一個可以使用 Playwright 控制瀏覽器的 MCP 伺服器。

現在您可以執行代理

tiny-agents run agent.json

在下面的影片中,我們執行代理並要求它在瀏覽器中開啟一個新標籤頁。

以下示例展示了一個網路瀏覽代理,它配置為透過 Nebius 推理提供商使用 Qwen/Qwen2.5-72B-Instruct 模型,並且它配備了一個 Playwright MCP 伺服器,使其能夠使用網路瀏覽器!代理配置透過指定其在 tiny-agents/tiny-agents Hugging Face 資料集中的路徑進行載入。

當您執行代理時,您將看到它載入,列出它從連線的 MCP 伺服器中發現的工具。然後,它已準備好接收您的提示!

此演示中使用的提示

在 Brave 搜尋上進行 HF 推理提供商的網路搜尋並開啟第一個結果,然後給我 Hugging Face 支援的推理提供商列表

下一步

現在您已經瞭解了 MCP 客戶端,您可以

  • 探索特定的 MCP 伺服器實現
  • 瞭解如何建立自定義 MCP 客戶端
  • 深入研究高階 MCP 整合模式

讓我們繼續我們探索模型上下文協議世界的旅程!

< > 在 GitHub 上更新

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