Claude Code 学习站

CCA-F 练习题库· Tool Design & MCP Integration

某个第三方 Model Context Protocol (MCP) server 提供的工具带有 readOnlyHint=true 注解。你正在为你的 agent 应用设计用户确认流程。你应该如何对待这些工具注解?

  1. A自动信任这些注解,因为该 MCP server 通过 stdio 在同一台机器上本地运行,调用不会发往远端主机。
  2. B把这些注解视为不可信的元数据,并让你的确认绕过策略基于你对该厂商/server 的信任,而不是基于其自报的标签。
  3. C先用有代表性的参数在 sandbox 中把每个带 readOnlyHint 的工具跑一遍来推断该 server 的可信度,只对没有产生写入的那些绕过确认。
  4. D对这些工具绕过用户确认,因为 readOnlyHint 是 MCP schema 中公布的声明字段,保证只读。

正确答案:B

解析

  • B正确,而且这与 MCP 规范逐字一致:tool annotations 一节警告说 "clients MUST consider tool annotations to be untrusted unless they come from trusted servers",并且 readOnlyHint 明确只是一个 hint,而不是被强制执行的保证。因此,确认绕过策略必须建立在你自己对厂商/server 的信任之上,而不是建立在 server 自报的标签之上。
  • A是错的,因为在本地执行并不能说明可信度(而且在本地运行的第三方代码同样可能是恶意的)。
  • C是错的,因为 sandbox 测试只能采样到观察得到的行为,无法证明不存在隐藏的或有条件触发的破坏性能力。
  • D是错的,因为 readOnlyHint 是一个不被强制执行的标签,而不是安全边界,所以它不能安全地作为绕过用户确认的理由。

延伸阅读

本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。