部落格
MCP

發布於 更新於

Shouryamaan 和 Anshu

什麼是 MCP 基礎設施?為什麼它對 AI 代理很重要?

以 Markdown 閱讀

MCP 基礎設施涵蓋公開及運作 Model Context Protocol 能力所需的一切:用戶端、傳輸、伺服器、工具、授權、政策、憑證、後端執行、狀態與遙測。MCP 伺服器只是其中一個元件,並不是完整的正式環境系統。

展示版本可以在 tools/list 與 tools/call 後結束;正式環境則必須回答呼叫者是誰、能存取什麼、寫入是否可能重複,以及操作人員如何還原事件經過。

MCP 標準化了哪些內容

MCP 定義一套 JSON-RPC 協定,讓用戶端與伺服器協商能力並交換訊息。伺服器可以公開:

  • 可由模型選擇及叫用的工具;
  • 可讓用戶端讀取或訂閱的資源;
  • 可由用戶端呈現給使用者或模型的可重用提示詞。

MCP 工具規格定義透過 tools/list 探索、透過 tools/call 叫用、輸入與選用輸出結構描述、結構化內容,以及工具清單變更通知。

協定負責承載這些合約,但不會判斷工具對目前租戶是否安全、實用或已獲授權。

協定周邊的基礎設施

flowchart LR
    C[MCP client] --> T[stdio or Streamable HTTP]
    T --> S[MCP server]
    S --> A[Authentication and policy]
    A --> X[Credential and execution layer]
    X --> B[Backend APIs and data]
    S --> R[Session and operation state]
    S --> O[Logs, traces, and evaluations]
    X --> O
    B --> O

每一道邊界都有不同的工作。

用戶端與傳輸

用戶端決定向模型提供哪些伺服器能力,以及使用者如何核准呼叫。本機伺服器通常使用 stdio;遠端伺服器則使用 Streamable HTTP。MCP 傳輸規格也要求 HTTP 伺服器驗證 Origin 標頭,協助防止 DNS rebinding 攻擊。

傳輸安全保護連線本身,但不會授權資料庫中的資料列或雲端資源。

伺服器與工具登錄

伺服器實作 MCP 生命週期訊息,並發布工具、資源或提示詞。工具登錄包含名稱、描述、結構描述及註解。除非伺服器本身可信任,否則用戶端必須把工具註解視為不受信任的資料。

工具定義應對應工作,而不是內部端點名稱。MCP 工具設計指南說明如何減少重疊選項,並回傳模型能有效使用的結果。

身分驗證與政策

身分驗證會識別呼叫者或其代表的使用者;政策則決定該身分能存取哪些工具、資源、租戶及動作。對 HTTP 傳輸而言,MCP 授權規格定義以 OAuth 為基礎的流程,其中包含受保護資源探索、授權伺服器中繼資料、資源指標、bearer token、PKCE 及 audience 驗證。

後端仍必須繼續執行授權。閘道可以隱藏 delete_project,但底層 API 仍應拒絕未獲授權的刪除。

憑證與執行層

MCP 伺服器可能需要另一個 token 才能呼叫上游 API。目前的授權規格明確禁止把用戶端的 MCP 存取權杖直接轉交上游服務。伺服器應交換或取得專供該後端使用的另一份憑證。

這些憑證不能出現在工具引數或結果中。模型需要知道執行結果,不需要取得用來完成操作的密鑰。MCP 金鑰安全指南會詳細追蹤憑證路徑。

後端、狀態與復原

後端負責業務授權、資料完整性與外部副作用。工作階段狀態可以記錄目前使用哪個伺服器連線;操作狀態則記錄特定寫入已開始、完成、失敗,或需要對應處理。

不能只用對話記錄作為操作帳本。摘要過的工具結果不足以判斷逾時的付款或部署是否應該重複執行。

遙測與評估

一條追蹤應連接使用者請求、模型選擇、工具呼叫、政策決策、後端請求及最終副作用。記錄穩定的租戶、使用者、代理、工作階段、工具呼叫與操作 ID,並排除權杖、憑證及敏感承載資料。

評估套件應涵蓋工具選擇衝突、無效輸入、禁止存取的資源、核准路徑、重試及中斷的回應。單獨使用時正常的工具,在同時顯示二十項相似工具時仍可能失敗。

審查一條完整的工具路徑

選擇副作用範圍最大的 MCP 工具,從處理函式一路追蹤到身分、政策、憑證、後端狀態與遙測。如果任何步驟依賴提示詞指示或人類閱讀日誌,應標記為缺少基礎設施。

下方提示詞會在不呼叫工具的情況下完成這項追蹤。