外观
MCP、能力发现与动态 Schema 研究综述
摘要
本分类研究模型上下文协议(Model Context Protocol, MCP)中能力如何被发现、描述、批准和调用。主要安全问题是客户端作出信任决定后,Server 身份、Tool 名称、参数 Schema、描述或能力集合能否发生未被重新授权的变化。
分类介绍
研究对象包括初始化协商、能力声明、Tool 与 Resource 注册、Schema 变更和协议生命周期。MCP Server 作为安装制品的来源风险归 A3.3;Agent 对稳定合法工具的越权使用归 A5.4;OAuth 与主体委托归 A6.3;消息重放和会话绑定归 A6.4。
现有研究首先需要区分协议明确规定的行为、SDK 的实现选择和 Host 应用附加的审批策略。验证重点包括批准对象的稳定标识、描述与实际调用参数的一致性、能力变更后的重新确认,以及客户端面对未知或降级能力时是否默认拒绝。
历史研究成果
该分类下的独立研究都指向 MCP“协议兼容/描述/元数据”与“实际授权和行为”之间的信任缺口。MCP 协议机制与安全边界 从官方规范梳理 Server 身份、能力发现、Schema 变化、OAuth 资源绑定和不可信返回值等控制点,强调协议兼容不等于授权正确;MCP 描述—代码不一致 定义 DCI(功能不一致与未声明副作用),用 DCIChecker 对 2,214 个真实 Server 的近两万个描述—代码对做静态分析与交叉核验;Remote Server, Local Root 记录会议摘要所述的动态授权元数据风险——客户端信任远程 Server 提供的授权元数据可能波及本地执行与账户接管。共同结论是:Agent 依据自然语言描述/元数据选择与授权工具,而协议不强制其与实现或声明一致,Host 需在执行点对工具权限、用户同意和内容到指令边界独立担责;末项目前只有会议摘要,不作通用漏洞外推。
WebMCP-Phalanx把能力发现问题推进到浏览器同源环境:主站、广告 SDK 与分析脚本可能共享 Origin 和工具注册表,现有语义缺少注册者归属、撤销权限及 SPA 导航生命周期。作者以浏览器能力句柄把覆盖/撤销攻击从 20/20 降至 0/20,隔离语义检查把工具描述注入降至 0/80、工具返回注入降至 2/80;但白盒攻击可把载荷移入检查前即触发调用的工具名。该结果说明,协议层必须同时提供不可伪造的细粒度来源、生命周期撤销和调用时序门禁;同源标签与内容过滤不能相互替代。