怎么读 MCP 工具上的只读和破坏性标注

标注是服务器自己声明的,不是客户端替你做的安全边界。批准前先看 hints,再决定要不要开这个工具。

MCP 工具可以带 readOnlyHint、destructiveHint、idempotentHint、openWorldHint。只读提示表示作者认为调用不改外部状态;破坏性提示表示可能删数据或花钱。客户端可以据此默认折叠或要求确认,但不能当成强制权限。

标注写错很常见。一个声称只读的查询工具,背后仍可能触发写日志、计费或缓存失效。反过来,破坏性标注也不等于每次调用都会毁掉生产。把它当成作者的自我说明,再用账号权限收口。

团队配置里,把带破坏性标注的工具默认关掉,只在需要的任务临时打开。只读工具可以进日常会话,但仍要看它读哪些路径或租户。对照本站「批准 MCP 工具调用」和「MCP 安全入门」。

自己写服务器时,标注要和实现一致。实现改了、标注没改,模型会按错的假设选工具。评审 PR 时把 annotations 和实际副作用放在一起看。