深入解析模型上下文協議(MCP)

概述

隨着 Cursor 等智能編程工具的崛起、Manus 產品的推出,以及 Claude Sonnet 等大語言模型在編程領域能力的顯著提升,MCP 逐漸引起了技術社區的廣泛關注與重視。本文將深入淺出地介紹 MCP 的核心概念,並結合具體場景探討其實際應用價值。

什麼是 MCP?

MCP(The Model Context Protocol,模型上下文協議)是一個開放協議,由 Anthropic 在 2024 年 11 月提出。MCP 能夠實現 LLM 應用與外部數據源和工具之間的無縫集成。無論是在構建一個 AI 驅動的 IDE、增強聊天界面,還是創建自定義 AI 工作流,MCP 都提供了一種標準化的方式,將 LLM 與所需的上下文連接起來。 可以把 MCP 理解爲 Agent 世界的 轉接頭

MCP 整體架構

MCP 遵循 client-server 架構,對於一個 Agent 而言可以連接多個 MCP Server。整體架構包含 4 部分:

MCP Host

MCP Host 可以是任何需要訪問外部數據的 LLM 應用 / Agent。它們負責:

MCP Client

每個 MCP Client 負責:

MCP Server

MCP Server 是爲 LLM 提供外部數據和上下文的基礎構建單元。MCP Server 的關鍵組成包括:

工具由模型自主控制,而資源和提示模板則由用戶進行控制。模型能夠根據給定的上下文自動發現並調用所需工具。

MCP Protocols

所有的 MCP Protocol 必須遵循 JSON-RPC 2.0。目前協議定義的類型有:

關於協議的更多內容可以參考:https://spec.modelcontextprotocol.io/specification/2024-11-05/

Function Calling vs MCP

主要區別如下:

Function Calling 由特定的大模型服務提供商(如 OpenAI 的 GPT-4)引入的功能。它允許模型根據輸入,生成特定格式的函數調用請求。應用程序接收到該請求後,執行相應的操作,並將結果返回給模型。這種機制使模型能夠主動請求外部功能的執行,但並不強制要求使用特定的通信協議或格式。

MCP 是在 OpenAI 的 Function call 和 GPTs 之後提出的,可以說 Function call 爲 MCP 提供了靈感和基礎功能。MCP 是一種開放協議,旨在通過標準化的接口,實現大型語言模型與外部數據源及工具的無縫集成。它規定了上下文與請求的結構化傳遞方式,確保消息傳遞的標準化和一致性。MCP 的設計初衷是通過本地運行服務器來確保用戶數據的安全性,避免將敏感信息直接發送給 LLM。

主要區別:

參考資料

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/37_8ohjeecLcmRFIdfWklQ