V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
heimoshuiyu
V2EX  ›  程序员

MCP 协议现在是一坨💩

  •  
  •   heimoshuiyu · 5 天前 · 2915 次点击

    MCP 没有解决大模型如何调用工具的问题,MCP 解决的是 大模型客户端 如何调用工具的问题。

    最近手搓一个带 MCP 功能的 Chatbox ,发现 MCP 协议和生态完全是一坨,踩了不少坑,于是拿出来吐嘈一下。欢迎指教。

    3 种通信协议:stdio, HTTP+SSE, Streamable HTTPhttps://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 帐号,流程太复杂了我都不想去实现了。气死我了气死我了

    15 条回复    2025-08-11 11:07:21 +08:00
    shellus
        1
    shellus  
       4 天前
    你的 Chatbox 应该集成一个“处理这些烂事的 MCP 代理”,而不是在 Chatbox 里面处理这些和对话无关的细节。
    你只需要支持 Streamable HTTP 格式即可。目前 lobechat 就是这样做的。
    yulon
        2
    yulon  
       4 天前
    MCP 刚出的时候,我自己的框架已经有比较完整的工具流了,光各个平台的 OpenAI API 都有一堆漏屎的烂摊子,写了一堆擦屁股的代码,根本不想碰 MCP 。
    yukino
        3
    yukino  
       4 天前
    从命名开始就是想碰瓷 LSP 营销的产品。仿佛是无脑巨婴用大模型设计的“协议”,完全没有将 MxN 的适配问题转化成 M+N ,反而是让问题变得更复杂了。😡
    Chuckle
        4
    Chuckle  
       4 天前
    最近还想拿 node 看看咋写 mcp 的,忙着也一直没开动,所以 mcp 是个啥,看着就是一个 schemaJSON ,告诉 ai 有啥函数可以调,该传啥参数,然后按函数 key 匹配?和平时做业务,让后端返回一些菜单表差不多啊。只要能造出这个 json 给大模型客户端用就行了吧,关键就看客户端怎么调了。
    musi
        5
    musi  
       4 天前 via iPhone
    mcp 真不好用,有很多 mcp 一下带了几十上百个工具,现有的模型没有能力承载这么多工具的,占用大量上下文不说还降低模型的能力,我看过最离谱的一个一次上下文带了快三百个工具
    kneo
        6
    kneo  
       4 天前
    不觉得你说的是啥问题。

    像那个 google 验证,要支持验证你嫌麻烦,如果不支持验证你又会吐槽:这么多 mcp 服务公开在线用的都不支持验证,谁设计的都不考虑安全性吗?这协议就是个玩具。
    PaulSamuelson
        7
    PaulSamuelson  
       4 天前
    这帮搞 ai 的,在 curd 和协议制定上,确实差了点意思。
    就说一个,如果我 AI 接入了 100 个,1k ,1w 个 mcp ,请问该怎么工作?
    如果不能解决这个问题,那么这个 MCP 还只能是有限 MCP 。
    DefoliationM
        8
    DefoliationM  
       4 天前 via Android
    @PaulSamuelson llm 层面就不可能解决,上下太长就是没法用,目前再怎么设计也只能依靠增大上下文大小。
    PaulSamuelson
        9
    PaulSamuelson  
       4 天前
    @DefoliationM 是的呢,如果接入的 MCPs 说明书加起来有一本字典厚,还是全部丢给 LLM 么?那 MCP 的能力就受上下文大小限制了。
    这个时候,就应该参考 RAG 、向量技术。但目前我没看到谁把这个“痛”点解决了。
    kaneg
        10
    kaneg  
       3 天前
    只能说湿先入为主了,它是赶上了 AI agent 的风头,解决了 AI 和其他系统桥接的痛点。现在业界都认它,感觉没有 MCP 的功能,就要落伍了一样。
    coolmenu
        11
    coolmenu  
       3 天前   ❤️ 1
    放心,马上有 MCP 的 MCP 协议,进行层次控制
    fredweili
        12
    fredweili  
       3 天前
    毛病可以用工程的时间解决,MCP 解决的问题你有更好的方案么?
    大模型原始的方式调用外部工具,有多麻烦你知道么?不知道就再去手搓一个哪怕是最简单的
    AlexHsu
        13
    AlexHsu  
       3 天前   ❤️ 1
    ai 那边草台班子的路子根 crud 的路子完全不一样 ai 是先能拼起来能用 至于什么安全性 性能 稳定性 可维维护性是啥 没人关心
    维护个屁啊 开发出来的东西半年不报废就算财富自由了 到时候自由 958 的牛马给你重构😄
    crud 也是草台班子 等你吧协议 规范 安全性都考虑完了 都他娘的 agi 了 crud 思想还是老老实实接 to g 外包吧
    unco020511
        14
    unco020511  
       3 天前
    @PaulSamuelson #7 现在有一种方案是 RAG-MCP,将这些众多的 mcp 信息向量化再检索
    runlongyao2
        15
    runlongyao2  
       3 天前
    @musi multi-agent 可以解决这个问题。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5091 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 09:33 · PVG 17:33 · LAX 02:33 · JFK 05:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.