服务器和客户端的区别

服务器和客户端的区别

近日,一篇名为《深度剖析MCP:问题与困境》的博客文章在网络上引发了广泛关注。作者Rasmus Holm,一位创业公司CTO,分享了他在实际操作MCP(模型上下文协议)过程中的种种遭遇。

Rasmus首先赞扬了MCP的热度及其有望成为全球生态级别协议的潜力。但在深入实践后,他发现MCP存在许多问题。他严厉批评了MCP的文档质量,指出其存在的种种问题,如低质的开发文档、奇怪的设计决策、糟糕的文档和更糟的协议规范等。

对于Rasmus来说,最令人失望的是即便对期望值如此高的MCP,也无法避免“恶习”,出现了奇怪的决策、模糊的文档和混乱的协议规范。他详细列举了这些问题,如打开MCP官方文档时的混乱、协议中的重要细节被忽略、没有任何会话流程的例子、重点不是帮助了解协议而是引导使用SDK教程等。

在传输层方面,Rasmus更是毫不留情地批评了MCP的HTTP传输方式,称其应该被彻底抛弃。他指出,MCP号称是AI时代的标准化接口,如同可以连接各种工具的“U-C”,但实际操作中,从协议层到传输层都存在诸多问题。

关于协议层的问题,虽然这篇文章不是专门批评协议本身,但它也存在不少问题。更让Rasmus无法忍受的是传输层的问题。他尝试用Go语言实现一个MCP Server,结果简直是精神。他毫不夸张地将整个大模型开发生态比作“尿裤子”,一开始热乎乎的,但之后会非常难受。

对此,Rasmus给出了关于MCP行为的三个建议:协议只有一个即JSON-RPC;首选传输方式为Stdio;在HTTP模式下,使用WebSocket进行模拟stdio而不是复杂的创新。他特别强调了使用WebSocket的重要性,因为它能支持双向通信并更好地管理会话状态。

Rasmus还探讨了MCP的替代方案和补充内容,如IBM和Google推出的ACP和A2A。他认为这些协议为MCP提供了一些有价值的功能,比如更清晰的传输层设计和Agent的发现机制。同时他也提到了一些网友的观点和评论,包括文档难懂是LLM厂商的通病等。许多网友对此表示共鸣并分享了自己的经历和看法。有些人呼吁等待MCP适配器的出现以简化使用流程,有些人则建议编写更人性化的文档以便于开发者理解和实现。最后提出一些问题引发了更广泛的讨论和探讨对于公众来说如何看待这份深度剖析并提出自己的观点与见解是十分必要的。关于MCP的未来发展和其可能面临的挑战仍有待观察和市场验证。尽管存在争议但无论最终结果如何我们必须认识到每一次技术革新都不可避免地伴随着探索与试错正如一个刚出生的婴儿跌跌撞撞地成长终究有一天会健步如飞大步向前未来如何让我们一起拭目以待。


服务器和客户端的区别