Workflow
LLM工具
icon
搜索文档
对 MCP 的批判性审视
AI前线· 2025-06-08 13:16
MCP协议概述 - MCP是一个开放协议,标准化了应用程序向LLM提供上下文的方式,类似于AI应用的USB-C端口[1] - 该协议旨在让LLM成为代理并与世界互动,通过标准化API实现模型与数据源/工具的连接[2] - 核心设计为JSON-RPC协议,带有预定义方法/端点,专为LLM交互场景优化[6] 行业竞争格局 - IBM推出正交标准ACP(代理通信协议),谷歌发布Agent2Agent(A2A),形成与MCP的竞争[2] - ACP和A2A聚焦于"代理的代理"场景,但大部分功能可通过MCP原样或扩展实现[31] - IBM承认ACP非必需,其本质是推广代理构建工具BeeAI的商业策略[32] 技术实现问题 - 主要传输协议包括stdio和两种HTTP变体(HTTP+SSE/Streamable HTTP),设计存在严重缺陷[8][10] - HTTP传输方案复杂度过高:需管理跨服务器状态、存在4种SSE开启方式和3种响应路径[23] - 文档质量低下,缺乏实现指导,主要厂商投入数十亿美元训练模型却忽视工程实践[3][13] 协议设计缺陷 - HTTP+SSE模式强制全双工通信,需客户端建立SSE会话后通过独立端点提交写入操作[17] - Streamable HTTP引入安全隐患:会话劫持/重放攻击风险,授权机制与传输方式绑定[24][25] - 状态管理漏洞显著,服务器需维护会话状态直至显式终止,扩大DoS攻击面[26] 改进建议 - 应弃用现有HTTP方案,采用WebSocket实现与stdio对等的双向通信[11][28] - 需针对常见用例优化而非特殊场景,减少极端情况处理负担[30] - 行业应建立统一标准,避免IBM/谷歌等厂商通过碎片化协议争夺生态控制权[31][32] 实施现状 - Anthropic主导MCP标准化,认为LLM将承担大部分编码工作,故重视开发者体验[5] - 当前实现集中在Python/JavaScript,缺乏Rust/Go等适合生产环境的语言支持[15] - 实际部署依赖Docker容器,暴露依赖管理混乱问题,典型如Hugging Face的依赖地狱[14]