6.1 概念题
检验你对 MCP 核心概念的理解。
基础概念
1. MCP 解决的核心问题是什么?
A. 让 LLM 更聪明B. 统一 AI 与外部系统的连接方式,把 M×N 集成降为 M+NC. 替代 OpenAPI 成为新的 API 标准D. 让所有 AI 工具使用同一个 LLM
答案
B。MCP 解决的是工具集成的标准化问题——不是让 AI 更聪明,而是让 AI 更容易「动手」。它把 M×N 的定制集成降为 M+N 的标准接口。
2. MCP 三层架构中,Client 和 Server 的关系是?
A. 一对多B. 多对一C. 一对一D. 多对多
答案
C。Client 和 Server 是 1:1 关系。一个 Host 可以包含多个 Client,每个 Client 连接一个 Server。
3. 三种原语中,哪个由 LLM(模型)控制?
A. ResourcesB. PromptsC. ToolsD. 以上都是
答案
C。Tools 由模型控制(LLM 自主决定何时调用)。Resources 由应用控制(Host 决定何时读取),Prompts 由用户控制(用户选择用哪个模板)。
4. stdio 传输中,Server 的日志应该写入哪里?
A. stdoutB. stderrC. 文件D. 网络
答案
B。stdout 只能用于 JSON-RPC 消息。所有日志必须写入 stderr,否则会破坏协议解析。这是 stdio Server 最常见的问题。
进阶概念
5. Tool Annotations 的 readOnlyHint: true 意味着什么?
A. 这个工具绝对是只读的,可以安全使用B. Server 声称这个工具是只读的,但不可作为安全依据C. LLM 不应该调用这个工具D. 这个工具没有参数
答案
B。Tool Annotations 是 Server 的「声明」,不可信。Server 可以声称工具是只读的但实际执行写操作。安全决策必须基于代码审查。
6. Protocol Error 和 Tool Execution Error 的核心区别是?
A. Protocol Error 更严重B. Tool Execution Error 的信息量更大C. LLM 可以根据 Tool Execution Error 自我修正并重试D. Protocol Error 会断开连接
答案
C。Tool Execution Error 包含可操作的反馈(如「日期格式错误,需要 YYYY-MM-DD」),LLM 看到后可以修正参数重试。Protocol Error 表示请求本身有问题,LLM 不太可能自行修正。
7. Sampling 功能的作用是?
A. Server 向用户请求信息B. Server 请求 Client 的 LLM 进行推理C. Client 发现 Server 的工具D. Server 发送日志给 Client
答案
B。Sampling 让 Server 在执行工具过程中,请求 Client 的 LLM 进行推理。这样 Server 不需要自己调用 LLM API。
8. v4 版本引入的最重要特性是?
A. Streamable HTTP 传输B. Tool AnnotationsC. OAuth 2.1 授权流程D. Resources 订阅
答案
C。v4(2025.11)引入了 OAuth 2.1 授权流程。Streamable HTTP 是 v2 引入的,Tool Annotations 是 v3 引入的,资源订阅是 v2 引入的。
深度理解
9. 为什么 MCP 选择 JSON-RPC 2.0 而不是 REST?
A. JSON-RPC 性能更好B. JSON-RPC 更流行C. JSON-RPC 支持双向通信和通知D. JSON-RPC 更安全
答案
C。REST 是请求-响应模式(单向),而 MCP 需要双向通信——Server 也要能向 Client 发请求(Sampling、Elicitation)和通知(工具变更、进度更新)。JSON-RPC 2.0 天然支持这些能力。
10. MCP 和 A2A 的关系是?
A. 竞争关系——都是 AI 协议B. A2A 是 MCP 的升级版C. 互补关系——MCP 连接 Agent 和工具,A2A 连接 Agent 和 AgentD. 没有关系
答案
C。MCP 和 A2A 解决不同层面的问题。MCP 连接 Agent 与工具/数据(Agent 使用能力),A2A 连接 Agent 与 Agent(Agent 间协作)。实际应用中常常同时使用两者。
进阶补充
11. Elicitation 功能的作用是?
A. Server 向 Client 的 LLM 请求推理B. Server 向用户请求信息(确认、凭据、选择)C. Client 发现 Server 的工具D. Server 发送日志给 Client
答案
B。Elicitation 让 Server 向用户请求信息,如确认操作、获取凭据、选择选项。通过 elicitation/create 方法实现,Schema 限制为基本类型(string、number、boolean)。注意和 Sampling 区分:Sampling 是请求 LLM 推理,Elicitation 是请求用户输入。
12. MCP Registry 的定位是什么?
A. 一个 MCP Server 的在线运行平台B. 一个集中式元数据仓库,供聚合器/市场消费C. 一个 MCP Client 的下载站点D. 一个 LLM 的模型仓库
答案
B。MCP Registry 是公开 MCP Server 的集中式元数据仓库,提供命名空间管理、REST API、标准化 server.json 格式。它不是直接给终端用户用的,而是被下游聚合器(如 Smithery、MCPB)消费。
简答题
13. 用你自己的话解释 MCP 的 M×N 问题。
参考答案
M×N 问题指的是:M 个 AI 工具各自需要对接 N 个外部系统时,需要写 M×N 个定制适配器。比如 3 个 AI 工具 × 4 个外部系统 = 12 个适配器。MCP 通过定义标准协议,让每个外部系统实现一次 MCP Server(N 个),每个 AI 工具内置 MCP Client(M 个),总计 M+N 个接口,将乘法增长降为加法增长。
14. 为什么 stdio Server 绝对不能向 stdout 写非协议数据?
参考答案
stdio 传输中,Client 和 Server 通过 stdin/stdout 交换 JSON-RPC 消息。stdout 被用作协议通道——Client 从 Server 的 stdout 读取每一行,期望它是合法的 JSON-RPC 消息。如果 Server 代码中有 print("调试信息"),这行文本会写入 stdout,破坏 JSON 解析,导致 Client 报错或行为异常。所有日志必须写入 stderr 或使用 logging 模块。
评分标准
| 正确数 | 评价 |
|---|---|
| 12-14 | 优秀——你已经深入理解 MCP 的核心概念 |
| 9-11 | 良好——基础扎实,可以继续进阶 |
| 7-8 | 及格——建议回顾前几个阶段的内容 |
| < 7 | 需要重读——从头开始认真看一遍 |