高手論技
編者按:在人工智能越來(lái)越融入生活的今天,你是否好奇人工智能如何與外部系統(tǒng)“對(duì)話”,精準(zhǔn)獲取信息并完成任務(wù)?Anthropic于2024年推出的MCP協(xié)議將給你答案。本系列文章將分兩部分解析MCP協(xié)議,本期重點(diǎn)介紹MCP協(xié)議的起源和工作原理,下一期將聚焦于MCP協(xié)議的具體實(shí)現(xiàn)方法。通過(guò)這兩期的文章,讀者將能夠了解MCP協(xié)議,并掌握其在實(shí)際應(yīng)用中的具體操作方法。
關(guān)鍵詞:大模型;MCP協(xié)議;人工智能
中圖分類號(hào):G434文獻(xiàn)標(biāo)識(shí)碼:A論文編號(hào):1674—2117(2025)13-0074-07
近年來(lái),大模型技術(shù)成為推動(dòng)行業(yè)進(jìn)步的核心力量,從GPT的誕生開啟預(yù)訓(xùn)練模型的新時(shí)代,到ChatGPT引發(fā)全球范圍內(nèi)的廣泛關(guān)注與應(yīng)用熱潮,再到DeepSeek等推理模型能力的不斷提升,人工智能(AI)正深刻影響著人們的生活、工作和學(xué)習(xí)方式。同時(shí),隨著應(yīng)用的深入,大模型的局限性也逐漸顯現(xiàn),促使業(yè)界不斷探索新的技術(shù)路徑和解決方案,MCP協(xié)議便是其中的重要突破之一。
大模型的快速迭代
自2018年OpenAI推出首款GPT模型 GPT-1以來(lái),AI在語(yǔ)言領(lǐng)域的發(fā)展便開啟了新的篇章。GPT-1基于Transformer架構(gòu),通過(guò)在海量文本數(shù)據(jù)上進(jìn)行無(wú)監(jiān)督預(yù)訓(xùn)練,在一定程度上達(dá)到了理解語(yǔ)言知識(shí)以及語(yǔ)義層面的效果,而后隨著該系列模型不斷演進(jìn)迭代,從GPT-2到GPT-3,模型參數(shù)量也在不斷提高,模型性能得到了極大程度的提升,特別是GPT-3幾乎能覆蓋絕大多數(shù)自然語(yǔ)言處理的文本生成任務(wù),并能在如文本生成、問(wèn)答、翻譯等任務(wù)中生成連貫、通順、具邏輯性的語(yǔ)句,促使更多的AI應(yīng)用于自然語(yǔ)言處理方面。2022年底,基于GPT-3.5版優(yōu)化微調(diào)而來(lái)的ChatGPT火爆全球,它可以根據(jù)對(duì)話場(chǎng)景展開工作,能夠自如地與人類對(duì)話,無(wú)論是旅游攻略問(wèn)詢,還是知識(shí)性了解等,都可以得到準(zhǔn)確又實(shí)用的答案。
隨著GPT和ChatGPT的成功,全球科研機(jī)構(gòu)和企業(yè)紛紛涌入大模型研發(fā)賽道。我國(guó)的深度求索公司在2024年12月26日推出的DeepSeekV3在對(duì)話式AI及通用任務(wù)處理上表現(xiàn)優(yōu)異;2025年1月20日推出的DeepSeekR1則在推理能力上一騎絕塵,在編程、數(shù)學(xué)等深度思考任務(wù)中超越OpenAI的ol模型。該系列模型不僅性能卓越,還在成本效益和開源策略上獨(dú)樹一幟。DeepSeek憑借創(chuàng)新架構(gòu)設(shè)計(jì)和訓(xùn)練方法,大幅降低模型訓(xùn)練成本,同時(shí)采取開源策略,讓眾多開發(fā)者和研究人員得以基于其模型進(jìn)行二次開發(fā)、創(chuàng)新應(yīng)用,有力推動(dòng)了AI技術(shù)的廣泛傳播與發(fā)展。
大模型的局限與突破
盡管大模型在語(yǔ)言文字處理甚至邏輯推理方面取得了顯著成就,但它們?nèi)匀淮嬖谝欢ǖ木窒扌?。首先,大模型的知識(shí)更新存在滯后性,其訓(xùn)練數(shù)據(jù)是基于過(guò)去某個(gè)時(shí)間點(diǎn)之前的信息,對(duì)最新的事件、知識(shí)和技術(shù)無(wú)法及時(shí)更新。其次,大模型生成的內(nèi)容可能存在準(zhǔn)確性和可靠性問(wèn)題,尤其是在涉及專業(yè)領(lǐng)域知識(shí)時(shí),容易出現(xiàn)錯(cuò)誤或誤導(dǎo)性的回答。更大的難題是大模型在面對(duì)需要與外部世界進(jìn)行交互和操作的任務(wù)時(shí)顯得無(wú)能為力,如控制外圍設(shè)備、調(diào)用特定軟件的功能等。為了解決這些局限性,RAG(Retrieval-AugmentedGeneration,檢索增強(qiáng)生成)和FunctionCalling(函數(shù)調(diào)用)應(yīng)運(yùn)而生。
RAG有效地解決了大模型知識(shí)更新不及時(shí)和生成內(nèi)容準(zhǔn)確性的問(wèn)題。傳統(tǒng)的大模型主要依賴預(yù)訓(xùn)練數(shù)據(jù)中的知識(shí),而RAG通過(guò)引入外部知識(shí)檢索機(jī)制,在生成內(nèi)容時(shí)能夠?qū)崟r(shí)從網(wǎng)頁(yè)或數(shù)據(jù)庫(kù)中不斷抓取新知識(shí),并帶到模型的生成任務(wù)中去,其工作原理如圖1所示(圖片來(lái)源于Daily Dose of Data Science)。例如,可以直接抓取相關(guān)的網(wǎng)站或數(shù)據(jù)庫(kù),并將其中的內(nèi)容加入到自己的回答中,或者針對(duì)某個(gè)領(lǐng)域,調(diào)用該領(lǐng)域相應(yīng)的專業(yè)資料,然后再向模型提問(wèn),就能回答出更加專業(yè)準(zhǔn)確的答案。RAG有著諸多優(yōu)點(diǎn),但也有劣勢(shì)。首先,由于在模型生成的過(guò)程中需要對(duì)外部知識(shí)進(jìn)行檢索,因而需要付出大量的計(jì)算代價(jià)以及時(shí)間,這會(huì)延長(zhǎng)模型做出回應(yīng)的時(shí)間。其次,最終獲得的知識(shí)信息由檢索質(zhì)量決定,在檢索過(guò)程中如果信息是錯(cuò)誤的或者偏離問(wèn)題太遠(yuǎn),最終生成的答案也會(huì)隨之發(fā)生偏差。RAG雖然對(duì)復(fù)雜語(yǔ)義理解和推理任務(wù)具有一定作用,但仍需依靠大模型自身的能力,在面對(duì)深度理解及綜合分析類問(wèn)題時(shí)效果有限。
Function Calling可以讓大模型進(jìn)入真實(shí)世界,實(shí)現(xiàn)由文字理解到文字產(chǎn)生,最后到行為輸出的躍遷。其讓大模型可以調(diào)用外部世界的函數(shù)或者工具去做一些事情,如調(diào)用第三方的API來(lái)獲取信息、連接外部世界的設(shè)備去做一些簡(jiǎn)單的事情、執(zhí)行如使用某種APP程序等更為復(fù)雜的功能。Function Calling在幫助大模型打破語(yǔ)言處理上的桎梏的同時(shí),也能讓它實(shí)現(xiàn)更好的應(yīng)用。例如,在數(shù)據(jù)分析領(lǐng)域,通過(guò)調(diào)用相關(guān)的函數(shù)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的清洗、抽取或者其他操作,并在這些相關(guān)工作都完成之后生成一個(gè)相關(guān)的報(bào)表,這樣就可以更好地實(shí)現(xiàn)功能的發(fā)揮。其具體的工作原理如圖2所示(圖片來(lái)源于DailyDose ofData Science)。但同時(shí)它也產(chǎn)生了一些新的問(wèn)題:一方面要建立模型的調(diào)用接口以及規(guī)則,保證大模型可以了解并調(diào)用正確的函數(shù)(這對(duì)模型開發(fā)與維護(hù)是不小的負(fù)擔(dān));另一方面,如何保證模型可以在調(diào)用的過(guò)程中避免或應(yīng)對(duì)出現(xiàn)的錯(cuò)誤等。除了模型要對(duì)具體的指定的函數(shù)或者動(dòng)作進(jìn)行相應(yīng)的權(quán)限校驗(yàn),保證能調(diào)用到的是已授權(quán)的之外,也涉及一些安全問(wèn)題。
開啟大模型新征程
隨著大模型應(yīng)用領(lǐng)域的不斷擴(kuò)大,對(duì)高效、安全、通用的模型間通信及交互的協(xié)議需求也在逐漸增加。為了滿足大模型與外界系統(tǒng)有效交流、大模型協(xié)同工作,以及對(duì)整個(gè)資源進(jìn)行統(tǒng)一管理的要求,Anthropic公司于2024年11月25日發(fā)布了MCP協(xié)議(ModelContextProtocol模型上下文協(xié)議),以保證大模型更好地參與到多種任務(wù)場(chǎng)景之中,實(shí)現(xiàn)更有效率的工作。
MCP協(xié)議通過(guò)標(biāo)準(zhǔn)化的JSON消息格式和通用通信協(xié)議(如JSON-RPC、HTTP、WebSocket等),封裝多種不同的協(xié)議,從而實(shí)現(xiàn)與各種外部工具和數(shù)據(jù)源的交互。這種封裝方式使得開發(fā)者可以更加專注于AI模型的開發(fā),而無(wú)需過(guò)度關(guān)注不同工具之間的集成問(wèn)題。只需實(shí)現(xiàn)與MCP協(xié)議兼容的客戶端,即可與不同類型的服務(wù)器無(wú)縫連接。與RAG和Function Calling相比,MCP協(xié)議提供了統(tǒng)一的接口,解決了不同數(shù)據(jù)源和工具之間的兼容性問(wèn)題,降低了集成成本,使AI模型能夠輕松接入多種服務(wù),減少了開發(fā)和維護(hù)的工作量。此外,MCP協(xié)議的雙向通信機(jī)制支持更復(fù)雜和智能的交互,為未來(lái)智能應(yīng)用提供了廣泛的可能性。同時(shí),它支持多種數(shù)據(jù)傳輸機(jī)制和傳輸層協(xié)議,具有良好的擴(kuò)展性,能夠適應(yīng)不同的應(yīng)用需求。
器(Client-Server)架構(gòu),工作流程如圖3所示,主要包括以下三個(gè)核心組件:
主機(jī)(Host):Host是用戶與AI系統(tǒng)進(jìn)行交互的入口,負(fù)責(zé)接收用戶的輸入、展示系統(tǒng)的輸出,并協(xié)調(diào)整個(gè)交互流程。它可以是一個(gè)應(yīng)用程序、網(wǎng)頁(yè)界面或嵌入式系統(tǒng)等。
客戶端(Client):Client運(yùn)行在Host內(nèi)部,負(fù)責(zé)與外部的Server進(jìn)行通信。它根據(jù)Host的指令,向Server發(fā)送請(qǐng)求,并接收Server返回的響應(yīng)。
服務(wù)器(Server):Server提供各種外部工具、資源和服務(wù),供Client調(diào)用。它可以是一個(gè)應(yīng)用程序接口(API)、數(shù)據(jù)庫(kù)、傳感器設(shè)備或其他智能系統(tǒng)等。
在工作過(guò)程中,Host首先接收用戶的請(qǐng)求,然后將其傳遞給Client。Client根據(jù)請(qǐng)求的內(nèi)容和預(yù)定義的規(guī)則,構(gòu)造一個(gè)符合MCP協(xié)議的消
MCP協(xié)議采用客戶端-服務(wù)息,發(fā)送給相應(yīng)的Server。Server在接收到消息后,解析其中的指令和參數(shù),執(zhí)行相應(yīng)的操作,并將結(jié)果以
MCP協(xié)議規(guī)定的格式返回給Client。Client在收到響應(yīng)后,將其傳遞回Host,Host再將最終的結(jié)果展示給用戶。整個(gè)過(guò)程遵循JSON-RPC2.0協(xié)議,確保了信息傳遞的準(zhǔn)確性和可靠性。
案例模擬—天氣查詢與出行建議
1.MCP客戶端-服務(wù)器架構(gòu)工作流程
初始化階段:Host在啟動(dòng)時(shí),會(huì)創(chuàng)建一個(gè)Client實(shí)例,Client會(huì)主動(dòng)去連接Server,雙方進(jìn)行初始化握手。這個(gè)過(guò)程主要是確認(rèn)雙方的版本號(hào)是否匹配。
能力交換階段:Client會(huì)向Server請(qǐng)求提供能力列表,包括可用的工具、資源和提示。Server在收到請(qǐng)求后,會(huì)返回一個(gè)能力列表,描述每個(gè)工具和資源的功能。這一步相當(dāng)于雙方互相了解對(duì)方能提供什么服務(wù)。
請(qǐng)求/響應(yīng)階段:Host在接收到用戶的請(qǐng)求后,會(huì)根據(jù)請(qǐng)求內(nèi)容判斷是否需要調(diào)用外部工具。如果需要,Host會(huì)指示Client向?qū)?yīng)的Server發(fā)送請(qǐng)求。Server在接收到請(qǐng)求后,會(huì)執(zhí)行相應(yīng)的操作,如調(diào)用某個(gè)API,然后把結(jié)果返回給Client。Client再把結(jié)果傳遞給Host,Host最后生成最終的響應(yīng)返回給用戶。
通知階段:在某些情況下,Server可能還需要向Client發(fā)送一些通知,如資源更新通知、進(jìn)度通知等。Client在收到通知后,會(huì)更新本地的狀態(tài),并觸發(fā)一些回調(diào)函數(shù)
通信細(xì)節(jié):Client和Server之間的所有通信都遵循JSON-RPC 2.0協(xié)議,通過(guò)標(biāo)準(zhǔn)輸入輸出流(stdio)字段。
或服務(wù)器推送事件(SSE)進(jìn)行傳輸。每個(gè)請(qǐng)求和響應(yīng)都封裝成一個(gè)JSON對(duì)象,包含方法名、參數(shù)、ID等
安全和權(quán)限:在Sampling原語(yǔ)中,Server在請(qǐng)求AI模型進(jìn)行推理時(shí),需要用戶明確授權(quán)。協(xié)議限制了Server對(duì)提示內(nèi)容的可見范圍,以保護(hù)用戶隱私。
全流程如第76頁(yè)圖4所示。Host相當(dāng)于一個(gè)協(xié)調(diào)者,負(fù)責(zé)接收用戶請(qǐng)求并生成最終響應(yīng);Client相當(dāng)于一個(gè)中間人,負(fù)責(zé)與Server建立連接并協(xié)調(diào)消息傳遞;Server相當(dāng)于一個(gè)資源庫(kù),提供各種工具和資源供Client調(diào)用。三者通過(guò)JSON-RPC協(xié)議進(jìn)行標(biāo)準(zhǔn)化通信,實(shí)現(xiàn)了大模型與外部系統(tǒng)的高效交互。
2.系統(tǒng)架構(gòu)與角色定義
Host:用戶意圖的解析與調(diào)度中心、系統(tǒng)的“大腦”,負(fù)責(zé)接收用戶輸入、解析意圖、調(diào)度工具并生成最終響應(yīng),通常是大模型運(yùn)行的服務(wù)端。
Client:負(fù)責(zé)實(shí)現(xiàn)MCP協(xié)議的底層通信邏輯,通常是嵌入在Host中的軟件模塊(如Python庫(kù)、設(shè)備驅(qū)動(dòng)),將Host的調(diào)度指令轉(zhuǎn)化為符合JSON-RPC規(guī)范的通信消息與各設(shè)備Server通信。
Server: ① 天氣預(yù)報(bào)Server。僅提供weather.query工具(查詢指定城市、日期的天氣)。 ② 地圖服務(wù)Server。整合map.recommend(景點(diǎn)推薦)、map.route(路線規(guī)劃)、map.restaurant(餐廳推薦)三個(gè)工具集成。
(1)過(guò)程一:初始化與能力發(fā)現(xiàn)階段
① Host啟動(dòng)Client連接Server(如上頁(yè)圖5)。② 能力交換:Client獲取Server工具列表(如上頁(yè)圖6)。
3.關(guān)鍵技術(shù)細(xì)節(jié)說(shuō)明
(2)過(guò)程二:用戶請(qǐng)求處理,多輪工具調(diào)用流程
① 用戶輸入解析與首輪工具調(diào)用(如上頁(yè)圖7)。② 基于天氣結(jié)果調(diào)用景點(diǎn)推薦工具(如上頁(yè)圖8)。③ 調(diào)用路線規(guī)劃工具(以頤和園為例),如圖9所示。④ 調(diào)用餐廳推薦工具(頤和園周邊),如圖10所示。
(3)過(guò)程三:結(jié)果整合與最終響應(yīng)生成
① Host整合多輪工具調(diào)用結(jié)果(如圖11)。② Server向Client推送最終結(jié)果(如下頁(yè)圖12)。③ Host向用戶返回自然語(yǔ)言響應(yīng)(如下頁(yè)圖13)。
上下文管理機(jī)制:整個(gè)流程通過(guò)contextId:\"beijing-trip-001\"串聯(lián)所有工具調(diào)用,Host可追溯歷史交互記錄,如用戶后續(xù)詢問(wèn)“頤和園就餐環(huán)境如何”時(shí),可直接通過(guò)contextId獲取餐廳推薦數(shù)據(jù)。
安全授權(quán)流程:首次調(diào)流式響應(yīng)支持復(fù)雜查詢(如多景點(diǎn)路線規(guī)劃),Server可通過(guò)SSE分階段推送結(jié)果(如圖15)。
用weather.query時(shí)攜帶authorization字段,用戶需通過(guò)生物識(shí)別或密碼完成授權(quán),Server根據(jù)權(quán)限列表限制數(shù)據(jù)訪問(wèn)范圍(如僅允許獲取北京天氣,禁止訪問(wèn)其他城市)。
錯(cuò)誤處理示例:若路線規(guī)劃Server返回錯(cuò)誤(如\"起點(diǎn)不可達(dá)\"),Client會(huì)自動(dòng)重試并觸發(fā)備用方案(如圖14)。
Host在接收到錯(cuò)誤后,會(huì)調(diào)用備選路線規(guī)劃(如公交方案)或提示用戶確認(rèn)起點(diǎn)信息。
通過(guò)該案例可見,MCP協(xié)議通過(guò)標(biāo)準(zhǔn)化的能力描述、上下文管理和多輪交互機(jī)制,使大模型能夠高效協(xié)調(diào)多個(gè)外部工具,將自然語(yǔ)言請(qǐng)求轉(zhuǎn)化為完整的現(xiàn)實(shí)世界解決方案,顯著提升了AI系統(tǒng)的實(shí)用性和智能化水平。
結(jié)語(yǔ)
Anthropic公司推出的MCP協(xié)議擁有極強(qiáng)的兼容性以及擴(kuò)展性,可讓大模型進(jìn)行相互之間的交流以及同外界的交互,并可提供安全可靠的交流方式,大大增強(qiáng)了大模型的學(xué)習(xí)能力。相信隨著Deepseek等國(guó)產(chǎn)大模型的強(qiáng)勢(shì)崛起,我國(guó)人工智能領(lǐng)域的研究水平將會(huì)進(jìn)一步得到提升。但與此同時(shí)也要注意到人工智能領(lǐng)域所引發(fā)的相關(guān)倫理、安全等風(fēng)險(xiǎn),并據(jù)此進(jìn)行把控,以使其朝著正確的方向發(fā)展。