一次搭建完勝1億次編碼,MCP硅谷瘋傳!Anthropic協議解鎖智能體「萬能手」
上一周,智能體迎來里程碑式的一周。
從Manus及其開源復現,到Opera的瀏覽器操作AI智能體、AI工作伴侶Archer,再到多種個人項目,將Agent推向熱議風口。
在處理動輒需要十幾甚至幾十分鐘的復雜任務時,涉及到3個核心能力:
- 規劃
- 工具使用
- 記憶
其中,第二趴是讓智能體「動起來」的關鍵,真正與現實世界進行交互。
舉個例子,當前最強的開源復現OWL在查找倫敦今日放映的電影時,AI智能體主動調用Chrome搜索工具后,精準返回影院的實時信息。
而最火的開源項目OpenMauns,在查找Karpathy個人信息主頁信息時,也是基于強大的工具使用能力。
這些案例生動地證明了,工具使用,能讓智能體跳出空想局限,進化出會做事的能力。
而作為最強的標準化接口協議,MCP也在一夜間爆紅硅谷,無人不知。
對于圈外的人來說,可能對此有所陌生。而它的本質,就是智能體系統的一種。
一次搭建,代替1億次配置
去11月,Anthropic首次提出「模型上下文協議」,即MCP,賦予了Claude模型超級能力,一次構建,讓AI與工作流深度集成。
其主要優勢如下:
- 開發簡化:一次編寫,多次集成,無需為每個新集成重寫定制代碼
- 靈活性:切換AI模型或工具時,不需要復雜的重新配置
- 實時響應:MCP連接保持活躍狀態,支持實時上下文更新和交互
- 安全性和合規性:內置訪問控制機制和標準化的安全實踐
- 可擴展性:隨著AI生態系統的擴展,只需連接新的MCP服務器即可輕松添加新功能
用通俗的話講,MCP就像是專為AI應用設計的通用接口,類似我們日常使用的USB-C。
正如USB-C簡化了不同設備與計算機的連接方式,MCP簡化了AI模型與數據、工具和服務之間的交互方式。
通過MCP,AI助手不僅能夠「讀懂」代碼,還能「理解」團隊討論、涉及文檔等外部信息,提供更加精準的回答。
MCP是一種標準化協議,用于連接AI智能體與各種外部工具和數據源
相比之下,在沒有MCP之前,AI助手要想與外部工具互動,必須通過編寫代碼并調用API,這意味著每一種具體的連接都需要提前手動編程,效率低下且耗時費力。
更棘手的是,每個AI助手與每個外部工具之間都需要單獨進行配置。如果有1000個AI助手和1000個外部工具,理論上需要編寫1000×1000=100萬個獨立的連接代碼,工作量簡直是個天文數字。
打個比方:API就像是不同的門,其中每扇門都有自己獨特的鑰匙和使用規則:
傳統API要求開發人員為每個服務或數據源編寫定制化的集成代碼
而MCP的出現就像為AI助手和外部系統打造了一套通用的「標準語言」,堪稱是智能體生態的一次「標準化革命」。
一旦某個AI助手實現了MCP協議,它就能通過這個協議無縫連接上成千上萬的外部工具,無需再為每種連接單獨編寫代碼。
同樣,外部工具(比如郵件、天氣應用等)也只需搭建一次MCP服務器,之后所有支持MCP的AI助手都可以直接與之交互。
假如有1萬個AI助手和1萬個外部工具。在MCP模式下,每方只需實現一次協議,總共只需2萬次配置。
而按照傳統編碼方式,每種AI助手與每種外部工具都要單獨對接,那將是1萬×1萬=1億次配置!
這直接使配置效率提高了不止一個維度。
MCP的靈活性也非常突出,它既可以在云端運行,也可以在本地設備上部署,適應性極強。
可以說,MCP就像為AI助手和外部系統之間架設了一條高速路,取代了過去需要技術人員一橋一橋手工搭建的低效模式。
什么是MCP?
正如前文所說,MCP(Model Context Protocol)是一種新的開放協議,目的是為LLM提供標準化的上下文信息傳遞方式,從而實現AI智能體與外部數據及工具的結合。
和傳統的API相比,MCP的區別在于:
- 單一協議:MCP作為一種標準化的「通用接口」,集成一個MCP意味著可以訪問多個工具和服務,而不僅僅是單一服務。
- 動態發現:MCP允許AI模型動態發現并與可用工具交互,無需預先設定每個集成的固定代碼。
- 雙向通信:MCP支持持續、實時的雙向通信——類似于WebSockets。AI模型既可以獲取信息,也可以實時觸發操作。
其中,實時雙向通信的機制如下:
- 拉取數據:LLM向服務器查詢上下文信息。例如,查看你的日歷安排。
- 觸發操作:LLM指示服務器執行具體操作。例如,重新安排會議、發送電子郵件。
不過,如果應用場景需要精確、可預測的交互模式,并有嚴格的限制條件,傳統API可能更為適合。
MCP提供了廣泛、動態的能力,非常適合需要靈活性和上下文感知的場景,但對于高度受控的、確定性的應用可能不是最佳選擇。
在以下情況下推薦使用傳統API:
- 需要精細控制和高度特定、受限的功能場景
- 追求性能優化而需要緊密耦合的系統
- 要求最高可預測性和最小上下文自主性的應用
架構
MCP采用簡單的客戶端-服務器架構模式:
- MCP主機:需要訪問外部數據或工具的應用程序(如Claude Desktop或AI驅動的集成開發環境)
- MCP客戶端:與MCP服務器維持專屬的一對一連接
- MCP服務器:輕量級服務器,通過MCP協議提供特定功能,連接到本地或遠程數據源
- 本地數據源:MCP服務器安全訪問的文件、數據庫或服務
- 遠程服務:MCP服務器訪問的基于互聯網的外部API或服務
將MCP比作一座橋梁可以更清晰地理解:MCP本身不處理復雜邏輯;它只是協調AI模型和各種工具之間的數據和指令流通。
具體來說,服務器就是與API進行交互的東西。它可以在遠程服務器上(例如,在云上),或者在你的本地系統上。
它包含了所有系統上需要與之交互進而采取行動的代碼,比如發送Slack消息、創建文件等等。
如下圖所示,可以通過MCP服務,調用GitHub API在倉庫里創建代碼文件。
MCP客戶端負責與服務器進行通信。客戶端的一個非常酷的特點是它可以同時與多個服務器進行交互。
所以你可以設置專門的服務器來處理GitHub交互和Slack交互,然后把它們接入同一個客戶端。
最重要的,協議是使一切運作的關鍵。可以將它視為一種永遠不會改變的通用語言,MCP服務器和MCP客戶端都能使用。
它就像USB接口一樣,用于將MCP客戶端連接到MCP服務器。
USB接口讓手機連接到筆記本電腦,MCP協議讓你可以將第三方API連接到桌面應用程序。
針對各種類型的MCP客戶端,Total TypeScript的作者Matt Pocock還進行了一波對比。
可以看到,Claude Desktop和Continue支持資源、提示、工具,功能很全面。5ire和BeeAI Framework就比較有限,工具支持還可以,但其他方面基本不行。Cline也支持資源和工具,但不支持提示。Cursor和Emacs Mcp主要支持工具,其他功能都不行,適合簡單工具操作。
應用場景
在實際應用中,MCP客戶端(例如,client.py中的Python腳本)會與管理各種特定工具(如Gmail、Slack或日歷應用)交互的MCP服務器進行通信。
這種標準化大大降低了復雜度,使開發人員能夠快速實現復雜的交互功能。
1. 行程規劃助手
- 使用傳統API需要為Google日歷、電子郵件、航空公司預訂API分別編寫代碼,每個都需要單獨的認證、上下文傳遞和錯誤處理邏輯。
- 使用MCP則容易得多,AI助手能夠無縫地檢查日歷可用時間,預訂航班,并發送確認郵件——所有這些都通過MCP服務器完成,無需為每個工具單獨開發集成代碼。
2. 高級IDE(智能代碼編輯器)
- 使用傳統API需要手動將開發環境與文件系統、版本控制、包管理器和文檔系統集成在一起。
- 而使用MCP,開發環境將通過單一MCP協議連接這些服務,實現更豐富的上下文感知能力和更智能的代碼建議
3. 復雜數據分析
- 使用傳統API需要手動管理與各個數據庫和數據可視化工具的連接。
- 使用MCP AI分析平臺能夠通過統一的MCP層自動發現并與多個數據庫、可視化工具和模擬系統進行交互。
快速入門
MCP集成流程:
- 定義功能:明確規劃MCP服務器將提供哪些功能
- 實現MCP層:遵循標準化的MCP協議規范進行開發
- 選擇傳輸方式:在本地傳輸(stdio)或遠程傳輸(服務器發送事件/WebSockets)之間選擇
- 創建資源/工具:開發或連接MCP將要交互的特定數據源和服務
- 設置客戶端:在MCP服務器和客戶端之間建立安全穩定的連接通道
MCP用例爆發
大模型爆火之后,提示工程師成為新型職業。如今,已經有大佬建議,開發者們趕快去構建商業化MCP服務器吧。
Total TypeScript的作者Matt Pocock僅用28行代碼就開發出了一個MCP服務器。
Cursor+MCP夢幻聯動,即可迅速構建出客戶需求的功能,全程無需人類干預。
對于碼農來說,又是效率的一次極致提升。AI不僅能幫你寫代碼,還能自動完成從需求分析到功能上線的全流程。
客戶通過Slack發送功能需求,Cursor自動讀取消息、構建功能,并創建Pull Request
前Meta研究員、CopilotKit創始人Atai Barkai剛剛開源了一個Open MCP Client的項目。
它可以讓任何應用,直接與MCP服務器直接對話,實現更更多智能的功能。
只需從Composio中獲取一個URL,開發者即可在自己的應用中集成這個MCP的能力,無需從0開發。
項目地址:https://open-mcp-client.vercel.app/
Agno的開發者Ashpreet Bedi打造了一款「通用MCP智能體」UAgl,可以借此輕松連接和管理多個MCP服務器。
開發者Will Brown開源了MCP Test Client,可以在開發過程中測試MCP服務器時既充當服務器(對Claude而言),又充當客戶端(對被測試的服務器而言)。