
ListenHub
8
5-11原野: 嘿,最近圈里有个事儿挺火的,叫啥MCP协议,说是要统一AI接口,弄成AI界的USB-C。但我总觉得,这玩意儿是不是要凉啊?
晓曼: 呦,你也关注这个了?MCP,全称Model Context Protocol,是Anthropic搞出来的一套标准API,想让大模型能随便接各种数据源和工具,就像USB-C一样,啥都能插。
原野: 等等,USB-C?就是说,不管啥设备,都能用这一个口儿?那听着挺牛啊!
晓曼: 理论上是这样。你想啊,以前你得用各种转接头,现在一个接口就搞定了。但实际用起来,问题可就多了去了。
原野: 快说说,都有啥坑?我一看到HTTP+SSE、Streamable HTTP这些词儿就懵圈。
晓曼: 哎,这事儿就得吐槽一下。这些大厂啊,模型训练上砸钱如流水,可文档、SDK这些配套的东西,抠搜得要命。开发者用起来一头雾水,就像买了高级跑车,结果没说明书。
原野: 哈哈,这比喻到位!那用起来到底有多麻烦?
晓曼: 就拿它那个HTTP传输方式来说吧。MCP推荐用HTTP+SSE,或者他们自己搞的“Streamable HTTP”,听着挺高大上,其实就是在SSE上硬塞WebSocket的功能,复杂得一塌糊涂。
原野: 听着就像在自行车上装火箭发动机,理论上能飞,实际上绝对把自己先给炸了。
晓曼: 可不是嘛!举个例子,用HTTP+SSE,你得先建一个SSE连接,然后他们再给你一个URL来写入数据,还得跨调用“连接”请求,光是这些步骤就够你喝一壶的。
原野: 这流程听着就像先买个包裹,再跑趟邮局,最后再自己扛回家,纯属折腾人!
晓曼: 还有那个“Streamable HTTP”,更离谱——多种会话创建方式、开SSE连接、响应数据,各种路径让你自己选,随便一个操作就能踩到坑。
原野: 这么搞,安全上肯定也出问题吧?
晓曼: 那是肯定的。HTTP和SSE混着用,容易被会话劫持,或者被重放攻击,攻击面一下子就大了。而且它那个灵活的会话机制,搞不好还会被黑客利用来隐藏恶意操作。
原野: 听着就头疼……认证方式上是不是也有坑啊?
晓曼: 没错。Stdio传输方式可以用API Key,但是HTTP传输却强制用OAuth2,这不是脱裤子放屁,多此一举吗?
原野: 那你说,这事儿到底该咋整?
晓曼: 我觉得啊,最好是用WebSocket——状态管理简单,开发体验也更顺畅,而且也更安全。别搞HTTP那套复杂的SSE套路了,至少往Stdio那边靠拢。
原野: 嗯,有道理。那日常用的时候,能不能别老想着那些极端情况,先把常见的用例优化好?
晓曼: 完全同意!行业应该先把最普遍的场景搞定,别把精力都放在那些犄角旮旯的需求上。
原野: 哎对了,我记得IBM、Google好像也有类似的协议,叫ACP、A2A啥的,是吧?
晓曼: 没错,都是Agent to LLM协议,本质功能其实差不多,MCP能干的,它们大部分也能做。
原野: 总结一下:MCP想当AI的USB-C接口,想法挺好,但落地的时候,文档、传输、安全、认证这几个方面都有问题。最好的解决办法,就是用WebSocket,然后聚焦常见的应用场景。
晓曼: 没错。理念值得肯定,但要真正走得远,还得有更成熟的工程设计和安全考量才行。
原野: 感谢你今天给咱们把这事儿捋得这么清楚!