成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的! 原創(chuàng)

發(fā)布于 2025-5-12 15:06
瀏覽
0收藏

作者 | 云昭

出品 | 51CTO技術(shù)棧(微信號:blog51cto)

現(xiàn)在的MCP乃至大模型開發(fā)圈,就像尿了褲子!一開始熱乎乎的,然后就開始難受了!

近日,一篇有關(guān)MCP深度批判的博客文章《A Critical Look at MCP》在網(wǎng)絡(luò)上走紅。

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的!-AI.x社區(qū)圖像

MCP的熱度暴漲十足,它甚至有望成為一種席卷全球的生態(tài)級別的協(xié)議,是一件有目共睹的事情。

這篇文章的作者Rasmus Holm,是一家創(chuàng)業(yè)公司CTO,三個星期前,他想在自己的實(shí)際環(huán)境中親自上手實(shí)操一番MCP,結(jié)果大失所望。

Rasmus在這篇文章中非常細(xì)節(jié),甚至可以說把MCP的內(nèi)褲都扒光了一遍,不管是協(xié)議層還是傳輸層都把文檔中許多“雷點(diǎn)”都篩了出來。

Rasmus在文中難掩憤怒:自己本意并非想攻擊MCP協(xié)議,但實(shí)在是忍無可忍,不吐不快!

“我真心希望這只是我技術(shù)不到位的問題,并希望自己是誤解了什么。”

1.低質(zhì)的MCP文檔,像大模型生成的一樣!

Rasmus在摘要中首先痛斥了自己所看到的大模型圈內(nèi)一眾普遍現(xiàn)象:低質(zhì)量的開發(fā)文檔——

“IBM 最近發(fā)布了他們自己的 MCP‘正交標(biāo)準(zhǔn)’,稱為代理通信協(xié)議 (ACP),緊接著谷歌宣布了Agent2Agent (A2A)。MCP 服務(wù)器和客戶端每天都在構(gòu)建和發(fā)布……

然而,各大廠商花幾十億美元訓(xùn)練和調(diào)教模型,結(jié)果卻讓實(shí)習(xí)生寫文檔,提供粗糙的 SDK,幾乎沒有實(shí)現(xiàn)指導(dǎo)。”

“讓我震驚的是,整個LLM生態(tài)工程實(shí)踐的成熟度非常糟糕!”

可讓Rasmus失望的是,即便是期望值如此之高的MCP,居然也沒有避開這樣的“惡習(xí)”,出現(xiàn)了很多奇怪的設(shè)計決策、糟糕的文檔,以及更糟的協(xié)議規(guī)范。

例如,打開MCP的官方文檔modelcontextprotocol.io,“你會發(fā)現(xiàn)文檔寫得一團(tuán)糟”,而且Rasmus順帶懟了幾乎所有 LLM 廠商,“這些廠商似乎在比誰寫得更讓人迷惑看不懂”。

具體比如,規(guī)范完全忽略了協(xié)議中的重要細(xì)節(jié),也沒有任何會話流程的例子。整站的重點(diǎn)都不是幫你了解協(xié)議,而是引導(dǎo)你去用他們的 SDK 教程。

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的!-AI.x社區(qū)

此外,所有示例服務(wù)器都用 Python 或 JavaScript 編寫,這兩種語言都是部署到別人電腦上的噩夢。所以示例都提供了 Docker 鏡像,開發(fā)者心里也是有數(shù)的。

關(guān)于這一點(diǎn),Rasmus認(rèn)為MCP團(tuán)隊沒有注意到在編寫本地MCP服務(wù)器時,人們未必會首選Python語言,比如作者本人就選擇了用Go語言來構(gòu)建,任何嘗試運(yùn)行HuggingFace項目的人都該能夠深有體會。

相信大家都知道,教程上Python的pip安裝雖然寫的簡單,但實(shí)際對于非主攻Python的人而言,簡直是一場噩夢。

 想一想,你上一次運(yùn)行 ??pip install?? 沒遇到依賴地獄是什么時候?作者如是說:你要是真打算在本地跑 MCP,不是該選 Rust、Go,或者至少 Java、C# 這類更通用的語言嗎?

再比如,在一開始Rasmus實(shí)現(xiàn)HTTP協(xié)議時,就感到必須反向工程整個傳輸機(jī)制。因為文檔里完全沒說清楚 SSE 的細(xì)節(jié),甚至連MCP自己的工具都沒支持“Streamable HTTP”,一個典型的例子是??npx @modelcontextprotocol/inspector@latest??,如果你一不留神,很可能會因為拉錯了版本導(dǎo)致失敗。

還有,架構(gòu)理清了還不算完。因為不管是服務(wù)器還是客戶端,你都會實(shí)現(xiàn)MCP都是個巨大的工程。因為 SSE / Streamable HTTP 都試圖模擬套接字行為,卻又不是套接字等等,諸如這些問題簡直把人逼瘋。

2.制造了太多地獄級問題MCP的HTTP傳輸方式應(yīng)被徹底拋棄!

MCP號稱是AI時代的標(biāo)準(zhǔn)化接口,如同可以連接各種工具的“USB-C”。然而Rasmus經(jīng)過一番實(shí)踐,從協(xié)議層到傳輸層,都狠狠給MCP了一記耳光。

協(xié)議層方面,Rasmus指出,MCP其實(shí)是一個基于JSON-RPC的協(xié)議,定義了一些預(yù)設(shè)方法和端點(diǎn),供 LLM 使用。“雖然這篇文章不是專門批評協(xié)議本身,但它也存在不少問題。”

不過Rasmus更想吐槽的問題還是在傳輸層。

這個“可在多種傳輸協(xié)議上運(yùn)行的新協(xié)議”,聽起來非常刺激,然而Rasmus經(jīng)過一番實(shí)操之后實(shí)錘了MCP的的“言過其實(shí)”——

MCP當(dāng)前建議的HTTP傳輸方式,不管是SSE + HTTP 還是所謂的“Streamable HTTP”,都應(yīng)該被徹底拋棄,不如改用類似stdio的東西,比如WebSocket。

具體來講,Rasmus指出,SSE 模式上出現(xiàn)的問題集中在文檔缺失、實(shí)現(xiàn)復(fù)雜、服務(wù)端需要綁定多個連接。典型的錯誤就是,一個請求寫到 A 服務(wù)器,SSE 卻連在 B 服務(wù)器上?必須加消息隊列。

而“Streamable HTTP”的問題則在于,復(fù)雜度“更上一層樓”,控制流程比前者更混亂,安全隱患更大。

這就會導(dǎo)致相對應(yīng)的API設(shè)計堪比地獄級難度。

此外,不得不提的就是安全問題。比如:會話狀態(tài)難管理,容易被劫持、中斷或攻擊;多入口擴(kuò)大攻擊面;實(shí)現(xiàn)復(fù)雜,掩蓋惡意行為等等。

此外,MCP協(xié)議在授權(quán)上面也頗為混亂。如果你仔細(xì)查看,你就會發(fā)現(xiàn)MCP標(biāo)準(zhǔn)規(guī)定非常、荒唐——

  • STDIO:從環(huán)境變量取憑證,隨便你
  • HTTP:必須實(shí)現(xiàn) OAuth2

為啥 HTTP 就要強(qiáng)制走 OAuth2,STDIO 卻可以用 API Key?什么道理呢?不知道。主打一個隨意。

3.三個協(xié)議,只有“本地”相對靠譜!其余兩個都是錯誤實(shí)現(xiàn)

這里具體展開看一下。據(jù)官方文檔顯示,MCP 目前支持的主要傳輸方式有兩種,也可以說是三種:標(biāo)準(zhǔn)輸入輸出(stdio)、HTTP + SSE,還有一種則是所謂的“Streamable HTTP”。

然而這三個協(xié)議具體真實(shí)的支持程度如何?作者一條條都過了一遍,給出了自己的評價:stdio是目前最靠譜的傳輸方式!

并進(jìn)一步解釋了原因:


就像很多 2005 年之后的應(yīng)用一樣,MCP 聲稱是“本地優(yōu)先”的協(xié)議。這一點(diǎn)從傳輸協(xié)議的設(shè)計上就能看出 —— 它明顯是為本地開發(fā)者工具準(zhǔn)備的,比如本地 IDE,或者更現(xiàn)實(shí)點(diǎn)說,是 Cursor 和 Windsurf。


然而,靠譜并不意味著沒問題。“通過stdio意味著啟動一個本地MCP Server,把服務(wù)器的stdout/stdin接到客戶端上,然后開始發(fā)送JSON,同時用stderr做日志。這種方式違背了 Unix/Linux 使用這些流的初衷——它們本是單向的,但MCP變成了雙向通信。

盡管有批評之處,但作者對這種做法表示理解,這樣做是為了更簡單、容易推理、跨平臺無需額外配置,而不需要管socket。

而接下來的兩個遠(yuǎn)程傳輸協(xié)議的方式,Rasmus則完全表示不解!HTTP 傳輸方式就很混亂了。這是兩個版本的“錯誤實(shí)現(xiàn)”

  • 使用 Server-Sent Events (SSE) 來流式傳輸數(shù)據(jù);
  • “Streamable HTTP” —— 這是一個杜撰的詞,用 REST 方式包裹 SSE,但增加了大量復(fù)雜度和邊緣情況。

總結(jié)來說,MCP團(tuán)隊不想用 WebSocket,于是“造了一個 WebSocket”,然后美其名曰“Streamable HTTP”,讓它聽起來像是被廣泛接受的做法。

作者還深扒MCP團(tuán)隊在Github上PR #206 中試圖解釋為何不用 WebSocket,但論證非常牽強(qiáng)。評論區(qū)也有人表達(dá)了相同的不滿。

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的!-AI.x社區(qū)

4.整個大模型開發(fā)生態(tài)像是在尿褲子

“我試圖用 Go 實(shí)現(xiàn)一個 MCP Server —— 結(jié)果簡直就是精神摧殘。”

Rasmus的心情可以用“崩潰”二字來形容。他甚至毫不客氣地把MCP甚至整個模型圈的這種現(xiàn)象比喻為“在尿褲子” —— 現(xiàn)在熱乎乎的,但之后會很難受。

Ras并對MCP協(xié)議給出了三點(diǎn)統(tǒng)一行為模式的建議

  • 協(xié)議只有一個:JSON-RPC
  • 首選傳輸方式:Stdio
  • HTTP 模式下,該用 WebSocket 模擬 stdio,而不是玩花的

STDIO 模式

HTTP 模式

環(huán)境變量

HTTP Header

流/雙向通信

WebSocket

尤其關(guān)于最后一點(diǎn),Rasmus解釋到,因為WebSocket 完全可以做同樣的事情,而且更合理,支持雙向、去中心化的會話狀態(tài)管理,避免各種邊角問題。

按照MCP官方所強(qiáng)調(diào)的——

客戶端和服務(wù)器可實(shí)現(xiàn)任何自定義傳輸協(xié)議,MCP 協(xié)議是傳輸無關(guān)的,只要支持雙向消息交換即可。
—— modelcontextprotocol.io

我們應(yīng)該為最常見的使用場景做優(yōu)化,而不是為邊角情況做妥協(xié)。

5.MCP的替代方案與補(bǔ)充

IBM 和 Google 推出的 ACP 與 A2A 實(shí)際上是 MCP 的變體。MCP 是“讓 LLM 使用 API”,ACP/A2A 則是“讓 LLM 使用 Agent”。

A2A 的很多功能其實(shí) MCP 也能做。IBM 甚至表示:

Agent 可以被視為 MCP 的資源,也可以作為工具調(diào)用
—— IBM / agentcommunicationprotocol.dev

Rasmus認(rèn)為,ACP 更像是 IBM 推廣其 BeeAI agent 構(gòu)建工具的手段。

這兩種協(xié)議最大的貢獻(xiàn):更清晰的傳輸層設(shè)計Agent 的發(fā)現(xiàn)機(jī)制

6.網(wǎng)友:的確,文檔難懂是LLM廠商的通病等MCP適配器出來之后就好了

整篇文章,Rasmus可謂是直言直語,在一篇叫好聲中,點(diǎn)出了MCP協(xié)議目前存在的大量問題:文檔規(guī)范成熟度不夠、協(xié)議層面的實(shí)現(xiàn)不合理、本地實(shí)現(xiàn)工程難度大等等。

正是因為實(shí)際所感,這一篇激情吐槽在Hackernews上引起了網(wǎng)友的共鳴,1天之內(nèi)迅速引起了多達(dá)317條的評論。

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的!-AI.x社區(qū)

很多網(wǎng)友就像被打開了“話閘”一樣,紛紛表示:現(xiàn)在大模型開發(fā)相關(guān)的文檔寫得很差!

更有網(wǎng)友曝料:MCP spec [0] 里到處都是 LLM 的痕跡。他們幾乎都在用 LLM 來寫文檔,但這仍然是個很糟糕的主意。

甚至這位網(wǎng)友打趣地說道:事實(shí)上,濫用大模型來構(gòu)建規(guī)范比濫用它們來避免編寫優(yōu)秀的文檔要糟糕得多,因為對于規(guī)范和 RFC 來說,編寫規(guī)范的過程才是關(guān)鍵所在。

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的!-AI.x社區(qū)

為什么這么確定?

這位網(wǎng)友解釋道:最終,MCP 規(guī)范是 LLM 的產(chǎn)物的最大標(biāo)志不是它有些不連貫,或者它完全由項目符號列表組成,或者它具有那種獨(dú)特的平淡風(fēng)格:而是它顯示出相對于我們對主要規(guī)范的期望而言它幾乎沒有經(jīng)過人類思考

因為一般而言,一份高可讀的合格的輸出文檔,通常還要努力找出你當(dāng)前思維的所有缺陷、不足和不完整之處。你需要批判性地閱讀規(guī)范,識別邊緣情況,并不斷修改規(guī)范,直到它能夠解答規(guī)范設(shè)計人員和相關(guān)社區(qū)的所有疑問。

當(dāng)然,還有不少網(wǎng)友相信MCP團(tuán)隊的成員,相信他們會快速跟進(jìn),修改文章中所提到問題。因為Anthropic中確實(shí)有一些很敏銳的人才!

此外,也有海外的網(wǎng)友提到了DeepSeek的開源文檔同樣也有不少讓人讀不懂的地方。主要還是因為內(nèi)容翻譯方面太過“Chinglish”的原因。

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的!-AI.x社區(qū)


不過,話說回MCP,有網(wǎng)友表示,對于更多MCP服務(wù)器構(gòu)建的大眾程序員而言,現(xiàn)在還是太難了,只需要有人會編寫一個MCP適配器,讓Claude使用OpenAPI即可,因為這樣大家就可以忘掉MCP的存在了!

痛斥!現(xiàn)在的MCP,就像尿褲子!創(chuàng)業(yè)CTO試用后怒氣值飆升,開懟整個大模型圈怪象:開發(fā)文檔用大模型寫的!-AI.x社區(qū)

不得不說,這也是一枚典型的“等等黨”了!

最后,MCP如火如荼,但小編了解到一些業(yè)內(nèi)人士仍在持懷疑或觀望的態(tài)度,一方面是因為Anthropic的生態(tài)能否大成,突圍OpenAI尚未可知,另一方面則在于MCP協(xié)議目前尚存在不少局限性,比如本文提到的主打本地而不能遠(yuǎn)程、安全問題等等。

那么,問題來了,咱們?nèi)绾慰创齊asmus有關(guān)MCP的無情痛批呢?

參考鏈接:

??https://raz.sh/blog/2025-05-02_a_critical_look_at_mcp??

??https://news.ycombinator.com/item?id=43945993??

本文轉(zhuǎn)載自??51CTO技術(shù)棧??,作者:云昭

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
標(biāo)簽
已于2025-5-12 15:07:30修改
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 在线久草| 荷兰欧美一级毛片 | 欧美一级久久精品 | 欧美中文字幕 | 亚洲成网 | 国产一区二区三区 | 一区二区三区国产 | 成人在线视频网址 | 久草视频在线播放 | 99久久久国产精品 | 成人国产午夜在线观看 | 性生生活大片免费看视频 | 日韩免费福利视频 | 日韩欧美中文字幕在线视频 | 欧美区日韩区 | 欧美国产日韩在线观看 | 黑人一级片视频 | 亚洲精品小视频在线观看 | caoporn免费在线视频 | 在线一区二区国产 | 成人在线视频网址 | 亚洲欧美综合精品另类天天更新 | 国产精品久久久久久久久久 | 久久婷婷色 | 日本久久久影视 | 亚洲人成人一区二区在线观看 | 日韩网站免费观看 | 一级毛片视频在线 | 中文字幕在线免费观看 | 久久亚洲精品视频 | 亚洲一区二区中文字幕 | 日本午夜一区二区三区 | 男人天堂网av| 天天躁天天操 | 一级欧美 | 天天草视频 | 桃色五月 | 亚洲国产精品久久久久久 | 午夜日韩精品 | 日韩视频在线观看中文字幕 | 久久久久久久久久久久久久久久久久久久 |