🎯 什麼情境該想到我
當你想先建立 MCP 的整體心智模型——「誰跟誰連、一次連線從頭到尾怎麼跑」——再去看細節的時候。
⚙️ 怎麼用(記住三個角色+兩層+生命週期)
- 三個參與者:
- Host:AI 應用本體(Claude Code、VS Code),協調多個 client。
- Client:協定層元件,一個 client 對一個 server 維持連線;host 每連一個 server 就 new 一個 client。
- Server:提供情境/能力的程式(可本地或遠端)。
- 兩層:
- 資料層:JSON-RPC 2.0,定義訊息與語義——生命週期、原語(tools/resources/prompts)、通知。這是最該懂的一層。
- 傳輸層:實際通道——stdio 或 Streamable HTTP,處理連線建立、訊息封裝、授權(見 工具-選擇MCP傳輸方式)。
- 生命週期(一次連線怎麼開始):client 送
initialize→ 雙方做 capability negotiation(宣告支援哪些原語、是否支援listChanged通知)+協商單一 protocol 版本 → client 送notifications/initialized→ 開始互動。版本不相容就終止連線。 - 典型資料流:
initialize(握手)→tools/list(發現)→tools/call(執行)→ 需要時 server 發notifications/tools/list_changed通知 client 重新拉清單。
🧪 我實際套用的紀錄
- 2026-07-26:(待填)
⚠️ 注意 / 什麼時候不適用
- 「Server」指的是提供資料的程式,跟它跑在本地或雲端無關;別把 server 等同於「遠端服務」。
- MCP 是有狀態協定,需要生命週期管理;SDK 幫你把大部分細節抽象掉了。
🔗 相關工具
- 工具-MCP三大伺服器原語 —— 建立整體圖之後的下一層:server 端能暴露哪三類能力、怎麼分
- 工具-選擇MCP傳輸方式 —— 資料流的「管線」怎麼選:本地 stdio 還是遠端 Streamable HTTP
- 工具-建一個MCP-server的起手式 —— 心智模型建好後真正動手做的步驟