生產環境的 MCP 堆疊包含傳輸、協定處理、身份驗證、路由、工具定義、授權政策、執行憑證、後端 API、操作狀態和遙測。小型部署可以在同一個程序中合併多層,但每項責任仍然需要明確的擁有者。
大多數失敗來自隱藏的邊界。當一個處理函式同時驗證權杖、決定租戶存取、重試供應商調用並記錄結果,就沒有人能判斷是哪一條規則失敗。
堆疊全貌
flowchart TD
C[MCP clients] --> T[Transport edge]
T --> S[Protocol server]
S --> G[Authentication and routing]
G --> R[Tool registry]
R --> P[Authorization policy]
P --> E[Tool executor]
E --> K[Credential broker]
K --> B[Backend APIs and data]
E --> O[Operation state]
S --> X[Telemetry and evaluations]
P --> X
E --> X
B --> X
這是責任架構圖,並不代表一定要使用十一個獨立產品。
傳輸邊緣
對遙距伺服器而言,邊緣負責終止 HTTPS、驗證請求大小和來源、執行連線限制,並路由 Streamable HTTP 工作階段。本機 stdio 伺服器則沿用本機程序和作業系統邊界。
MCP 傳輸規格定義 stdio 與 Streamable HTTP 行為,但不會提供租戶速率限制或應用程式授權。
協定伺服器
伺服器處理初始化、能力協商、JSON-RPC 訊息、分頁、取消和通知,並公開實作所聲明的工具、資源與提示。
協定錯誤應與領域失敗分開。無效的 tools/call 請求,與業務政策拒絕一個有效的 create_invoice 調用,是兩種不同問題。
身份驗證與路由
身份驗證會建立客戶端及其代表的用戶身份;路由則選擇正確的伺服器、租戶上下文或工具群組。閘道可以集中處理多個 MCP 伺服器的連線限制和驗證探索,但小型部署不一定要把它做成獨立服務。
MCP 授權指南解釋遙距 OAuth 流程,以及 audience 驗證為甚麼屬於這一層。
工具登錄
登錄包含客戶端可見的確切名稱、描述、結構描述、輸出合約和註解,也可以按照租戶、角色、功能或環境篩選清單。
工具選擇要與資源授權分開。隱藏工具能夠協助模型作出選擇,後端則仍要拒絕禁止的請求。
MCP 工具設計指南包含這一層的只限選擇評估。
授權政策
政策決定目前所代表的身份,能否針對這個租戶、資源和操作使用該工具,也會決定是否需要批准。
廣泛的業務規則應留在擁有資源的服務中。中央政策層可以提早拒絕,但不能成為唯一知道「一位用戶不能讀取另一位用戶發票」的位置。
工具執行器與憑證代理
執行器驗證輸入、調用內部程式碼或上游 API,再整理結果。憑證代理則提供另一份上游憑證,並使用可以取得的最小權限範圍。
模型不應取得這份憑證。MCP 密鑰處理指南解釋如何測試提示、日誌、錯誤和生成成果中的洩漏。
後端與操作狀態
後端執行數據完整性和最終授權。操作狀態記錄邏輯寫入、嘗試、冪等鍵、供應商請求 ID 和結果。工作階段狀態與對話紀錄都不能取代這份帳本。
逾時後,執行器應先讀取操作狀態,再決定是否重新調用供應商。
遙測與評估
遙測會把用戶請求連接到工具調用和後端副作用;評估則測試模型能否在系統變更後繼續選對工具,並遵守不應使用工具的情況。
記錄穩定 ID 和範圍明確的結果類別,排除憑證、原始敏感數據和無限大小的供應商承載數據。
只在邊界有幫助時拆分
當一層需要獨立的信任、擴展、擁有權或發佈行為時,再把它拆成獨立服務。不要只因架構圖上有閘道方塊,就加入一個閘道。
下方提示會找出現有部署中每一層的擁有者,以及第一個會帶來實際風險的混合責任。