文章目錄
- 序言:AI 應用層進入 MCP 時代
- 為什么 MCP 開啟 AI 應用融合新時代的鑰匙
- 為什么是 MCP?它與 Function Calling、Agent 有什么區別?
- Function Calling
- AI Agent
- MCP(Model Context Protocol)
- MCP 如何工作
- MCP Server 的意義
- 總結
- 個人簡介
序言:AI 應用層進入 MCP 時代
過去一年,AI 模型的發展進入了快車道。從 GPT-4、Claude 3 到 DeepSeek R1,不論是推理能力還是減少幻覺的能力都有了質的飛躍。與此同時,Prompt 工程、RAG(檢索增強生成)、AI Agent 等技術路線也極大推動了 AI 應用的多樣性。
然而,AI 應用在集成現有系統和工具鏈方面進展緩慢。盡管市面上涌現了大量新的 AI 服務,但它們幾乎都是“全新打造”的,而不是融入我們日常使用的工作流、軟件或系統中。
直到 2023 年 11 月,Anthropic 發布 MCP(Model Context Protocol,模型上下文協議)后,AI 應用開發才真正迎來了新階段。MCP 的提出使得 AI 模型可以標準化地訪問外部服務和數據源,開啟了 AI 系統原生集成的新時代。
為什么 MCP 開啟 AI 應用融合新時代的鑰匙
當前 AI 應用雖然能力強大,但仍有以下局限:
- 多數 AI 應用是“孤島”,不能無縫與開發者常用工具整合。
- 很少有 AI 工具能做到同時聯網搜索、發郵件、發博客等操作。
- 實現這些功能的代碼并不復雜,但集成非常困難,主要是因為系統割裂,數據流動不暢。
比如在 IDE 中,如果我們能讓 AI 做到以下事情,開發體驗將有質的飛躍:
- 查詢本地數據庫,輔助開發
- 檢索 GitHub Issue 判斷是否是已知問題
- 發消息通知同事 Code Review 某個 PR
- 修改 AWS/Azure 配置自動部署
AI 無法完成這些自動化整合,原因主要在兩點:
- 企業數據敏感,流程重、安全要求高。
- 缺少統一標準協議來連接模型與服務。
而 MCP,正是為了解決這一“協議層”的缺失而誕生的。
為什么是 MCP?它與 Function Calling、Agent 有什么區別?
很多人可能會問:OpenAI 不是早就有 function calling?AI Agent 不也能整合多種服務?為什么還需要 MCP?
Function Calling
Function Calling 是模型根據上下文自動調用外部函數的機制,起到了模型與外部服務之間的橋梁作用。
特點:
- 模型平臺(如 OpenAI、Claude)定義函數結構。
- 需要開發者明確提供函數描述、輸入輸出。
- 執行任務時,模型根據內容決定調用哪個函數。
缺點:
- 不適合處理多輪復雜任務。
- 代碼不易維護,難以標準化和復用。
AI Agent
AI Agent 是一個可以自主完成任務的智能系統。
特點:
- 具備決策和行動能力。
- 可以連續進行多步推理。
- 可連接多種工具,具備一定自治性。
但問題是,目前大多數 AI Agent 構建仍依賴于自定義、耦合嚴重的工具代碼,難以復用、協作和共享。
MCP(Model Context Protocol)
MCP 是一個開放協議,目標是“Type-C 化”AI 接入生態。
特點:
- 不依賴某個模型平臺,統一標準。
- 建立模型與服務之間的通用上下文交換機制。
- 支持多步任務、狀態保持、權限控制。
優勢:
- 將服務按層次抽象:描述、能力、限制。
- Client(Agent)根據協議自行組合能力,完成任務。
- 構建生態后,不同服務之間可以互操作,AI 自動化能力大大增強。
簡而言之:
對比維度 | Function Calling | AI Agent | MCP 協議 |
---|---|---|---|
目的 | 調用函數 | 執行任務 | 構建生態 |
復雜任務支持 | 弱 | 強 | 強 |
標準化程度 | 弱(平臺私有) | 弱(工具割裂) | 強(協議層) |
維護難度 | 高 | 高 | 低(生態共享) |
MCP 如何工作
我們看一下官方提供的架構圖:
MCP 的系統由五個核心組成部分:
-
MCP Hosts
運行在用戶側的應用程序,如 Cursor、Claude Desktop 等,它們是模型調用服務的發起者。 -
MCP Clients
在 Host 中運行的模塊,負責與遠程 MCP Server 保持連接,并轉發請求、維持上下文。 -
MCP Servers
服務提供者,通過 MCP 協議暴露 API、數據源、工具能力。它是系統的“能力注冊中心”。 -
Local Data Sources
如本地文件、本地數據庫、本地服務接口等。 -
Remote Services
如網絡 API、第三方服務、云平臺資源等。
MCP Server 的意義
Server 是整個 MCP 系統的“智能服務目錄”,它定義了:
- 哪些服務對 AI 可見;
- 每個服務的輸入輸出格式;
- 每個服務的權限范圍和調用限制;
- 如何持久化和恢復上下文。
以 Cursor 為例,其 AI Agent 演進過程如下:
階段 | 能力 | 說明 |
---|---|---|
AI Chat | 提建議 | 由人執行 |
AI Composer | 自動修改代碼 | 需要人確認 |
AI Agent | 全自動任務執行 | 可讀圖、調試、部署 |
MCP Server 的角色就是在這個過程中,為 Agent 提供所有服務的信息與上下文支持。
最終,MCP 目標是構建一個跨平臺、跨服務的“AI 應用生態協議層”,使得 AI Agent 可以像人一樣自由調度各種能力,實現“從建議到行動”的完整閉環。
總結
MCP 是通往 AI 原生集成世界的關鍵協議。它的出現,使得:
- AI Agent 可以理解并調用各種服務;
- 開發者可以復用協議組件,加速開發;
- 企業可以構建自己的 MCP Server,有效保護數據隱私。
正如 USB Type-C 統一了電子設備之間的連接,MCP 有望統一 AI 與工具、服務之間的交互方式。
未來,AI 不再只是“聊天機器人”,而是能真正執行任務、連接系統、完成工作流的全能助手。
個人簡介
👋 你好,我是 Lorin 洛林,一位 Java 后端技術開發者!座右銘:Technology has the power to make the world a better place.
🚀 我對技術的熱情是我不斷學習和分享的動力。我的博客是一個關于Java生態系統、后端開發和最新技術趨勢的地方。
🧠 作為一個 Java 后端技術愛好者,我不僅熱衷于探索語言的新特性和技術的深度,還熱衷于分享我的見解和最佳實踐。我相信知識的分享和社區合作可以幫助我們共同成長。
💡 在我的博客上,你將找到關于Java核心概念、JVM 底層技術、常用框架如Spring和Mybatis 、MySQL等數據庫管理、RabbitMQ、Rocketmq等消息中間件、性能優化等內容的深入文章。我也將分享一些編程技巧和解決問題的方法,以幫助你更好地掌握Java編程。
🌐 我鼓勵互動和建立社區,因此請留下你的問題、建議或主題請求,讓我知道你感興趣的內容。此外,我將分享最新的互聯網和技術資訊,以確保你與技術世界的最新發展保持聯系。我期待與你一起在技術之路上前進,一起探討技術世界的無限可能性。
📖 保持關注我的博客,讓我們共同追求技術卓越。