模型上下文協議 (MCP) 在人工智慧 (AI) 領域引起了相當大的迴響。這個由 Anthropic 帶頭開發的開放原始碼標準,旨在簡化外部資料來源與大型語言模型 (LLM) 的連接。雖然這項發展承諾為 AI 開發人員帶來顯著的好處,但也引入了潛在的安全漏洞。這份全面的指南將回答關於 MCP 的常見問題,闡明其功能、優勢和安全考量。
什麼是模型上下文協議 (MCP)?
從核心上講,模型上下文協議 (MCP) 充當通用橋樑,促進 LLM 與外部資源之間的互動。它建立了一種標準化的方法,讓 LLM 可以有效地識別和利用可用的資源。這使得 LLM 能夠辨別何時以及為何應利用這些資源來完成任務或增強其理解。
可透過 MCP 存取的外部資料範圍非常廣泛,包括本機檔案系統、資料庫、API 和軟體即服務 (SaaS) 應用程式等等。
從本質上講,MCP 使 LLM 能夠針對資料或操作發出確定性的請求,使其能夠利用超出其現有訓練資料集的資訊來提供準確和全面的答案。
MCP 的廣泛採用正在迅速改變 AI 領域,許多 AI 公司已將其整合到其平台中。
為何對 MCP 的興趣激增?
MCP 日益普及的驅動力在於其標準化外部資料來源與 LLM 連接的能力。這種標準化為開發人員提供了一個顯著的優勢:他們可以為 LLM 建立單一整合,並將其無縫部署到各種支援 MCP 的工具和 LLM 上。這種’一次編寫,隨處使用’的方法大大簡化了整合過程。
此外,以 MCP 伺服器為特色的’應用程式商店’和’市場’的出現,進一步簡化了整合過程,使開發人員能夠快速將它們納入其環境中。專門創建自訂 MCP 伺服器的專用服務也可用,以滿足特定的需求和要求。
這是 LLM 與外部資料互動的首例嗎?
代理式 AI 的概念,即具備自主運作和與外部來源互動的能力,已經存在一段時間了。然而,先前的實作通常對每個工具都是獨一無二的,缺乏標準化。LangFlow 等解決方案試圖透過標準化一些工具並在特定框架內實現與多個 LLM 的互動來解決此問題。
MCP 將標準化提升到一個新的水平,允許創建可在多個解決方案中使用的整合,打破了先前存在的孤島。
如何開始使用 MCP
要開始使用 MCP,您需要一個主機應用程式(稱為’客戶端’)和一個伺服器。主機應用程式充當中央協調器,管理 LLM 與連接到 MCP 伺服器的介面之間的通訊。
一個基本的例子是使用 Claude Desktop 來新增檔案系統 MCP 伺服器,如 Claude Desktop 使用者快速入門指南中所述。這展示了將檔案系統伺服器新增到 Claude Desktop 的過程,使其能夠向 Claude.ai 提供本機檔案系統資訊。雖然 Claude Desktop 充當 MCP 伺服器的試驗場,但許多其他客戶端提供了增強的使用者體驗。
MCP 客戶端和伺服器的線上目錄正在出現,例如 MCP Clients | Glama 和 Open-Source MCP Servers | Glama,為開發人員提供了寶貴的資源。
MCP 如何運作?
MCP 在客戶端/伺服器架構上運作,使 LLM 能夠無縫地與外部資料互動。此架構包含三個主要元件:
主機: 主機應用程式管理 LLM 與多個 MCP 客戶端之間的互動。流行的 MCP 主機包括 Claude Desktop、Claude Code、Cursor、Windsurf 和 Cline 及 Continue 等編輯器整合。
客戶端: 客戶端充當主機應用程式中的介面,促進 LLM 與伺服器之間的互動。它與伺服器保持一對一的連接。
伺服器: 伺服器是一個小型應用程式,使用 MCP 協議與客戶端通訊。它提供標準化的流程來列出功能並回應相關資料或操作的請求。
雖然這些元件通常被討論為單獨的實體,但它們可以整合到單一應用程式中或作為單獨的應用程式存在。目前,最常見的配置涉及將客戶端整合到主機應用程式中,使用 JSON-RPC 透過安全傳輸與伺服器通訊。
MCP 伺服器提供哪些功能?
MCP 伺服器為客戶端提供一系列功能,以支援資料檢索和對資料執行的操作。這些功能包括:
資源: LLM 可以追蹤的資料儲存,例如檔案、資料庫架構資訊和控制台日誌。資源在聊天會話開始時載入,以避免重複請求靜態資料。
工具: 可以執行的操作,例如從檔案中檢索內容、將資料插入資料庫或回覆電子郵件。
提示: 伺服器向客戶端提供的有用且可重複使用的提示。許多主機應用程式允許使用者使用’快速清單’功能列出可用的提示,通常透過鍵入’/‘來觸發。這些提示也可以用作可以使用使用者輸入動態填充的範本。
目前,’工具’是 MCP 提供的最具影響力的功能,也是最受關注的功能。
使用 MCP 伺服器是否安全?
MCP 在很大程度上依賴信任,包括:
- 信任主機應用程式有效地控制對客戶端的存取。
- 信任客戶端在使用安全傳輸與伺服器通訊時。
- 信任伺服器在存取資源時實施安全措施。
使用者應優先考慮來自信譽良好的來源的 MCP 伺服器,並始終透過在安裝前驗證軟體的完整性來謹慎行事。
MCP 主機如何實施安全性?
主機應用程式應實施控制,允許使用者在使用工具之前批准工具。主流應用程式通常具有驗證工具使用是否可接受的機制。例如,當首次呼叫工具時,Claude Desktop 會提示使用者在’使用一次’或’在整個聊天會話中使用’之間進行選擇。其他應用程式,如 Cline,可能具有自動批准某些工具或應用程式的方法。在這些驗證對話方塊中呈現給使用者的資訊層級可能會有所不同。
有哪些傳輸安全控制可用?
使用兩種主要的傳輸機制:STDIO 和伺服器發送事件 (SSE)。
當客戶端和伺服器位於同一台電腦上時,首選 STDIO。它將客戶端的輸出導向伺服器的輸入,反之亦然。只有在本地系統遭到入侵時,傳輸才可能受到威脅。
當客戶端和伺服器位於不同的電腦上時,使用 SSE。它透過 HTTP 連接傳輸 JSON 訊息,從而可以使用標準 HTTP 安全選項,如 SSL 傳輸和開放式驗證 (OAuth) 授權。
使用 MCP 的最大風險是什麼?
與 MCP 相關的最大風險是注入惡意伺服器。由於所有註冊的伺服器在主機應用程式和 LLM 中都有一個單一的參考點,因此惡意伺服器可能會毒害 LLM 或利用合法伺服器的工具。隨著 MCP 生態系統的成熟,預計將正式確定諸如 MCP 安全認證、伺服器完整性監控和用於監控的日誌記錄標準化等概念。MCP ‘應用程式商店’也可能會出現,提供集中式儲存庫,以便輕鬆地將 MCP 伺服器整合到現有工具中。
雖然 MCP 規範強烈建議對遠端伺服器進行身份驗證和授權,但它並未強制執行這些要求。MCP 伺服器的開發人員可能會忽略網路安全方面,而未能實施這些建議。
可遠端存取的 MCP 伺服器容易受到中間人攻擊和遠端漏洞攻擊。因此,任何使用基於網路傳輸的 MCP 伺服器都必須實施強大的身份驗證和授權機制。
如何在使用 MCP 時保護我的資訊?
隨著用於保護 MCP 解決方案的技術解決方案和能力不斷發展,目前的建議是遵守已建立的網路安全最佳實務。主要步驟包括:
偵測和清查您環境中 MCP 的安裝和配置。 鑑於 MCP 處於採用初期階段,這需要一種更為手動的方法,包括仔細檢查端點的配置檔案,而不是依賴集中式監控。理解和批准 MCP 的使用對於維護環境完整性至關重要。
控制對 MCP 伺服器正在存取的資源的存取並監控這些資源。 無論資源是本機端點還是 SaaS 應用程式,透過日誌記錄和稽核監控存取都至關重要。
培訓在其工作職責中使用 MCP 的人員。 確保他們在授權使用工具之前了解工具的影響。MCP 規範強調使用者在執行操作之前必須同意並授權。培訓提供做出明智決策所需的理解。