7000字詳解火爆全網的Claude 模型上下文協議 (MCP)

人工智慧領域正在經歷快速發展,大型語言模型(LLMs)的能力日益增強。然而,將這些強大的模型與現實世界的資料和工具整合仍然面臨著諸多挑戰。傳統上,連接 AI 模型與各種資料來源通常需要為每個資料來源編寫定製化的程式碼,這不僅耗時,而且容易出錯 。這種為連接 M 個不同的 LLM 和 N 個不同的工具而產生的“MxN”問題,導致了整合過程的複雜性,並阻礙了 AI 應用的廣泛採用和不同系統之間的互操作性 。為了應對這些挑戰,Anthropic 近期推出了模型上下文協議(Model Context Protocol,簡稱 MCP),作為一種開放標準,旨在提供一個統一的解決方案,以取代這些臨時性的整合方法

模型上下文協議(MCP)可以被定義為 Anthropic Claude 專門設計的一種開放協議標準,其目標是在 AI 模型和開發環境之間建立標準化的上下文互動 。通過提供對上下文資訊的標準化訪問,MCP 使得 AI 模型能夠更好地理解和處理程式碼 。該協議通過引入客戶端和伺服器的概念來運作:客戶端通常嵌入在基於 LLM 的應用程式中,例如 Claude Desktop 應用,它們負責發起對資源的請求;而 MCP 伺服器則由客戶端啟動,處理這些請求並執行所需的操作,這些操作可能涉及到使用額外的工具、程式語言或處理程序 。MCP 的核心功能在於標準化上下文互動,這預示著在 AI 領域,“上下文”正日益成為實現超越簡單問答等高級功能的關鍵要素。Anthropic 將 MCP 定位為一個開放協議,這表明其戰略意圖是圍繞 Claude 模型建構一個協作生態系統,鼓勵更廣泛的採納和社區貢獻

為了幫助讀者快速理解 MCP 的本質,可以將其比作 AI 領域的 USB-C 介面 。正如 USB-C 提供了一種連接各種裝置和外設的通用方式,MCP 也為連接 AI 系統和各種工具及資料來源提供了一種統一的方法 。它就像一個通用介面卡,使得 AI 模型能夠與各種外部系統進行無縫互動 。這種類比有效地傳達了 MCP 的核心價值主張:標準化和普遍相容性。這表明 AI 領域正朝著對這種通用標準的需求發展,以促進不同 AI 模型和工具之間的互操作性

MCP 的技術詳解

模型上下文協議(MCP)採用了經典的客戶端-伺服器架構,其中大型語言模型(LLM)應用程式,例如 Anthropic 的 Claude Desktop 應用或各種整合開發環境(IDEs),扮演著客戶端的角色 。這些客戶端負責發起與 MCP 伺服器的連接,並使用 MCP 定義的客戶端協議與伺服器進行通訊 。另一方面,MCP 伺服器是獨立的、輕量級的應用程式,它們通過 MCP 協議暴露特定的功能,並且能夠連接到本地或遠端的資料來源 。這種客戶端-伺服器模型實現了責任的清晰分離,並允許為不同類型的資料和工具開發專門的伺服器。這預示著 AI 整合領域正朝著類似微服務架構的方向發展,在這種架構中,各個伺服器可以獨立地進行更新或替換,而不會影響系統的其他部分。值得注意的是,宿主應用程式(即 AI 模型運行的環境)對客戶端的連接權限進行嚴格控制,這使得使用者和組織能夠細緻地管理 AI 助手可以訪問的內容,從而強調了安全性是 MCP 設計的一個核心原則

在 MCP 框架內,定義了一系列核心消息類型,這些類型被稱為“原語”,它們用於規範客戶端和伺服器之間的互動 。這些原語可以分為伺服器端原語和客戶端原語

伺服器端原語包括:

  • 提示 (Prompts): 這些是預先編寫好的指令或範本,旨在指導 AI 模型完成特定的任務 。
  • 資源 (Resources): 這些是結構化的資料片段,例如文件的某些部分或程式碼片段,它們被用來豐富 AI 模型的上下文資訊,使其能夠更好地理解使用者的請求 。
  • 工具 (Tools): 這些是 AI 模型可以通過 MCP 伺服器呼叫的可執行函數或操作。工具可以執行各種任務,例如查詢資料庫、進行網路搜尋或傳送消息 。
  • 採樣 (Sampling): 這是一種特殊的機制,它允許 MCP 伺服器請求宿主 AI 基於給定的提示生成文字完成。這個功能主要用於促進更複雜的多步驟推理過程。Anthropic 建議對任何採樣請求都進行人工批准,以確保使用者對 AI 的行為保持控制 。

客戶端原語包括:

  • 根 (Roots): 這些代表了宿主機檔案系統或環境中的入口點。在獲得適當的權限後,MCP 伺服器可以訪問這些根目錄下的資源

這些特定原語的定義標準化了客戶端和伺服器之間的通訊方式,使得建構和整合新的功能變得更加容易。這表明 AI 互動正朝著更加結構化和可預測的方向發展。此外,“採樣”原語的引入突顯了 MCP 在實現更複雜的、多步驟的代理行為方面的潛力,在這種行為中,AI 可以編排多個工具呼叫和推理步驟

在協議規範方面,模型上下文協議(MCP)的設計基於廣泛使用的 JSON-RPC 2.0 標準 。JSON-RPC 是一種輕量級的遠端過程呼叫協議,它為客戶端和伺服器之間的通訊提供了一個簡單而有效的方式 。選擇 JSON-RPC 2.0 作為 MCP 的基礎,表明了設計者對協議的簡潔性和互操作性的重視,因為 JSON-RPC 是一個被廣泛採納的 RPC 通訊標準。這種選擇很可能使得開發者能夠更容易地使用各種程式語言來實現 MCP 客戶端和伺服器

安全性是模型上下文協議(MCP)設計中一個至關重要的方面 。宿主應用程式,即 AI 模型實際運行的環境,對客戶端發起的連接請求擁有完全的控制權。這種設計允許使用者和組織對其 AI 助手可以訪問的外部資源進行嚴格的管理 。此外,MCP 伺服器本身也內建了安全機制,這使得伺服器能夠獨立地管理和控制其自身的資源,而無需將敏感的 API 金鑰暴露給 LLM 提供商 。所有通過 MCP 進行的資料互動都遵循標準化的協議,這意味著可以更好地監控和控制資料的流動,從而有效地防止資料洩露的風險 。值得強調的是,對於任何可能涉及敏感資料的操作,MCP 都要求使用者進行明確的批准。這種對使用者同意和資料存取控制的重視,對於建立使用者對與外部資料和工具互動的 AI 系統的信任至關重要。這表明,在 AI 系統整合外部功能時,安全性和隱私是需要重點考慮的關鍵因素

MCP 的優勢與益處

模型上下文協議(MCP)作為一個開放標準,其價值在於能夠促進不同 AI 模型和工具之間的標準化與互操作性。MCP 的目標是建立一個相容並能協同工作的生態系統。一旦各種工具和 AI 模型都遵循了 MCP 的標準,那麼任何符合該標準的模型都能夠與任何相容的工具一起工作,從而極大地促進了 AI 領域的協作和創新。此外,MCP 提供了一種通用的方法,使得 AI 模型能夠無縫地訪問各種不同的資料來源,而無需為每種資料來源編寫特定的整合程式碼。這種標準化和互操作性的願景,使得使用者可以根據特定任務的需求選擇最合適的 AI 模型,並將其輕鬆地與他們偏好的工具和資料來源整合,從而有望顯著加速創新並減少對特定供應商的依賴

MCP 的另一個關鍵優勢在於它能夠簡化將 AI 模型與外部資料來源和工具整合的過程,從而降低了整合的複雜性。傳統上,開發者需要為每個要連接的資料集編寫定製的程式碼,而 MCP 消除了這一障礙 。它通過提供一種標準化的“語言”來實現這些互動,就像一個可以適用於所有裝置的通用介面卡 。借助 MCP,開發者只需要進行一次整合,就可以連接到任何地方的資料來源。這種整合過程的簡化可以顯著減少開發所需的時間和精力,使得開發者能夠更專注於建構 AI 應用程式的核心邏輯。通過抽象掉各種複雜性的整合細節,MCP 使得將 AI 模型連接到廣泛的外部資源變得更加容易。

模型上下文協議(MCP)還顯著增強了 AI 模型的上下文感知能力。通過允許 AI 模型訪問即時的、相關的資料和專門的工具,MCP 使得它們能夠基於精準和相關的資訊做出響應。此外,MCP 支援雙向通訊,這意味著 AI 模型不僅可以接收資訊,還可以觸發外部系統中的操作 。訪問即時資料的能力對於許多 AI 應用來說至關重要,MCP 提供了一種標準化的方式,使得模型能夠保持資訊的最新狀態並提供更相關的響應。這種能力使得 AI 不再僅僅依賴於其訓練資料,而是能夠與動態變化的世界進行互動。

在安全性方面,模型上下文協議(MCP)也發揮著重要作用,它內建了安全機制,可以保障資料安全和使用者隱私 。MCP 允許伺服器控制自己的資源,而無需向 LLM 提供商提供敏感的 API 金鑰 8=。對於企業而言,MCP 的安全性特性至關重要,因為它解決了在將 AI 與敏感的內部系統整合時可能出現的資料隱私和控制問題。通過允許伺服器管理自身的安全策略,MCP 提供了一種更安全的方式來連接 AI 模型和企業資料

此外,MCP 還能夠降低 AI 驅動應用程式的開發成本和複雜性 。通過標準化開發流程,MCP 可以加快開發者的上手速度 。它還減少了開發者在整合過程中面臨的複雜性,並統一了開發模式 。這種降低的複雜性和標準化的開發模式可以減少開發成本,並簡化 AI 驅動應用程式的維護工作。通過提供一個通用的框架,MCP 減少了對專業知識的需求,並簡化了開發過程

最後,模型上下文協議(MCP)有助於建構更具適應性和可擴展性的未來 AI 應用。MCP 確保應用程式能夠適應不斷湧現的新技術,而無需進行大規模的重寫。它還支援建構從一開始就能夠與使用者的個人 AI 助手以及其他 AI 驅動的應用程式進行互動的應用程式。在快速發展的 AI 領域,MCP 的這種面向未來的能力非常重要,它使得應用程式能夠與新的模型和工具保持相容,而無需進行大量的修改。這種適應性確保了基於 MCP 標準建構的 AI 應用程式的長期價值和可用性。

MCP 的應用場景與實例

模型上下文協議(MCP)在各種場景中都展現出強大的應用潛力。其中一個重要的應用是檔案系統整合。通過使用檔案系統 MCP 伺服器,Anthropic 的 Claude 可以實現對本地檔案的訪問和操作,例如建立、讀取和編輯檔案 。使用者甚至可以要求 Claude 列出特定目錄下的內容,或者將一首詩歌直接保存到他們的桌面 。檔案系統整合為 AI 助手打開了新的大門,使其能夠協助使用者進行本地檔案管理、文件處理以及其他需要訪問使用者電腦上檔案的任務。這種整合使得 AI 成為一個更加多才多藝的個人助理

MCP 在程式碼庫管理方面也具有顯著的應用價值,尤其是在像 GitHub 和 GitLab 這樣的程式碼託管平台上。通過整合 Git 和 GitHub/GitLab MCP 伺服器,Claude 可以管理程式碼倉庫,執行程式碼提交、建立分支、建立拉取請求等操作 。例如,使用者可以指示 Claude 建立一個新的 GitHub 倉庫,並將一個 HTML 檔案推送到主分支 。與程式碼倉庫的整合使得 AI 成為軟體開發工作流程中一個非常有價值的工具,能夠自動化程式碼管理和程式碼審查等任務。這種 MCP 的應用可以顯著提高開發者的生產力

資料庫互動是 MCP 的另一個重要應用領域。通過 PostgreSQL 和 SQLite MCP 伺服器,Claude 能夠查詢和更新資料庫中的資料 。例如,開發者可以要求 Claude 查詢電影資料庫的結構模式,或者檢索特定電影的詳細資訊。資料庫整合使得 AI 能夠訪問和分析結構化資料,從而可以通過自然語言實現資料分析和報告等應用。這項功能使得 AI 成為處理資料的更強大的工具。

除了上述場景,還存在許多與其他常用服務的整合案例。例如,已經有與 Slack 和 Google Drive 整合的 MCP 伺服器,這些伺服器允許 Claude 與這些平台進行互動 。通過 Slack MCP 伺服器,Claude 可以傳送消息或管理 Slack 頻道。與流行的生產力工具的整合增強了 AI 助手在使用者日常工作流程中提供幫助的能力,因為它能夠連接到使用者已經使用的應用程式。這極大地拓寬了 AI 助手的適用性和實用性。

值得特別提及的是使用 Claude Code 和 MCP 自動化開發任務。Claude Code 是一款直接在終端中運行的智能編碼工具,它能夠理解程式碼庫並幫助開發者更快地編寫程式碼 。它可以執行諸如編輯檔案、修復錯誤、運行測試以及管理 Git 歷史等任務。Claude Code MCP 的出現,將 Claude Code 的強大功能實現為 MCP 伺服器,從而允許通過標準化的 MCP 介面來使用其軟體工程能力。Claude Code MCP 提供了一系列工具,例如執行 shell 命令、讀寫檔案、列出目錄、搜尋檔案、程式碼審查等。Claude Code 和 MCP 的結合,為直接在開發環境中自動化各種開發任務提供了一個強大的平台。這種整合簡化了開發工作流程,並通過利用 AI 進行編碼輔助和自動化,顯著提高了開發者的生產力

MCP 與傳統 API 及函數呼叫的比較

模型上下文協議(MCP)與傳統的應用程式程式設計介面(APIs)以及近年來流行的函數呼叫技術在設計理念、功能特性和使用方式上存在著顯著的不同。傳統的 API 通常通過一組預先定義好的、固定的端點來暴露其功能,客戶端需要按照這些端點的特定結構進行互動 。相比之下,MCP 的核心理念是將功能暴露為自描述的“工具” 。在 MCP 中,每個工具都包含了豐富的語義描述,詳細說明了該工具的具體功能、每個參數的含義、預期的輸出格式以及任何相關的約束和限制 。這種自描述的特性使得 MCP 在很大程度上減少了對外部文件的依賴,因為介面本身就包含了足夠的使用資訊。

從通訊模式來看,傳統的 API 通常採用簡單的請求-響應模式,即客戶端傳送一個請求,伺服器返回一個響應。而 MCP 則更像是一個持續的、雙向的對話過程 。它不僅允許 AI 模型請求資料或執行操作,還能夠動態地接收來自外部工具的更新,而無需客戶端不斷地傳送新的請求 。這種持久的、即時的雙向通訊能力,類似於 WebSockets,使得 MCP 更適合建構需要保持狀態和即時互動的 AI 應用

函數呼叫是近年來在 LLM 領域興起的一種技術,它允許 AI 模型在生成文字的過程中,識別出需要呼叫外部函數來獲取資訊或執行特定操作的意圖。雖然函數呼叫也旨在增強 AI 與外部世界的互動能力,但它通常發生在伺服器端,並且往往是特定於某個 AI 模型或平台的。相比之下,MCP 更多地發生在客戶端(例如 Claude Desktop 應用),它為跨各種不同的工具提供了一個更加一致和標準化的執行框架。此外,MCP 的設計目標是成為模型無關的,這意味著理論上它可以與不同的 LLM(包括 Anthropic 的 Claude、OpenAI 的 GPT 系列以及各種開源模型)一起使用。

模型上下文協議(MCP)在上下文管理方面也展現出相對於傳統 API 和函數呼叫的優勢。MCP 旨在提供更強的上下文感知和管理能力,使得 AI 模型能夠更好地理解和利用來自不同資料來源的資訊。而傳統的 API 在處理複雜的、多輪的對話上下文時可能存在侷限性。函數呼叫雖然也能夠傳遞一定的上下文資訊,但其主要關注點在於觸發特定的功能,而非維護長期的、豐富的互動上下文。

總而言之,MCP 的自描述工具、動態適應性以及對持續雙向通訊的支援,使其在與外部世界互動方面比傳統 API 更加靈活和強大,尤其對於需要豐富上下文資訊的 AI 系統而言。同時,MCP 的模型無關性以及更全面的整合方法,也使其在互操作性和標準化方面具有超越特定供應商函數呼叫技術的潛力。

為了更清晰地對比 MCP 與傳統 API 和函數呼叫,下表總結了它們在關鍵特性上的差異:

表 1: MCP vs. 傳統 APIs 和函數呼叫

MCP 入門與使用指南

對於希望開始使用模型上下文協議(MCP)的使用者,Anthropic 提供了一系列工具和文件。在 Anthropic 的 Claude Desktop 應用中設定 MCP 相對簡單。使用者可以通過編輯 Claude Desktop 應用的組態檔案 claude_desktop_config.json 來組態 MCP 伺服器 。在這個組態檔案中,使用者需要指定想要使用的 MCP 伺服器的名稱、啟動該伺服器的命令以及任何必要的參數 。一旦 Claude Desktop 應用啟動,如果組態正確,使用者將在輸入框的右下角看到一個錘子圖示。點選這個圖示可以查看當前組態並可供使用的工具

這是最近火爆全網的Blender MCP,大家可以直觀的感受下MCP的威力,現在Claude AI可以直接與Blender對話。 立即將任何提示或2D圖像轉化為驚豔的3D場景

對於開發者而言,Anthropic 提供了軟體開發工具包(SDKs),用於建構自訂的 MCP 伺服器和客戶端。這些 SDK 支援多種流行的程式語言,包括 Python、TypeScript、Kotlin 和 Java 。開發者可以利用這些 SDK 來定義自己的資源、工具和提示,並實現伺服器端的具體邏輯。值得一提的是,開發者甚至可以使用像 Claude 這樣的 LLM 來加速 MCP 伺服器和客戶端的開發過程 。

目前已經存在許多預建構的 MCP 伺服器,這些伺服器旨在與常見的資料來源和工具進行整合,例如檔案系統、GitHub、GitLab、Google Drive、Slack 以及各種資料庫(如 PostgreSQL 和 SQLite)等 。這些預建構的伺服器提供了豐富的功能,例如檔案操作、程式碼倉庫管理、資料庫查詢、Web 搜尋以及瀏覽器自動化等等 。這些預建構伺服器的不斷增長,使得使用者能夠更輕鬆地將 Claude 連接到他們現有的工具和資料,而無需從頭開始開發自訂的整合方案。

在使用 MCP 時,遵循一些最佳實踐至關重要。使用者應該仔細審查並批准 Claude 提出的任何命令,尤其是在處理來自不可信來源的內容時。對於過長的文字內容,建議避免直接貼上,而是使用檔案進行互動 。將複雜的任務分解為更小的、更易於管理的互動也有助於提高效率 。在開發自訂 MCP 伺服器時,建議首先實現核心功能,然後再逐步迭代加入更多的特性。對每個元件進行徹底的測試,並始終將安全性放在首位。使用結構化的日誌記錄來跟蹤伺服器的操作和可能出現的錯誤。在與 Claude 互動時,使用清晰和具體的語言來指導它使用 MCP 的各項功能。遵循這些最佳實踐對於確保安全有效地使用 MCP 至關重要,尤其是在處理敏感資料或與外部系統進行互動時。這些指導原則可以幫助使用者降低潛在的風險,並最大限度地發揮使用 MCP 的益處。

MCP 的未來發展與對 AI 發展的影響

模型上下文協議(MCP)的未來發展前景廣闊,其生態系統有望持續壯大 。預計未來將湧現出更多的 MCP 伺服器和客戶端,從而進一步擴展其功能和應用範圍 。隨著遠端支援技術的日益成熟,未來還將增加額外的身份驗證和安全層,以確保在分佈式環境中對 AI 互動進行有效的控制 。可以預見的是,未來可能會出現專門用於列出和發現各種 MCP 伺服器的 marketplace 和類似於應用程式商店的平台。這些發展都將有助於建構一個更加完善和易於使用的 MCP 生態系統。

模型上下文協議(MCP)在推動 Agentic AI(自主智能代理)的發展方面也扮演著關鍵角色。MCP 為建構更自主、更智能的 AI 代理奠定了重要的基礎,使得 AI 能夠主動地收集上下文資訊並執行相應的操作 。未來的 AI 代理可以利用 MCP 與各種不同的系統進行互動,從而實現更複雜的任務自動化 。值得注意的是,MCP 中定義的“採樣”原語甚至允許 AI 驅動的伺服器請求進一步的 AI 計算,這實際上使得 AI 代理能夠執行多步驟的推理過程 。這預示著 MCP 不僅僅是一個簡單的工具整合協議,它更是建構能夠進行複雜規劃和自主行動的 AI 系統的關鍵組成部分。

儘管 MCP 具有巨大的潛力,但在其推廣和應用過程中仍然可能面臨一些挑戰和侷限性。當前,在資料連接和互動領域存在著許多競爭性的標準,MCP 作為其中之一,要成為行業範圍內的通用標準,仍然面臨著巨大的挑戰 。在實際應用中,由於資料來源和 AI 應用的多樣性,可能會出現一些相容性問題 。此外,一些評論員認為,MCP 的某些方面可能被過度宣傳 。就目前而言,MCP 主要面向企業和開發者使用者,對於普通消費者而言,其應用可能還不夠直接 。要充分發揮 MCP 的潛力,需要得到廣泛的採用,並且需要說服那些已經投入到現有生態系統中的開發者接受並使用它 。目前來看,使用 MCP 仍然需要一定的開發背景知識 。克服這些挑戰將是 MCP 最終成為 AI 互動的真正通用標準的關鍵。

結論

總而言之,Claude 模型上下文協議(MCP)代表了在 AI 模型與外部世界整合方面的一個重要進步。通過提供一個標準化的框架,MCP 簡化了 AI 應用程式的開發,增強了 AI 的上下文感知能力,並提高了資料互動的安全性。它不僅降低了開發成本和複雜性,還有助於建構更具適應性和可擴展性的未來 AI 應用。雖然 MCP 在推廣和應用過程中仍面臨一些挑戰,但其在標準化、互操作性以及促進更自主智能的 AI 代理髮展方面的潛力是巨大的。隨著 MCP 生態系統的不斷成熟和完善,它有望在塑造 AI 技術的未來發展中發揮關鍵作用。 (AI寒武紀)