這是 AI 系列第四篇。建議先讀 工具呼叫——MCP 正是把「工具」標準化封裝的協定。
目錄
什麼是 MCP?
MCP(Model Context Protocol,模型上下文協定)是一套開放標準,規範「AI 應用」如何連接「外部工具與資料」。
由 Anthropic 在 2024 年底提出並開源,目標是讓各家 AI 應用與各種工具之間,有一套通用的接法。
一個比喻:AI 世界的 USB-C
沒有 USB-C 前:每個裝置都有自己的接頭,充電線一大堆
有了 USB-C 後:一個標準接口,什麼裝置都能插
沒有 MCP 前:每個 AI 應用接每個工具都要客製
有了 MCP 後:工具做成「MCP server」,任何支援 MCP 的應用都能用
💡 一句話:MCP 是「AI 應用」與「工具/資料」之間的通用插槽。 工具方只要實作一次 MCP server,所有支援 MCP 的 AI 應用(如 Claude Code、Claude 桌面版等)都能直接使用。
為什麼需要 MCP
回顧 工具呼叫:要讓 LLM 用工具,得幫每個工具寫定義、寫串接。問題是——每個 AI 應用、每個工具,兩兩之間都要客製一次。
N×M 問題
工具A 工具B 工具C 工具D
應用1 ✎ ✎ ✎ ✎
應用2 ✎ ✎ ✎ ✎
應用3 ✎ ✎ ✎ ✎
3 個應用 × 4 個工具 = 12 套客製串接(每個 ✎ 都要各寫一次)
應用變多、工具變多,要寫的串接是「相乘」成長,沒人維護得來。
MCP 怎麼解
把它變成「加法」:每個工具只要做一個標準的 MCP server,每個應用只要實作一次 MCP client。
MCP 標準介面
應用1 ──┐ ┌── 工具A (MCP server)
應用2 ──┼─ MCP ──┼── 工具B (MCP server)
應用3 ──┘ └── 工具C (MCP server)
工具方寫 1 次 server,應用方寫 1 次 client → N + M,不再是 N × M
好處:
- 工具方:實作一次,所有 MCP 應用都能用。
- 應用方:支援 MCP 一次,整個 MCP 生態的工具都能接。
- 使用者:像裝外掛一樣,把需要的 MCP server 接上即可。
MCP 架構
MCP 採用 Client–Server 架構,有三個角色:
| 角色 | 是誰 | 負責什麼 |
|---|---|---|
| Host(宿主) | AI 應用本身(Claude Code、桌面版…) | 管理 LLM、決定要連哪些 server |
| Client(客戶端) | Host 內部,每個 server 配一個 | 負責跟某一個 server 溝通 |
| Server(伺服器) | 工具/資料的提供方 | 對外提供工具、資料、提示等能力 |
重點
- 一個 Host 可以同時連多個 MCP server(一個接檔案、一個接資料庫、一個接 GitHub…)。
- Client 與 Server 是一對一:每個 server 由一個專屬的 client 負責溝通。
- LLM 透過 Host 看到所有 server 提供的能力,再依 工具呼叫 的方式去用。
三種能力:Tools / Resources / Prompts
MCP server 可以對外提供三種東西(稱為 primitives):
| 能力 | 是什麼 | 誰主導使用 | 類比 |
|---|---|---|---|
| Tools(工具) | 可被「執行」的功能 | 模型自己決定呼叫 | 動詞:查、寫、跑 |
| Resources(資源) | 可被「讀取」的資料 | 應用/使用者提供給模型 | 名詞:檔案、資料 |
| Prompts(提示範本) | 預先寫好的提示樣板 | 使用者主動選用 | 範本:一鍵套用 |
1. Tools(工具)— 可執行的動作
跟第三篇講的 Function Calling 一樣,是模型可以主動呼叫的功能。例如:「執行 SQL 查詢」「建立 GitHub issue」。由模型判斷何時呼叫。
2. Resources(資源)— 可讀取的資料
server 對外暴露的唯讀資料,例如某個檔案的內容、資料庫的某筆紀錄。它比較像「把資料提供給模型參考」,通常由應用或使用者決定要把哪些資源放進上下文。
3. Prompts(提示範本)— 預設的提示樣板
server 預先準備好的提示模板,讓使用者一鍵套用常見任務。例如一個「程式碼審查」prompt 範本,使用者選了它,就自動帶入一套寫好的指示。通常由使用者主動觸發。
💡 簡單記:Tools 給模型用(執行)、Resources 給模型看(資料)、Prompts 給使用者選(範本)。
傳輸方式
MCP 定義了 client 與 server 之間怎麼傳訊息,主要兩種:
| 傳輸方式 | 適用情境 | 特點 |
|---|---|---|
| stdio(標準輸入輸出) | server 在本機,與應用在同一台電腦 | server 是本地程式,透過標準輸入輸出溝通,簡單、低延遲 |
| HTTP / SSE | server 在遠端,透過網路連線 | 適合雲端服務、共用的 server,能跨機器存取 |
本機工具(讀本地檔案、跑本地指令)→ stdio
遠端服務(雲端 API、團隊共用 server)→ HTTP / SSE
重點
- stdio:最常見於本機工具。例如一個讀寫本地檔案的 MCP server,就跑在使用者電腦上,透過 stdio 跟 AI 應用溝通。
- HTTP/SSE:當 server 部署在遠端、要多人或跨機器使用時採用。
實戰範例
一個檔案系統 MCP server 提供什麼
假設有個「檔案系統」MCP server,它可能對外提供:
Tools(可執行):
- read_file(path) 讀取檔案內容
- write_file(path, content) 寫入檔案
- list_directory(path) 列出目錄
Resources(可讀資料):
- 把某些設定檔暴露成可讀資源
Prompts(範本):
- 「整理這個目錄的程式碼風格」範本
從使用者到工具的完整路徑
使用者向一個支援 MCP 的 AI 應用(如 Claude Code)問:「把 config.js 裡的測試帳號移除」
│
▼
Host(該 AI 應用)把任務交給 LLM,並附上可用的 MCP 工具清單
│
▼
LLM 決定呼叫 read_file(path="config.js") ← Function Calling
│
▼
對應的 MCP Client 透過 stdio 把請求送給檔案系統 MCP Server
│
▼
Server 讀檔,把內容回傳 → Client → Host → 塞回 LLM 上下文
│
▼
LLM 看到內容,決定下一步 write_file(...) ← 進入下一圈 Agent Loop
可以看到:MCP 並沒有取代 Function Calling,而是幫它把工具標準化、可插拔。
與 Function Calling 的關係
這是最容易混淆的地方,一張表說清楚:
| Function Calling | MCP | |
|---|---|---|
| 是什麼 | LLM 呼叫工具的機制 | 工具如何被提供與連接的標準 |
| 解決的問題 | 「模型怎麼用工具」 | 「工具怎麼被標準化、跨應用共用」 |
| 層級 | 模型與工具的互動方式 | 應用與工具之間的協定 |
| 關係 | MCP server 提供的 Tools,最終還是透過 Function Calling 被模型呼叫 | MCP 是 Function Calling 的「外送平台」 |
用比喻理解
Function Calling = 你會「點餐」這個動作
MCP = 一套標準的「外送平台」,讓任何餐廳都能上架、任何 App 都能點
你還是用「點餐」這個動作,但 MCP 讓你能點到所有上架餐廳的菜,
而不必為每家餐廳裝一個專屬 App。
結論:MCP 不取代 Function Calling,而是讓工具的提供與接入變標準化。 模型用工具的方式沒變,變的是「工具從哪來、怎麼接」。
常見問題
問題 1:MCP 和 Function Calling 到底差在哪?
Function Calling 是「模型呼叫工具」的機制;MCP 是「工具如何被提供、如何跨應用連接」的標準。MCP server 提供的工具,最終仍是透過 Function Calling 被模型呼叫。一個是動作,一個是接線標準。
問題 2:MCP 是 Anthropic 專屬的嗎?
不是。MCP 是 Anthropic 提出並開源的開放標準,任何 AI 應用、任何工具方都能實作,不綁定特定廠商。
問題 3:我要用 MCP 一定要會寫程式嗎?
用現成的 MCP server 通常只要在應用設定裡「掛上去」即可(像裝外掛)。要自己做一個 server 才需要寫程式,去實作它提供哪些 Tools / Resources / Prompts。
問題 4:stdio 和 HTTP/SSE 怎麼選?
server 跟應用在同一台機器、處理本地資源 → 用 stdio。server 在遠端、要跨機器或多人共用 → 用 HTTP/SSE。
總結
核心要點
MCP = AI 世界的 USB-C,工具與資料連接的開放標準
關鍵認知:
├─ 解決 N×M 問題:工具做一次 server,所有應用都能用
├─ 架構:Host(應用)→ Client → Server(工具方)
├─ 三種能力:Tools(執行) / Resources(資料) / Prompts(範本)
├─ 傳輸:本機用 stdio,遠端用 HTTP/SSE
└─ 不取代 Function Calling,而是讓工具標準化、可插拔
快速記憶
| 概念 | 一句話 |
|---|---|
| MCP | 連接 AI 與工具/資料的開放標準(USB-C) |
| 解決什麼 | N×M 客製串接 → N+M 標準接入 |
| 架構 | Host → Client → Server |
| 三能力 | Tools 給模型用、Resources 給模型看、Prompts 給人選 |
| vs FC | FC 是呼叫機制,MCP 是接入標準 |
學習路徑
1. 理解 MCP 是「工具的通用插槽」 ✓
2. 看懂它解決的 N×M 問題 ✓
3. 掌握 Host/Client/Server 架構 ✓
4. 分清 Tools/Resources/Prompts 三種能力 ✓
5. 下一步 → 能力越疊越多,怎麼封裝、怎麼協作?
下一篇
👉 Skills 與進階協作:工具有了、標準有了,最後一篇談怎麼把「做某件事的整套know-how」封裝成 Skills,並用一張全景圖把 LLM、Agent、Tools、MCP、Skills 全部串起來。
建立日期:2026-06-01 最後更新:2026-06-01