外观
MCP 描述—代码不一致:工具语义与实际副作用的测量
摘要
MCP Agent 依据 Server 提供的自然语言描述选择工具,但协议不强制描述与实现一致。本文定义 Description-Code Inconsistency(DCI),覆盖功能不一致和未声明副作用,并以 DCIChecker 对 2,214 个真实 Server 的 19,200 个描述—代码对做结构化静态分析与 Direct-Reverse-Arbitration 交叉核验。
核心创新与差异
原站已覆盖恶意 Tool Poisoning;本文新增的是不要求攻击者先植入恶意指令、仅由维护不一致即可形成的系统性信任缺口,属于能力语义与执行代码之间的协议控制失效。
威胁模型与攻击链
攻击者可发布或维护描述不完整的 Server,也可在代码变更后不更新 schema。Agent 把描述当作能力和安全边界依据,实际实现却读取额外资源、产生副作用或接受更宽参数。首个失效控制是描述来源没有经过实现绑定验证。
实验设计与实际过程
作者抽取真实 Server 的工具描述和代码,按 taxonomy 分类并运行 DCIChecker;论文报告大规模测量、检测框架和误差分析。本站未独立复现,DCI 判定仍含 LLM 仲裁因素。
关键结果与实际影响
研究将 DCI 从个案命名提升为可测量对象。部署方不应仅扫描描述中的危险词,而应把描述、schema、实现摘要、权限和副作用清单绑定到同一版本,并对变更做回归检查。
防护措施与验证方法
在发布门禁执行结构化描述—代码一致性检查;对文件、网络、凭据和写操作做副作用枚举;将工具身份、版本摘要和权限声明签名,并在运行时对超出声明的行为拒绝或升级审批。
局限与待验证问题
静态分析和 LLM 交叉核验不等同可利用漏洞证明,真实发生率、跨语言覆盖和动态副作用仍需独立审计。后续应公开误报样本、标注协议和运行时验证基线。