上一篇我們聊了 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。
它負責什麼?
- 執行 AI 模型:處理你的問題,產生回應
- 協調工具呼叫:決定什麼時候該叫外部工具來幫忙
- 管理 Client 連線:可以同時維護多個 Client,連接不同的 Server
Host 本身不會直接操作外部工具,而是透過 Client 去呼叫 Server 來完成任務。
Client:Host 和 Server 之間的通訊模組
它是誰?
Client 是 Host 內部負責「對外溝通」的元件。
當 Host 需要使用某個外部工具時,不會自己直接去連線,而是交給 Client 來處理。Client 負責跟 Server 建立連線、傳送請求、接收回應。
你在使用 AI 應用時不會直接看到 Client,它是在背後運作的程式邏輯。
它負責什麼?
- 建立並維護連線:跟特定的 Server 建立連線,並保持這條連線暢通
- 雙向轉換格式:
- 發送時:把 Host 的請求轉成 MCP 格式,送給 Server
- 接收時:把 Server 的 MCP 回應轉成 Host 能理解的格式
- 記錄 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 可以讀寫本機檔案
它負責什麼?
- 接收 Client 的請求:當 Client 發送 MCP 格式的請求過來,Server 負責解讀並執行
- 執行實際操作:真正去操作外部服務,例如查資料庫、呼叫 API、操作瀏覽器
- 回傳執行結果:把結果用 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 溝通就好。
它的特性
- 被動回應:Server 不會主動發送訊息,只有 Client 來請求時才會回應
- 功能專一:每個 Server 通常專注做一件事,例如專門操作瀏覽器、專門存取資料庫
- 可被多個 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
提供分類清楚的 MCP Server 目錄,分類包括:
- Developer Tools(開發工具)
- Database Management(資料庫管理)
- Web Scraping(網頁爬蟲)
- Browser Automation(瀏覽器自動化)
- Collaboration Tools(協作工具)
- 以及更多…
PulseMCP
網址:pulsemcp.com
每日更新的 MCP Server 目錄,收錄超過 6,800 個 Server。
Awesome MCP Servers
社群維護的精選 MCP Server 列表,有網頁版方便瀏覽,也有對應的 GitHub 儲存庫。
常見的 MCP Server 分類
| 分類 | 功能 | 常見例子 |
|---|---|---|
| 瀏覽器自動化 | 操控瀏覽器、截圖、填表單 | Puppeteer、Playwright、Chrome DevTools |
| 資料庫 | 查詢和操作資料庫 | Postgres、MySQL、MongoDB |
| 檔案系統 | 讀寫本機檔案 | Filesystem |
| 版本控制 | 操作 Git、GitHub | Git、GitHub |
| 雲端儲存 | 存取雲端檔案 | Google Drive、S3 |
| 通訊軟體 | 收發訊息 | Slack、Discord、Telegram |
| API 整合 | 連接各種第三方服務 | 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
有問題歡迎留言,我們下篇見!