在當今這個由大型語言模型(LLM)引領的 AI 新時代,我們驚嘆於它們生成文本、翻譯語言、甚至編寫程式碼的強大能力。然而,一個顯而易見的瓶頸也隨之浮現:這些模型本身如同一個知識淵博但與世隔絕的大腦,它們的知識被凍結在訓練數據的特定時間點,並且缺乏與即時資訊和外部工具互動的能力。
想像一下,如果你的 AI 助理無法查詢今天的氣象、無法幫你預訂會議室,也無法讀取你最新的專案文件,它的實用性將大打折扣。為了解決這個問題,模型上下文協定(Model Context Protocol,簡稱 MCP) 應運而生,它旨在成為 AI 應用程式與外部世界溝通的標準化橋樑,被譽為「AI 應用的 USB-C」。
什麼是 MCP?為什麼我們需要它MCP 是一個由 AI 安全與研究公司 Anthropic 發起並開源的協定,其核心目標是標準化大型語言模型應用程式與外部數據源和工具的整合方式。
在 MCP 出現之前,開發者若想讓自己的 AI 應用(例如一個客製化的聊天機器人)連接到特定的資料庫、API 或內部系統,通常需要為每一個連接編寫客製化的程式碼。這種點對點的整合方式不僅耗時費力,更導致了嚴重的生態碎片化。每個應用都有自己的一套連接邏輯,難以複用和擴展。
MCP 的出現正是為了解決這個痛點。它定義了一套通用的「語言」和「規則」,讓任何遵循此協定的 AI 應用(稱為 MCP Host)都能夠順暢地與任何同樣遵循此協定的外部服務(稱為 MCP Server)進行通訊和互動。
這就好比 USB-C 的出現統一了各種電子設備的充電和數據傳輸介面,你不再需要為手機、筆記型電腦、耳機準備各式各樣的充電線。同樣地,MCP 讓開發者可以專注於打造核心的 AI 功能,而將與外部世界的連接工作交給標準化的協定來處理。
MCP 的核心架構與運作原理
MCP 的架構主要包含三個核心組件:
* MCP Host (主機):這通常是我們直接互動的 AI 應用程式,例如一個 AI 驅動的整合開發環境(IDE)、一個桌面助理或是企業內部的聊天機器人。Host 負責接收使用者的請求,並管理與各個 Server 的連接。
* MCP Client (客戶端):Client 位於 Host 內部,作為與特定 MCP Server 溝通的代理。每個 Host 內部可以有多個 Client,分別連接到不同的 Server。
* MCP Server (伺服器):這是提供上下文資訊和能力的外部服務。它可以是一個資料庫、一個 API 端點、一個檔案系統,或任何能夠提供 AI 模型所需資訊的來源。
它們之間的溝通是基於 JSON-RPC 2.0 協定,這是一種輕量級的遠端程序呼叫協定,非常適合在不同系統之間進行結構化數據交換。
一個典型的 MCP 運作流程如下:
* 發現與連接:MCP Host 發現並連接到一個或多個 MCP Server。
* 能力宣告:Server 會向 Host 宣告它能提供的「能力」。這些能力主要分為三種類型:
* 資源 (Resources):提供唯讀的、靜態的資訊,例如檔案內容、資料庫紀錄或網頁資訊。
* 工具 (Tools):提供可以執行特定操作並產生「副作用」的功能,例如傳送電子郵件、進行計算、呼叫外部 API 等。
* 提示 (Prompts):提供可重複使用的提示詞模板或工作流程,用以引導和優化 LLM 的回應。
* 使用者互動與任務執行:當使用者向 Host 提出請求時(例如,「幫我總結一下昨天下午的會議記錄,並寄送給專案團隊」),Host 內的 LLM 會理解這個需求,並意識到需要外部工具的協助。
* 呼叫與回應:Host 會透過對應的 Client,向提供「讀取檔案」和「寄送郵件」能力的 MCP Server 發出請求。Server 執行相應操作後,將結果回傳給 Host。
* 生成最終結果:Host 的 LLM 整合從 Server 獲取的資訊(會議記錄內容)和執行的結果(郵件已寄送),最終生成一個完整的、有上下文的答案給使用者。
MCP vs. Function Calling:有何不同?
熟悉大型語言模型的讀者可能會聯想到「函式呼叫」(Function Calling)功能。Function Calling 同樣允許模型呼叫外部工具。那麼,MCP 和 Function Calling 有什麼不同呢?
可以將 Function Calling 視為一種更底層、更直接的能力,它讓模型能夠「說出」它想要呼叫哪個函式以及需要什麼參數。而 MCP 則是一個更高層次的、標準化的協定框架。
* 標準化與生態系:MCP 的核心優勢在於其標準化。它致力於建立一個龐大的生態系,開發者可以輕鬆地發布和使用遵循 MCP 標準的 Server,而不需要關心底層模型具體是哪一個(例如 Claude、GPT 或其他模型)。這大大降低了整合的複雜性。
* 動態發現與管理:MCP 支援動態發現 Server 及其提供的能力,這意味著 AI 應用可以即時地、彈性地擴充其功能,而無需重新編寫程式碼。
* 統一的介面:MCP 為資源、工具和提示提供了統一的抽象介面,讓 AI 模型的「感知」和「行動」更加結構化和一致。
總結來說,Function Calling 是模型的一項「天賦技能」,而 MCP 則是為了讓這項技能能夠在一個廣闊、有序的「世界」中發揮作用而建立的「社會規則和基礎設施」。
MCP 的潛在應用與未來展望
MCP 的出現為 AI 應用的發展開啟了全新的可能性。以下是一些潛在的應用場景:
* 企業級智慧助理:企業可以將內部的知識庫、CRM 系統、專案管理工具等全部打包成 MCP Server。員工的 AI 助理就能夠安全地存取這些內部資訊,提供高度個人化和情境化的協助。
* AI 驅動的開發工具:程式設計師的 AI Copilot 將能夠讀取整個專案的程式碼庫、執行測試、查詢 API 文件,甚至直接與版本控制系統互動,從而提供更深度的開發輔助。
* 可組合的 AI 工作流程:使用者將能夠像玩樂高一樣,自由地組合來自不同提供商的 MCP Server,打造出滿足特定需求的複雜 AI 工作流程,例如一個能夠自動研究市場報告、生成簡報並安排發布會議的超級助理。
當然,MCP 仍處於發展的早期階段,其生態系的建立和完善需要時間和社群的共同努力。然而,它所擘畫的藍圖——一個互聯互通、協作無間的 AI 新世界——無疑是令人興奮的。隨著越來越多的開發者和企業採用此標準,我們有理由相信,MCP 將成為推動下一代 AI 應用爆發性成長的關鍵基礎設施。