什麼是模型情境通訊協定 (MCP)?

模型情境通訊協定 (MCP) 使 AI 主體能夠存取外部工具和資料來源,以便更有效地採取動作。

學習目標

閱讀本文後,您將能夠:

  • 瞭解模型情境通訊協定 (MCP) 在自主式 AI 中的角色
  • 解釋 MCP 的運作方式
  • 瞭解 MCP 中的安全性挑戰

複製文章連結

什麼是模型情境通訊協定 (MCP)?

模型情境通訊協定是向大型語言模型 (LLM) 提供資訊的標準方法。MCP 的運作方式與應用程式設計介面 (API) 的運作方式有些相似,它為電腦程式提供了一種記錄在案的標準化方式,來整合來自外部來源的服務。它支援自主式 AI,即可以自主追求目標並採取動作的智慧程式。

從本質上講,MCP 允許 AI 程式超越其訓練範圍。這使它們能夠將新的資訊來源納入其決策和內容產生,並幫助它們連接到外部工具。

想像一下,一位助理需要為他的老闆預訂餐廳。助理將撥打餐廳的電話號碼,詢問他們的空閒時間,並要求訂座。若使用 MCP,只需向 AI 主體提供「電話號碼」,它們便可以獲得執行任務所需的資訊。

MCP 由 AI 公司 Anthropic 開發,後來開放了原始碼。自 2024 年底開放原始碼以來,MCP 已迅速成為一種產業標準,讓 AI 主體得到更廣泛的使用。

什麼是 AI 主體?

AI 主體是建置在 LLM 之上的 AI 程式。它們使用 LLM 資訊處理功能來代表人類使用者獲取資料、做出決策和採取動作。

MCP 是 AI 主體尋找所需資訊並採取動作的一種方式。它幫助 AI 主體連接所謂的「外部世界」——即超越 LLM 訓練資料範圍的真實世界。(其他方法包括 API 整合和無頭瀏覽。)

MCP 如何運作?

MCP 是一種通訊協定,即一組商定的步驟和指令,用於在聯網的各種運算裝置之間進行通訊。MCP 假定採用一種用戶端-伺服器架構,其中一個用戶端實體(AI 主體或輔助程式)向伺服器傳送請求,並由伺服器回應請求。

MCP 用戶端在 MCP 主機內運作。用戶端與 MCP 伺服器保持一對一的連線,但多個用戶端可以從同一 MCP 主機執行。因此,MCP 主機可以同時從多個 MCP 伺服器擷取資料。而 MCP 伺服器可以使用 API 整合從其他來源獲取資料。

這意味著 AI 主體可以使用 MCP 一次連接到多個伺服器——但是,每個連線都獨立於其他所有連線。想像一下報紙的一個記者團隊,所有記者都單獨聯繫訊息來源,然後將他們的資訊匯總在一起以產生新聞報道。

MCP 訊息

MCP 中使用了四種類型的訊息:

  • 請求:用戶端(包含在主機內)向 MCP 伺服器要求資訊。
  • 結果:MCP 伺服器傳回所需的資訊。
  • 錯誤:當伺服器無法給予回覆時,就會傳送這些錯誤。
  • 通知:無需回應的單向訊息(如公共服務公告)。這些可以由用戶端或伺服器傳送。

遠端和本機 MCP 連線

MCP 連線可以是遠端或本機連線。AI 主體和 MCP 伺服器之間透過網際網路進行遠端連線。本機連線發生在同一台電腦上(MCP 用戶端和 MCP 伺服器是彼此分開執行的軟體程式)。

MCP 連線中的步驟

MCP 網路通訊分為三個階段:

  1. 初始化:用戶端傳送第一條訊息,在隨後的一系列簡短訊息中,用戶端和伺服器就通訊協定版本達成一致
  2. 訊息交換:交換請求、結果和通知
  3. 終止:用戶端或伺服器使用「close()」訊息結束連線

為了使 MCP 更安全,在這三個階段之前,可能會執行其他驗證授權步驟。

什麼是 MCP 伺服器?

MCP 伺服器是託管在伺服器或雲端中的程式,它透過 MCP 向 AI 主體公開其可使用的功能。MCP 伺服器可以為 AI 主體提供對新資料集或所需其他工具的存取權限。例如,MCP 伺服器可能允許 AI 主體使用電子郵件服務,以便該主題可以代表它所協助的人類使用者傳送電子郵件。

MCP 安全嗎?

MCP 本身沒有內建驗證、授權或加密,因此開發人員必須自己實作或使用協助實作的服務。

MCP 不需要使用 HTTPS——而是在許多實作中透過 HTTP 執行。因此,除非開發人員主動實施 Transport Layer Security (TLS),否則它可能缺少加密和驗證。與任何網路通訊協定一樣,如果不使用 TLS,MCP 可能容易遭受冒充或中間人攻擊

由於 MCP 提供與 API(請求資料和服務的外部方)類似的功能,因此許多主要的 API 安全性注意事項也適用於 MCP 實作。提供 MCP 伺服器的組織必須確保機密資料不會暴露、資源受到保護、透過限速來阻止過多請求、AI 主體沒有過多權限,以及輸入經過驗證和清理。

某些 MCP 伺服器提供程式庫來簡化 OAuth 實作。Cloudflare 提供了一個 OAuth 提供者程式庫,可實作 OAuth 2.1 通訊協定的提供者端,讓您輕鬆新增對 MCP 伺服器的授權。

開發人員可以透過三種方式使用此 OAuth 提供者程式庫:

Cloudflare 提供了多個 MCP 伺服器,供建置自主式 AI 的開發人員使用。Cloudflare 還支援開發人員建置和部署自己的 MCP 伺服器來支援 AI 主體。瞭解如何開始在 Cloudflare 上使用 MCP