什麼是 MCP?運作方式為何?

大型語言模型 (LLM) 功能強大,但有兩大限制:知識停留在訓練時的狀態,且無法與外界互動。這表示此模型無法存取即時資料,也無法執行預約會議或更新客戶記錄等動作。

Model Context Protocol (MCP) 是一項開放標準,旨在解決這個問題。MCP 由 Anthropic 於 2024 年 11 月推出,為 LLM 提供安全且標準化的「語言」,方便與外部資料、應用程式和服務溝通。它就像一座橋梁,讓 AI 不再只能使用靜態知識,而是能成為動態代理,擷取最新資訊並採取行動,進而提高準確度、實用性和自動化程度。

瞭解 Model Context Protocol

MCP 為 AI 應用程式建立標準化的雙向連線,讓 LLM 輕鬆連結各種資料來源和工具。MCP 以現有概念 (例如工具使用和函式呼叫) 為基礎,並將這些概念標準化。這樣就不必為每個新 AI 模型和外部系統建立自訂連線。這項技術可讓 LLM 使用目前的真實世界資料、執行動作,以及存取原始訓練中未包含的特殊功能。

MCP 架構與元件

Model Context Protocol 具有明確的結構,各元件可互相搭配,協助 LLM 和外部系統輕鬆互動。

MCP 主機

LLM 位於 MCP 主機內,也就是 AI 應用程式或環境,例如 AI 輔助 IDE 或對話式 AI。這通常是使用者的互動點,MCP 主機在這裡使用 LLM 處理可能需要外部資料或工具的要求。

MCP 用戶端

MCP 用戶端位於 MCP 主機內,可協助 LLM 和 MCP 伺服器彼此通訊。它會將 LLM 的要求轉換成 MCP 可理解的內容,並將 MCP 的回覆轉換成 LLM 可理解的內容。此外,它還會尋找並使用可用的 MCP 伺服器。

MCP 伺服器

MCP 伺服器是外部服務,可為 LLM 提供背景資訊、資料或功能。這項技術可連結資料庫和 Web 服務等外部系統,將系統回覆轉換成 LLM 可理解的格式,協助開發人員提供多元功能。

傳輸層

傳輸層使用 JSON-RPC 2.0 訊息在用戶端和伺服器之間通訊,主要透過兩種傳輸方法:

  • 標準輸入內容/輸出內容 (stdio):適合用於本機資源,可快速同步傳輸訊息
  • 伺服器推送事件 (SSE):適合遠端資源,可有效率地即時串流資料

MCP 如何運作?

Model Context Protocol 的核心功能是讓 LLM 向外部工具請求協助,以回答查詢或完成工作。假設您向 AI 助理下達指令:「在資料庫中找出最新的銷售報告,然後以電子郵件寄給我的主管。」

以下簡要說明 MCP 如何處理這類情況:

  1. 要求和工具探索:LLM 瞭解自己無法存取資料庫或自行傳送電子郵件。它使用 MCP 用戶端搜尋可用的工具,並找到兩個在 MCP 伺服器上註冊的相關工具:database_query 和 email_sender。
  2. 工具叫用:LLM 會生成結構化要求,以使用這些工具。首先,它會呼叫 database_query 工具,並指定報表名稱。接著,MCP 用戶端會將這項要求傳送至適當的 MCP 伺服器。
  3. 外部動作和資料傳回:MCP 伺服器收到要求後,會將要求轉換為安全的 SQL 查詢,並傳送至公司資料庫,然後擷取銷售報表。接著,它會將資料格式化,然後傳回給 LLM。
  4. 第二個動作和回覆生成:取得報表資料後,LLM 會呼叫 email_sender 工具,此工具會提供主管的電子郵件地址和報表內容。電子郵件傳送後,MCP 伺服器會確認動作已完成。
  5. 最終確認:LLM 提供最終回覆給您:「我已找到最新的銷售報表,並透過電子郵件傳送給您的主管。」

MCP 與 RAG 的比較

Model Context Protocol (MCP) 和檢索增強生成 (RAG) 都能透過外部資訊強化 LLM,但兩者做法不同,用途也各異。RAG 會尋找並使用資訊來生成文字,而 MCP 則是更廣泛的互動和行動系統。

功能

Model Context Protocol (MCP)

檢索增強生成 (RAG)

主要目標

將雙向通訊標準化,讓 LLM 能存取外部工具、資料來源和服務,並與這些資源互動,在檢索資訊的同時執行動作。

在生成回覆,從權威知識庫擷取相關資訊,提升 LLM 回覆品質。

機制

為 LLM 應用程式定義標準化通訊協定,以便叫用外部函式或向專用伺服器要求結構化資料,進而執行動作及整合動態背景資訊。

內含資訊檢索元件,可根據使用者的查詢,從知識庫或資料來源提取資訊。接著,擷取的資訊會增強 LLM 的提示詞。

輸出類型

讓 LLM 生成結構化呼叫,以供工具使用、接收結果,然後根據這些結果和動作生成人類可讀的文字。也可能涉及即時資料和函式。

LLM 會根據訓練資料生成回覆,並可由外部文件中與查詢相關的文字增強。通常著重於事實準確率。

互動

專為在外部系統主動互動和執行工作而設計,為大型語言模型提供「文法」,以便「使用」外部功能。

主要用於被動擷取資訊,以輔助生成文字,通常不會在外部系統中執行動作。

標準化

這項開放標準規範 AI 應用程式為 LLM 提供背景資訊的方式,可將整合作業標準化,進少自訂 API 的需要。

這是用於改進 LLM 的技術或架構,而非支援各供應商服務或系統工具互動的統一通訊協定。

用途

使用 AI 代理執行工作 (例如預訂機票、更新 CRM、執行程式碼)、擷取即時資料、進階整合。

建立問答系統、開發聊天機器人來提供最新事實資訊、製作文件摘要、減少生成文字時的幻覺。

功能

Model Context Protocol (MCP)

檢索增強生成 (RAG)

主要目標

將雙向通訊標準化,讓 LLM 能存取外部工具、資料來源和服務,並與這些資源互動,在檢索資訊的同時執行動作。

在生成回覆,從權威知識庫擷取相關資訊,提升 LLM 回覆品質。

機制

為 LLM 應用程式定義標準化通訊協定,以便叫用外部函式或向專用伺服器要求結構化資料,進而執行動作及整合動態背景資訊。

內含資訊檢索元件,可根據使用者的查詢,從知識庫或資料來源提取資訊。接著,擷取的資訊會增強 LLM 的提示詞。

輸出類型

讓 LLM 生成結構化呼叫,以供工具使用、接收結果,然後根據這些結果和動作生成人類可讀的文字。也可能涉及即時資料和函式。

LLM 會根據訓練資料生成回覆,並可由外部文件中與查詢相關的文字增強。通常著重於事實準確率。

互動

專為在外部系統主動互動和執行工作而設計,為大型語言模型提供「文法」,以便「使用」外部功能。

主要用於被動擷取資訊,以輔助生成文字,通常不會在外部系統中執行動作。

標準化

這項開放標準規範 AI 應用程式為 LLM 提供背景資訊的方式,可將整合作業標準化,進少自訂 API 的需要。

這是用於改進 LLM 的技術或架構,而非支援各供應商服務或系統工具互動的統一通訊協定。

用途

使用 AI 代理執行工作 (例如預訂機票、更新 CRM、執行程式碼)、擷取即時資料、進階整合。

建立問答系統、開發聊天機器人來提供最新事實資訊、製作文件摘要、減少生成文字時的幻覺。

使用 MCP 的好處

Model Context Protocol 在開發及部署 AI 輔助應用程式方面,具備多項潛在優勢,可讓 LLM 更靈活可靠且功能更強大。

減少幻覺

LLM 本身會根據訓練資料預測答案,而非即時資訊,因此有時會編造事實,或生成看似合理,但其實有誤的資訊 (產生幻覺)。MCP 可讓 LLM 確實存取可靠的外部資料來源,進而減少這類問題,提供更真實的回覆。

提升 AI 實用性與自動化程度

MCP 可讓 AI 獨立執行更多工作。一般來說,LLM 的知識僅來自訓練資料,但這些資料很快就會過時。不過只要有了 MCP,LLM 就能連至許多現成工具和整合項目,例如商業軟體、內容存放區和開發環境。這樣一來,AI 可以處理更複雜的工作,甚至與現實世界互動,例如更新 CRM 的客戶資訊、在網路上查詢時事,或執行特殊計算。直接連結這些外部工具後,LLM 不再只是聊天程式,而是能獨立運作的智慧型代理程式,可將更多工作自動化。

AI 連線更輕鬆

在 MCP 推出前,將 LLM 連至各種外部資料來源和工具並不容易,通常必須採用特殊連線或各供應商專屬的方法。這導致系統雜亂無章,通常稱為「N x M」問題,因為每新增一個模型或工具,需要的自訂連線數量就會迅速增加。MCP 提供通用的開放標準,來簡化這些連線作業,就像 USB-C 連接埠讓裝置連線更方便。這種簡化的做法不僅降低開發成本、讓組織更快建構 AI 應用程式,還能打造連結更緊密的 AI 環境。此外,開發人員也能輕鬆切換不同供應商的 LLM 及新增工具,而不必進行重大變更。

MCP 和安全性

Model Context Protocol 可將 LLM 連至外部系統,來提升 LLM 的能力,但同時也會引起重大安全疑慮。由於 MCP 可存取任何資料,甚至可能透過連結的工具執行程式碼,為 MCP 導入完善保護措施至關重要。

MCP 的重要安全原則包括:

  • 使用者同意與控管:必須讓使用者清楚瞭解 LLM 透過 MCP 執行的動作和存取的資料,並取得使用者同意。此外,最好是透過簡單易用的授權畫面,讓使用者能控管要提供的資料和採取的行動。
  • 資料隱私權:主機必須先取得使用者的明確許可,才能向 MCP 伺服器提供使用者資料。應透過適當的存取控管機制保護敏感資料,以免資料不慎外洩或外傳。特別注意的是,由於 LLM 會處理大量資料,務必採取加密技術和嚴格的存取控管規則。
  • 工具安全性:透過 MCP 連結的工具可用來執行程式碼,因此開發人員不應輕易相信工具說明,除非這些工具來自可靠的伺服器。此外,使用者應先瞭解工具的功能,再授予權限,允許工具運作。
  • 安全處理輸出內容:如果 LLM 透過 MCP 互動輸出的內容會向使用者顯示,就必須謹慎加以處理,以免發生安全問題,例如跨網站指令碼攻擊 (XSS) 或其他網頁應用程式攻擊。此外,必須妥善清理輸入內容並篩選輸出內容,且避免在提示中加入敏感資料。
  • 供應鏈安全:組織必須確保 MCP 伺服器及其連結的外部工具足夠可靠,也必須確保 LLM 供應鏈的所有環節都安全無虞,避免出現偏誤結果、安全性漏洞或故障。
  • 監控與稽核:定期檢查 LLM 活動以及與 MCP 伺服器的互動情形,有助於找出異常行為或潛在濫用問題。建立完善的記錄和稽核系統,來追蹤資料移動和工具使用情形,可及時應對安全事件。

遵循以上原則,開發人員就能充分運用 MCP 的強大功能,同時防範潛在風險。

建構及部署 MCP 輔助應用程式

要導入 Model Context Protocol,需要採用穩固的基礎架構,來託管 LLM、MCP 伺服器和基礎資料來源。雲端平台提供可擴充的安全元件,是建構完整解決方案的理想選擇。以下是幾種做法:

託管及擴充 MCP 伺服器

MCP 伺服器是連結外部工具的橋梁。您可以視需求選擇:

  • 無伺服器環境 (例如 Cloud Run):無伺服器平台適合簡單的無狀態工具,會根據需求自動調度伺服器資源,甚至將資源調度率降至零,讓您只需按實際用量付費。如果想以高效率部署個別工具,這類平台是理想的選擇。
  • 容器自動化調度管理 (例如 Google Kubernetes Engine (GKE)):代管 Kubernetes 環境提供強大功能和靈活性,可用來執行整個企業的精密 MCP 基礎架構,適合必須精細控管網路和資源的複雜有狀態應用程式。

將 MCP 連結至資料和工具

MCP 的價值主要來自其存取的工具。您可以將 LLM 連至:

  • 代管資料庫 (例如 Cloud SQLSpanner):讓 AI 安全地查詢關聯式資料庫,取得客戶資訊、庫存或營運資料等等
  • 資料倉儲 (例如 BigQuery):LLM 可運用資料倉儲分析龐大的資料集,並根據使用者的查詢,深入瞭解相關背景資訊

使用 Vertex AI 自動化調度管理端對端 AI 工作流程

整合式 AI 平台是串聯所有環節的關鍵。Vertex AI 可協助您管理 MCP 應用程式的整個生命週期:

  • 託管 LLM:部署及管理 Gemini 等功能強大的基礎模型,做為應用程式的「大腦」。
  • 代理和自動化調度管理框架:建構 AI 代理需要複雜的工作流程。Vertex AI 提供多種工具,可簡化 LLM 與來自 MCP 伺服器的背景資訊流動,方便開發人員建構能推論和行動的精密代理程式。

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。