MCP 是插口,不是智慧
伺服器替 Agent 增加的是能力:能查天氣、能寫日曆。模型本身一點也沒有變聰明——它看見的只是白板上多了幾段描述,多了幾個可以寫在請求單上的名字。
所以插口的問題(連不上、清單取不到、選錯工具)全在殼上,看得見、修得到;模型的問題才在黑盒裡。
MCP(Model Context Protocol,模型上下文協定)是一種標準插口:讓 Harness(執行框架)發現一個外部伺服器(server)提供哪些工具,並代模型調用它們;Harness 裡負責這條線的部分叫客戶端(client)。模型從頭到尾不接觸伺服器——它只在白板(上下文視窗,context window,見組件 05)上讀到每件工具的工具描述(tool description);這些文字佔詞元(token,模型計數與收費的單位)。模型讀完描述後寫請求單(tool call),其餘管線工作全由 Harness 完成。
比喻:USB-C 插口。任何裝置都能插上同一個口;每件裝置附一本說明書,插上的那一刻,說明書就放到模型的白板上——裝置本身模型看不見,它看見的只有說明書的文字。
機架上有六個示意伺服器。按「插上」,計量表與四條泳道會逐步播放一次握手:連接、交換能力、取工具清單、描述流入白板——每一步用 MCP 規格(2026-07-28 版)裡的真實訊息名稱標示。看清一件事:整段握手裡模型一個字都沒有說,它只會在最後發現白板上多了幾段文字。連接有兩種標準傳輸方式(transport):stdio(Harness 在本機啟動伺服器程式,訊息逐行走它的標準輸入與輸出)與 Streamable HTTP(伺服器在網上,每個訊息是一次 HTTP POST);機架上每個伺服器的灰色標籤註明它用哪一種。
同一個請求,交給上面插好的 Agent。運行紀錄是預先編寫的示意(沿用組件 02 的畫法:模型寫字、請求單、Harness 動作),結果只取決於機架上插了哪些伺服器。留意每一格是誰在做事:模型只寫字,Harness 配對伺服器並送出 tools/call,伺服器回應,Harness 再把結果以文字貼回白板。
運行後這裡會列出:天氣查到沒有、提醒加了沒有、答案可信嗎、這一輪白板用了多少,以及一句「為甚麼」。
拉動滑桿,按機架的順序插上前 N 個伺服器(與第 2 節的機架同步),看你還沒開口時白板上已有多少工具描述、每一輪多少錢。下半部是第二種代價:伺服器的說明書是別人寫的文字,也可能藏著指令。
| N | 按機架順序插上 | 工具數 | 全部預載(詞元) | 按需載入(詞元) | 每輪(預載) | 一天 50 輪(預載) |
|---|
金額按上方的輸入價、未命中計;「按需載入」欄以每個伺服器說明 16 個詞元加每件工具名稱 8 個詞元估算(本頁示意,約為全文的一成;個別產品做法)。詞元數均為示意典型值。
有人分享了一個第三方伺服器「免費翻譯」。它的工具描述會在插上的一刻進入白板——連同裡面的每一句話。先開或關「先讀再裝」,再按「安裝」,比較兩種結果。
說明書
按「安裝」後這裡會顯示發生了甚麼。
伺服器替 Agent 增加的是能力:能查天氣、能寫日曆。模型本身一點也沒有變聰明——它看見的只是白板上多了幾段描述,多了幾個可以寫在請求單上的名字。
所以插口的問題(連不上、清單取不到、選錯工具)全在殼上,看得見、修得到;模型的問題才在黑盒裡。
「按需載入」是個別產品的做法(如 Claude Code 的 tool search,預設開啟):開場只載工具名稱與一行伺服器說明(本頁估算約為全文的一成);用到某件工具,Harness 才把全文載入白板。省的是每一輪的重送,不是調用本身。
工具描述和工具結果都由伺服器那一方寫成,經 Harness 原文貼進白板——模型分不出哪一句是說明、哪一句是指令。MCP 規格自己也說:工具的行為描述應視為不可信,除非來自可信的伺服器。
防線在殼上:只裝可信的、開白名單、對外動作前過權限閘。這是組件 09「致命三要素」的另一個入口——不可信內容不一定來自網頁,也可能來自你親手插上的插口。
課堂討論用,每題兩分鐘。
第 1 題可引導的方向:判準只有兩句——這件事需要嗎(不需要的伺服器只是每一輪的純成本),以及這個伺服器可信嗎(誰寫的、能碰到甚麼資料、能不能對外發送)。拒絕的常見理由:能對外發送又能讀私人資料(致命三要素的兩角同時交給一個插口)、來源不明、工具太多太像。可回到第 2 節:把學生提的兩個伺服器對應到機架上詞元最接近的兩個,算一算開場的詞元。
第 2 題可引導的方向:40 件工具按本頁的示意值約 5,000 個詞元,全部預載時每一輪重送;按需載入約 340 個詞元。錢以外的代價有兩種:名字相近的工具多了,模型選錯工具的機會上升(第 3 節插上檔案系統加校園資料庫可見一次);描述愈多,藏一句指令愈不容易被人看到(第 4 節)。結論:能挑就挑(白名單、只開需要的工具),挑不了就用按需載入——但兩者都是殼上的設定,不是模型的能力。
MCP 在四個常見產品裡各叫甚麼、怎樣接。標「待核實」者未經一手確認。
/mcp 指令;專案設定檔 .mcp.json;claude mcp add --transport http/stdio;tool search 預設開啟(按需載入)stdio/streamable-http