MCP 入門(中):Host、Client、Server 三大角色與運作架構解析

Published December 2, 2025 by 徐培鈞
架構

上一篇我們聊了 MCP 是什麼、為什麼會出現。這篇要來拆解 MCP 架構裡最重要的三個角色:Host、Client、Server

別被這些英文名詞嚇到,其實概念很簡單。這篇會用白話的方式,讓你一次搞懂它們各自在幹嘛、怎麼合作。

搞懂這三個角色,你就掌握了 MCP 的核心邏輯!

整體運作流程

flowchart LR
    subgraph HOST[MCP HOST]
        C1[MCP Client]
        C2[MCP Client]
        C3[MCP Client]
    end

    MCP[MCP<br/>協議]

    C1 --- MCP
    C2 --- MCP
    C3 --- MCP

    MCP --- S1[MCP Server]
    MCP --- S2[MCP Server]
    MCP --- S3[MCP Server]

    S1 -->|TCP| DB[(MySQL)]
    S2 -->|NFS| FS[File System]
    S3 -->|HTTPS| NET[Internet]

重點是中間那個「MCP 協議」——不管是什麼工具、什麼 AI,大家都講同一種語言,溝通起來就順暢多了。

Host:執行 AI 並管理工具連線的程式

它是誰?

Host 是負責執行 AI 模型、並管理所有 MCP Client 連線的程式。

常見例子

  • Claude Desktop App(桌面版 Claude)
  • Claude Code CLI(命令列的 AI 編程工具)
  • Cursor、Windsurf 這類內建 AI 的編輯器
  • 你自己開發的 AI 應用

補充:Host 不一定是你看到的介面

舉個例子,如果你在 VSCode 的終端機裡執行 Claude Code CLI:

  • Claude Code CLI 才是 Host
  • VSCode 只是提供執行環境
  • 終端機只是顯示介面

關鍵在於:誰在執行 AI、誰在管理工具連線,誰就是 Host。

它負責什麼?

  1. 執行 AI 模型:處理你的問題,產生回應
  2. 協調工具呼叫:決定什麼時候該叫外部工具來幫忙
  3. 管理 Client 連線:可以同時維護多個 Client,連接不同的 Server

Host 本身不會直接操作外部工具,而是透過 Client 去呼叫 Server 來完成任務。

Client:Host 和 Server 之間的通訊模組

它是誰?

Client 是 Host 內部負責「對外溝通」的元件。

當 Host 需要使用某個外部工具時,不會自己直接去連線,而是交給 Client 來處理。Client 負責跟 Server 建立連線、傳送請求、接收回應。

你在使用 AI 應用時不會直接看到 Client,它是在背後運作的程式邏輯。

它負責什麼?

  1. 建立並維護連線:跟特定的 Server 建立連線,並保持這條連線暢通
  2. 雙向轉換格式
  • 發送時:把 Host 的請求轉成 MCP 格式,送給 Server
  • 接收時:把 Server 的 MCP 回應轉成 Host 能理解的格式
  1. 記錄 Server 的能力:連線時會先詢問這個 Server 能做哪些事,之後 Host 才知道可以呼叫什麼工具

重要觀念:一對一連線

一個 Client 只會連接一個 Server。

如果 Host 需要用到三種不同的工具,它就會建立三個 Client,各自負責一個 Server 的連線。

flowchart LR
    subgraph HOST[Claude Code CLI - Host]
        CA[Client A]
        CB[Client B]
        CC[Client C]
    end

    CA --> S1[chrome-mcp<br/>瀏覽器工具]
    CB --> S2[github-mcp<br/>GitHub 工具]
    CC --> S3[slack-mcp<br/>Slack 工具]

那「多個 Client」是什麼意思?

這裡說的多個 Client,是指多個 Client 實例(instance)

它們都是同一套程式邏輯,只是各自負責一條連線。這些都是 Host 自動處理的,你不用管。

為什麼這樣設計?

每個 Client 專心處理一個 Server 的連線,不會互相干擾,也比較好管理。

補充:Client 是通用的,不需要額外安裝

Client 就是一段「通用的通訊程式碼」,它不在乎對面的 Server 是做什麼的,反正大家都講 MCP 這個語言。

所以你不需要安裝什麼「GitHub Client」或「SQL Client」。只要 Host 支援 MCP,Client 就內建了。

Server:提供特定功能的外部工具

它是誰?

Server 是一個獨立運作的程式,專門提供某種特定功能給 AI 使用。

Server 本身不是 AI,而是 AI 可以呼叫的「工具」。它可能是操作瀏覽器的程式、存取資料庫的程式、或是連接某個網路服務的程式。

常見例子

  • chrome-mcp:讓 AI 可以操控瀏覽器、截圖、填表單
  • github-mcp:讓 AI 可以操作 GitHub,像是建 PR、看程式碼
  • slack-mcp:讓 AI 可以讀取和發送 Slack 訊息
  • database-mcp:讓 AI 可以查詢資料庫
  • filesystem-mcp:讓 AI 可以讀寫本機檔案

它負責什麼?

  1. 接收 Client 的請求:當 Client 發送 MCP 格式的請求過來,Server 負責解讀並執行
  2. 執行實際操作:真正去操作外部服務,例如查資料庫、呼叫 API、操作瀏覽器
  3. 回傳執行結果:把結果用 MCP 格式回傳給 Client

Server 和外部服務的關係

Server 是「中間層」,它一邊用 MCP 協議跟 Client 溝通,另一邊用各種方式跟實際的外部服務溝通:

flowchart LR
    C[Client] <-->|MCP 協議| S[MCP Server]
    S <-->|TCP| DB[(MySQL)]
    S <-->|HTTPS| API[外部 API]
    S <-->|檔案系統| FS[本機檔案]

舉例:database-mcp 怎麼運作?

  • 對 Client:用 MCP 格式溝通
  • 對 MySQL:用 TCP 連線、SQL 語法溝通

這樣 AI 不需要知道怎麼連 MySQL,只要知道怎麼跟 MCP Server 溝通就好。

它的特性

  1. 被動回應:Server 不會主動發送訊息,只有 Client 來請求時才會回應
  2. 功能專一:每個 Server 通常專注做一件事,例如專門操作瀏覽器、專門存取資料庫
  3. 可被多個 Client 連接:同一個 Server 可以同時服務不同的 AI 應用

來看個實際例子

假設你對 Claude 說:「幫我查資料庫裡客戶 A 的資料,然後填到網頁表單裡。」

背後發生了什麼事?

第一步:Host 接收請求

Claude Code CLI 收到你的指令,分析了一下:「嗯,這件事需要查資料庫,還要操作瀏覽器,我得找兩個幫手。」

第二步:派出 Client 去溝通

sequenceDiagram
    participant Host as Claude Code CLI
    participant C1 as Client A
    participant DB as database-mcp
    participant C2 as Client B
    participant Chrome as chrome-mcp

    Host->>C1: 查客戶 A 的資料
    C1->>DB: 請求查詢
    DB-->>C1: 回傳資料(姓名、電話、地址)
    C1-->>Host: 收到資料

    Host->>C2: 把資料填到網頁表單
    C2->>Chrome: 請求填寫表單
    Chrome-->>C2: 完成
    C2-->>Host: 填寫成功

第三步:回報結果

Claude 跟你說:「好了!我已經把客戶 A 的資料填到表單裡了。」

重點整理

整個過程你只下了一個指令,但背後 AI 調度了多個工具協同完成任務。這就是 MCP 架構厲害的地方。

去哪裡找 MCP Server?

了解了 Host、Client、Server 的概念後,你可能會問:「那我要去哪裡找可以用的 MCP Server?」

好消息是,目前已經有很多 MCP Server 目錄網站,讓你可以輕鬆找到需要的工具。

官方資源

Anthropic 官方 GitHub

網址:github.com/modelcontextprotocol/servers

這是 Anthropic 官方維護的 MCP Server 列表,包含:

  • 官方整合:Google Drive、Slack、GitHub、Git、Postgres、Puppeteer 等
  • 社群貢獻:由開發者社群維護的各種 Server

官方 Server 的品質和穩定性通常比較有保障,適合初學者入門。

第三方市集

mcp.so

網址:mcp.so

目前收錄超過 17,000 個 MCP Server,是規模最大的第三方市集。你可以依照功能分類瀏覽,也可以直接搜尋關鍵字。

MCP Market

網址:mcpmarket.com

提供分類清楚的 MCP Server 目錄,分類包括:

  • Developer Tools(開發工具)
  • Database Management(資料庫管理)
  • Web Scraping(網頁爬蟲)
  • Browser Automation(瀏覽器自動化)
  • Collaboration Tools(協作工具)
  • 以及更多…

PulseMCP

網址:pulsemcp.com

每日更新的 MCP Server 目錄,收錄超過 6,800 個 Server。

Awesome MCP Servers

網址:mcpservers.org

社群維護的精選 MCP Server 列表,有網頁版方便瀏覽,也有對應的 GitHub 儲存庫。

常見的 MCP Server 分類

功能操控瀏覽器、截圖、填表單
常見例子Puppeteer、Playwright、Chrome DevTools
功能查詢和操作資料庫
常見例子Postgres、MySQL、MongoDB
功能讀寫本機檔案
常見例子Filesystem
功能操作 Git、GitHub
常見例子Git、GitHub
功能存取雲端檔案
常見例子Google Drive、S3
功能收發訊息
常見例子Slack、Discord、Telegram
功能連接各種第三方服務
常見例子Stripe、Notion、Airtable

總結

三個角色一句話記住

  • Host:執行 AI 並管理工具連線的程式
  • Client:Host 內部的通訊模組,負責跟特定 Server 溝通
  • Server:提供特定功能的外部工具,被 AI 呼叫來做事

它們的關係

flowchart LR
    subgraph HOST[Host]
        C1[Client]
        C2[Client]
        C3[Client]
    end

    C1 <--> S1[Server]
    C2 <--> S2[Server]
    C3 <--> S3[Server]

MCP 的核心價值

統一了 AI 和工具之間的溝通方式。

  • 工具開發者只要寫一個 MCP Server,所有支援 MCP 的 AI 都能用
  • AI 應用開發者只要支援 MCP,就能接上所有 MCP Server

下一篇預告

了解了架構,下一篇我們要動手實作:

  • 怎麼安裝和設定 MCP Server
  • MCP 訊息格式長什麼樣子
  • 自己寫一個簡單的 MCP Server

有問題歡迎留言,我們下篇見!