為了讓大魔聽懂 MCP是什么,我寫了MCP的前世今生

云舒
0 評論 1086 瀏覽 3 收藏 16 分鐘

MCP(Model Context Protocol)作為一項(xiàng)新興技術(shù),正在改變AI模型與外部世界交互的方式。本文深入剖析了MCP的起源、發(fā)展、應(yīng)用場景以及未來趨勢,通過生動的案例展示了MCP如何讓AI模型“看得見世界,動得了手腳”,并為讀者提供了快速上手MCP的實(shí)用指南,幫助大家更好地理解和應(yīng)用這一前沿技術(shù)。

MCP的本質(zhì)是為了讓模型“看得見世界,動得了手腳”。

之前假期我們用MCP做了聚會規(guī)劃,我覺得體驗(yàn)還蠻不錯的,我去和大魔、相柳聊對MCP的看法;洋洋灑灑的說了一堆之后,大魔問我:什么是MCP?有什么用,說點(diǎn)小白能聽懂的。

后邊也有幾個小伙伴問我類似的問題,并且有的上手用了之后也會很困惑,這個MCP到底有點(diǎn)啥用,這些功能看起來不用MCP也能搞定呀。

因此寫了這篇文章,希望跟大家聊聊MCP是怎么發(fā)展出來的、MCP目前有哪些好的應(yīng)用場景、MCP未來會是什么樣子的。

要了解MCP的發(fā)展,我們需要先回到22年ChatGPT誕生的時候。

最早期的ChatGPT是一個單純只能聊天的AI,它沒有今天的聯(lián)網(wǎng)、畫圖、畫布等諸多功能。

但模型訓(xùn)練是有語料限制的,在用的時候我們會發(fā)現(xiàn),當(dāng)前的一些信息ChatGPT是不具備的,它只會回答訓(xùn)練語料內(nèi)的內(nèi)容,要么就是開始瞎編亂造了。

人們開開紛紛想辦法解決這個問題,當(dāng)時有許多谷歌瀏覽器插件解決ChatGPT的搜索問題,它會把你發(fā)給ChatGPT的話先拿過來搜索一次,然后把一堆預(yù)料給到ChatGPT,再讓它來回答問題。

就是大力扔數(shù)據(jù)的模式,只不過是借助插件來實(shí)現(xiàn)的。

訓(xùn)練增加預(yù)料約束幻覺、搜索增加信息、RAG填充信息,其實(shí)人們做的都不過是一件事情:讓模型看得見世界,了解更多的知識。

但模型有了更多的知識,我們讓它把一份內(nèi)容生成一個Excel表,它依舊是做不到的,因?yàn)樗⒉痪邆湔{(diào)用工具的能力,它只能做純文本上的輸出。

于是大家開始開發(fā)各種的插件來讓模型具備一定的工具調(diào)用能力,讓它能夠去查天氣、查網(wǎng)頁、分析數(shù)據(jù)、畫圖。

給模型更多的工具使用能力,讓它能夠動的了手腳。

在23年6月份的時候ChatGPT發(fā)布了一個協(xié)議模型調(diào)用工具的協(xié)議叫Function Call,第一個基準(zhǔn)出現(xiàn)了。

Function Call ≈ “讓模型以結(jié)構(gòu)化方式使用你的 API”的協(xié)議層。

以一個搜索的Function Call為例,它其實(shí)就是通過模型喚起搜索函數(shù),然后告訴API我要搜索什么。{??“name”:?“search_web”,??“arguments”:?{? ??“query”:?“MCP 是什么”??}}

雖然各家大模型都陸續(xù)支持了 Function Call 機(jī)制,但它在落地過程中有幾個明顯的問題:1.?廠商之間機(jī)制不統(tǒng)一, 接入成本高:大家雖然都用的是function call的機(jī)制,但是字段名稱、參數(shù)結(jié)構(gòu)、返回格式也都有各自的區(qū)別,要做多個模型兼容適配的時候麻煩的要死,成本高很多。2.?各個工具也缺乏統(tǒng)一的調(diào)用基準(zhǔn):大家各自API接口開發(fā)的內(nèi)容嘛,只能說五花八門,基本上就是定制開發(fā),沒啥復(fù)用性,每個工具跟每個模型都得單獨(dú)開發(fā)一次。

不僅僅是Function Call大家沒統(tǒng)一,連調(diào)用模型時候的Token統(tǒng)計(jì)各家大模型都不一致,有的數(shù)據(jù)全都給你,有的需要你做二次開發(fā),有的壓根沒有需要你自己統(tǒng)計(jì),有的還得兼容虛擬緩存,算個token消耗簡直累死個人。

24年AI編程隨著Claude3.5 sonnet的出現(xiàn)邁入了一個新的臺階,Cursor代表的AI編程工具開始走進(jìn)大眾的視野,當(dāng)普通人能夠借助AI開始編寫程序時,行業(yè)對于模型和外界交互的訴求也到了臨界點(diǎn)。

無非是誰先來推出這個基準(zhǔn)。

于是24年11月份,Claude團(tuán)隊(duì)帶來了第二個基準(zhǔn):MCP(Model Context Protocol)

如果說世界是一個商場,在只有Function Call的商場里,每家店都自己裝修、貨架標(biāo)簽自己命名、自己自由擺放,模型進(jìn)去發(fā)現(xiàn)什么都不一樣,想找個可樂都得先研究一下這個商家的布局是怎么樣的,效率極低。

而MCP是一個標(biāo)準(zhǔn)化商場,所有商家的布局結(jié)構(gòu)都長得一模一樣,貨架、標(biāo)簽都是統(tǒng)一的規(guī)范,模型只要理解一套基準(zhǔn)就可以從這個商場里拿走它想要的所有東西。

MCP并未取代Function Call,它只是把商家布局變得更好了,方便去模型去做Function Call。

入駐的商家越多,模型能夠觸達(dá)的世界越大。

自從11月份Claude推出MCP協(xié)議后,各個公司、開發(fā)者們也在做跟進(jìn),在4月份我們可以看到百花齊放的MCP市場,阿里云的百煉和idoubi的mcp.so都是很不錯的平臺。

但目前我們想調(diào)用MCP在模型內(nèi)部還是做不到的,一般都是通過AI編程軟件Windsurf或者Cursor來實(shí)現(xiàn)調(diào)用。

我個人更推薦使用Windsurf,只需要填入json即可高效使用,不需要調(diào)試太多的東西,對小白超級有好。

阿里云的百煉智能體倒也是支持MCP服務(wù),但在智能體調(diào)試中其實(shí)看不到MCP的具體模塊,可以用來嘗試但是體驗(yàn)略差越windsurf。

那現(xiàn)在能用MCP做哪些事情呢?我給大家列舉一些案例,先讓大家體驗(yàn)一下MCP的作用。

1.查看北京未來幾天的天氣并做成網(wǎng)站(高德地圖MCP服務(wù))

本來我想讓它畫一個7天的網(wǎng)頁,但是高德的返回值只給了4天的數(shù)據(jù),所以天氣預(yù)報(bào)只有這4天的數(shù)據(jù)。

我們可以從這個圖中看到,Claude在我發(fā)出把北京未來7天天氣預(yù)報(bào)做成網(wǎng)頁后,它激活了高德的MCP服務(wù),并且獲得了近4天的數(shù)據(jù),然后把這些數(shù)據(jù)畫成一個html網(wǎng)頁。

整個環(huán)節(jié)我只需要說一句話,剩下的全部由模型自己來搞定。

2.做一個從北京西站到環(huán)球影城的出游路線(高德地圖MCP服務(wù))

接著天氣預(yù)報(bào),我告訴Claude明天我要到北京西站了,我要去環(huán)球玩希望它給我做一個規(guī)劃路線出來。

同樣是我告訴模型一句話,模型自己規(guī)劃好,然后去調(diào)用MCP最后生成一個網(wǎng)站。

在北京西站到環(huán)球這個路線規(guī)劃中,它主要調(diào)用了兩個MCP服務(wù),一個是查詢地理位置坐標(biāo)的,它需要先把北京西站轉(zhuǎn)換成地理坐標(biāo),才能調(diào)起第二個MCP服務(wù),用來制定具體的路線出游規(guī)劃。

3.把網(wǎng)頁發(fā)布到上線(騰訊云Pages MCP服務(wù))

既然計(jì)劃做好了那我們把這個網(wǎng)站發(fā)布上線了看看效果怎么樣。

MCP返回給我們一個地址:https://beijing-universal-route.windsurf.build/,我用電腦和手機(jī)都看了一下,都是能夠正常訪問的。

目前Pages MCP目前更多是支持將html變成快速訪問鏈接,如果是復(fù)雜的項(xiàng)目暫時不支持~

4.AI控制電腦去搜索(browsermcp提供服務(wù))

通過browserMCP,可以讓AI控制瀏覽器,我們來試試讓它把即刻近期的AI熱門內(nèi)容搜索總結(jié)做成一個網(wǎng)站。

它會自己去逛網(wǎng)站,理解網(wǎng)站的內(nèi)容是什么:

但有一點(diǎn)值得關(guān)注的是,如果我們希望AI能夠通過browsermcp給到質(zhì)量很好的結(jié)果,我們需要進(jìn)行多次的邏輯調(diào)優(yōu),畢竟browsermcp更核心的還是提供AI瀏覽頁面的能力,但如何瀏覽頁面讓結(jié)果更好,這個事情的結(jié)果取決于我們和AI進(jìn)行多次溝通。

這些案例如果沒有MCP我能做嗎?能做,每個功能單獨(dú)寫一套接口邏輯,然后跑腳本去調(diào)用,用一次估計(jì)得先開發(fā)個1-2個小時,而且想給別人用還得安裝環(huán)境,同步腳本想想就痛苦。

有了MCP,大家都可以一鍵快捷的接入,不用做大量的重復(fù)造輪子的事情了。

MCP并非實(shí)現(xiàn)之前實(shí)現(xiàn)不了的功能,它只是簡化了我們達(dá)到之前效果的時間。

看了這么多案例接下來給大家演示一下如何快速接入MCP服務(wù)。

小白如何快速上手安裝并使用MCP,最省事的辦法就是讓AI自己來搞定。

首先打開你要安裝的mcp服務(wù)的網(wǎng)站,把網(wǎng)址復(fù)制到windsurf的對話框,告訴它我要接入MCP,讓它自己處理一下,之后就等著Claude自己干活就行了,如果需要你獲取key你就按它給的路徑找一下key,這樣超級省事。

當(dāng)MCP新添加的是綠色圓點(diǎn),就代表添加成功啦,可以進(jìn)行使用了。

我們了解了MCP的源起、了解了MCP的實(shí)踐效果,是時候來看看MCP的未來了。

在這里我們現(xiàn)忘掉MCP,我來給大家講個我用CursorAI編程的故事。

我是在去年8月份開始用Cursor進(jìn)行AI編程的,當(dāng)時Cursor有兩個模式,一個是ChatAI、一個是Composer?,F(xiàn)在這兩個模式都在Cursor上改成了不同的名字。

ChatAI主要是跟AI聊天要代碼,然后人操作為主;Composer則是AI自己直接去文件里寫代碼,全自動的模式。

我當(dāng)時兩個模式都深度用過一段時間,Composer給我寫了無數(shù)個bug,我真的要崩潰了;最后我回到了ChatAI的模型,有事沒事問問AI,以人為主導(dǎo)進(jìn)行編程。

但Cursor一直在進(jìn)化,模型不能用終端,他們在對話處加了終端環(huán)境;模型上下文能力不夠,他們升級了codebase;模型只會蠻干,他們追加了agent模式,讓模型具備更強(qiáng)的規(guī)劃和執(zhí)行能力。

最終Agent模式掃平了ChatAI和Composer,我當(dāng)時堅(jiān)持了一段時間ChatAI,后來不得不感慨Agent模式真香,只需要你描述清楚需求AI就能自己專注的寫代碼,還可以隨時糾錯。

這一切花了多長的時間?6個月而已。

我現(xiàn)在有點(diǎn)不敢想6個月后的AI編程是什么樣子的,反正肯定會比現(xiàn)在再強(qiáng)上很多倍。

MCP的未來是什么?我也不知道。

但我肯定一點(diǎn),今天MCP好用不好用都不重要,它是模型進(jìn)化中不可或缺的一環(huán),它一定會變得好用。

先用起來,一點(diǎn)點(diǎn)解決它的問題是對待MCP最好的態(tài)度。

實(shí)踐永遠(yuǎn)是最好的老師。

最后讓我們用一句話總結(jié)一下MCP吧,讓我們一起擁抱新的時代。

看得見世界,動得了手腳——MCP讓模型能夠更好的了解現(xiàn)實(shí),變得更智能。

本文由人人都是產(chǎn)品經(jīng)理作者【云舒】,微信公眾號:【云舒的AI觀察筆記】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!