Claude Code 学习站

CCA-F 练习题库· Context Management & Reliability

某个 agent 与多个 Model Context Protocol (MCP) server 交互时,仅仅为了发现有哪些数据(issue tickets、docs、schemas)可用,就要执行一连串顺序的查询调用,浪费了大量 context 和时间。你如何改进数据发现?

  1. A把所有 MCP server 合并到一个单一的巨型 endpoint 之后,由它把全部工具重新导出到一个命名空间,让 agent 只查询一个连接。
  2. B给每个 MCP server 都新增一个 discover_data 工具。
  3. C把每个 MCP server 的内容目录暴露为 MCP Resource,让 agent 在发起有针对性的工具调用之前先读取存在哪些数据。
  4. D在协调器中实现基于关键词的路由,把请求中的词与每个 server 的关键词表做匹配,自动选出目标 server 并转发。

正确答案:C

解析

MCP 有意区分 Tools(由模型调用的动作)与 Resources(由应用驱动、客户端可以列出并读取为 context 的数据)。官方规范正是为暴露文件、数据库 schema、应用特定信息等数据而精确定义了 Resources,并配有 resources/list 发现调用和 resources/read 读取调用。

因此,把每个 server 的内容目录发布为 Resource,能让 agent 预先读取存在哪些数据(tickets、docs、schemas),然后再做有针对性的工具调用,从而消除题干描述的那种探索式顺序查询刷屏。

  • C是符合协议本身惯用法的修复,是正确的。各干扰项都更差:
  • A把 server 边界坍缩成一个脆弱的单体,却并未真正改善发现;
  • B把 Resources 重新发明成了一个 Tool,而每次发现类 Tool 调用仍然要消耗一次往返和 context(这正是问题所在);
  • D是脆弱的关键词启发式,靠猜测来路由,而不是让 agent 看到真实的目录。

延伸阅读

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