MCP 没有解决大模型如何调用工具的问题,MCP 解决的是 大模型客户端 如何调用工具的问题。
最近手搓一个带 MCP 功能的 Chatbox ,发现 MCP 协议和生态完全是一坨,踩了不少坑,于是拿出来吐嘈一下。欢迎指教。
3 种通信协议:stdio
, HTTP+SSE
, Streamable HTTP
。https://modelcontextprotocol.io/specification/2025-06-18/basic/transports
stdio 下,来一个请求启动一个 process ,直接对接 stdio stdout 二进制流。先不说性能和安全问题,管道中的一段数据被缓冲区截断怎么办?客户端什么时候知道数据读取完了?流式输出的工具怎么调用? stderr 管道的数据怎么标记并传输? stdio 方案就是个玩具。
接着是 HTTP+SSE
,客户端与服务器建立一个长连接 SSE 来 获取数据。发送数据需要客户端另外建立 HTTP POST 链接。多个链接之间使用 MCP Session ID 识别。不知道是喝了多少想出来的。。。硬生生把所有 server 变成 stateful 。最坑的是,这种协议已经被弃用,官方文档也只有一句弃用的说明。而阿里百炼 MCP 广场和许多在线 MCP 只支持这种协议。如果我手搓的客户端不兼容这种协议,将会失去许多可用的在线 MCP 。
最后一种 Streamable HTTP
就比较正常了。好不容易调通了,发现了 CROS 的问题。几乎所有在线 MCP 都没有考虑 CROS 。fastmcp 这个框架也没有很直观的开启 CORS 的选项。怎么的? mcp server 都不打算公开在线用的是吗?
另外是需要登录的 MCP 。例如 Google Gmail 的 MCP 需要登录 Google 帐号,流程太复杂了我都不想去实现了。气死我了气死我了
![]() |
1
shellus 4 天前
你的 Chatbox 应该集成一个“处理这些烂事的 MCP 代理”,而不是在 Chatbox 里面处理这些和对话无关的细节。
你只需要支持 Streamable HTTP 格式即可。目前 lobechat 就是这样做的。 |
2
yulon 4 天前
MCP 刚出的时候,我自己的框架已经有比较完整的工具流了,光各个平台的 OpenAI API 都有一堆漏屎的烂摊子,写了一堆擦屁股的代码,根本不想碰 MCP 。
|
![]() |
3
yukino 4 天前
从命名开始就是想碰瓷 LSP 营销的产品。仿佛是无脑巨婴用大模型设计的“协议”,完全没有将 MxN 的适配问题转化成 M+N ,反而是让问题变得更复杂了。😡
|
![]() |
4
Chuckle 4 天前
最近还想拿 node 看看咋写 mcp 的,忙着也一直没开动,所以 mcp 是个啥,看着就是一个 schemaJSON ,告诉 ai 有啥函数可以调,该传啥参数,然后按函数 key 匹配?和平时做业务,让后端返回一些菜单表差不多啊。只要能造出这个 json 给大模型客户端用就行了吧,关键就看客户端怎么调了。
|
![]() |
5
musi 4 天前 via iPhone
mcp 真不好用,有很多 mcp 一下带了几十上百个工具,现有的模型没有能力承载这么多工具的,占用大量上下文不说还降低模型的能力,我看过最离谱的一个一次上下文带了快三百个工具
|
6
kneo 4 天前
不觉得你说的是啥问题。
像那个 google 验证,要支持验证你嫌麻烦,如果不支持验证你又会吐槽:这么多 mcp 服务公开在线用的都不支持验证,谁设计的都不考虑安全性吗?这协议就是个玩具。 |
![]() |
7
PaulSamuelson 4 天前
这帮搞 ai 的,在 curd 和协议制定上,确实差了点意思。
就说一个,如果我 AI 接入了 100 个,1k ,1w 个 mcp ,请问该怎么工作? 如果不能解决这个问题,那么这个 MCP 还只能是有限 MCP 。 |
8
DefoliationM 4 天前 via Android
@PaulSamuelson llm 层面就不可能解决,上下太长就是没法用,目前再怎么设计也只能依靠增大上下文大小。
|
![]() |
9
PaulSamuelson 4 天前
@DefoliationM 是的呢,如果接入的 MCPs 说明书加起来有一本字典厚,还是全部丢给 LLM 么?那 MCP 的能力就受上下文大小限制了。
这个时候,就应该参考 RAG 、向量技术。但目前我没看到谁把这个“痛”点解决了。 |
10
kaneg 3 天前
只能说湿先入为主了,它是赶上了 AI agent 的风头,解决了 AI 和其他系统桥接的痛点。现在业界都认它,感觉没有 MCP 的功能,就要落伍了一样。
|
11
coolmenu 3 天前 ![]() 放心,马上有 MCP 的 MCP 协议,进行层次控制
|
12
fredweili 3 天前
毛病可以用工程的时间解决,MCP 解决的问题你有更好的方案么?
大模型原始的方式调用外部工具,有多麻烦你知道么?不知道就再去手搓一个哪怕是最简单的 |
![]() |
13
AlexHsu 3 天前 ![]() ai 那边草台班子的路子根 crud 的路子完全不一样 ai 是先能拼起来能用 至于什么安全性 性能 稳定性 可维维护性是啥 没人关心
维护个屁啊 开发出来的东西半年不报废就算财富自由了 到时候自由 958 的牛马给你重构😄 crud 也是草台班子 等你吧协议 规范 安全性都考虑完了 都他娘的 agi 了 crud 思想还是老老实实接 to g 外包吧 |
![]() |
14
unco020511 3 天前
@PaulSamuelson #7 现在有一种方案是 RAG-MCP,将这些众多的 mcp 信息向量化再检索
|
15
runlongyao2 3 天前
@musi multi-agent 可以解决这个问题。
|