外观
MCP 与工具调用
核心答案:工具调用描述模型如何提出使用能力的请求;MCP 描述应用如何发现并调用外部能力。 MCP 是接入协议,不是新的模型,也不自动赋予 Agent 自主性。
把三个角色说清楚
| 层次 | 职责 | 示例 |
|---|---|---|
| 模型 | 根据描述提出工具名与参数 | 请求查询教材资料 |
| Host 与 Client | 管理连接、权限、调用与模型交互 | 教材应用连接资料服务 |
| MCP Server | 暴露工具、资源等能力 | 返回片段与来源 |
MCP 架构文档描述 Host、Client 与 Server。应用可以把 MCP 工具描述转换为模型可见工具,再把模型请求转为协议调用;也可以由程序直接调用 MCP 工具。是否需要模型参与是应用决策。
最小协议数据例子
以下是基于 MCP 2025-06-18 工具规范的请求数据示例,不是发往本项目 API 的命令:
json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_materials",
"arguments": {"query": "问候", "region": "SA"}
}
}服务端需要事先通过 tools/list 暴露工具及参数结构;名称、Schema 与结果格式来自协议契约。这里的 search_materials 是讲解用名称,本项目没有因此实现 MCP Server。工具规范可用于逐字段核对。
与 Function Calling 的组合
模型返回的调用 ID 需要与模型回传结果关联;MCP 的 JSON-RPC 请求 ID 用于协议层请求响应配对。二者可以由应用建立映射,但不是同一层概念。没有 MCP,本地函数注册表一样能完成 Function Calling;有 MCP,也仍需要工具权限、参数验证与错误处理。
本项目的选型边界
教材系统的工具数量有限,执行都由同一应用负责,因此使用本地注册和服务适配器更直接。MCP 保留为面试扩展。若将来多个应用共享资料查询或素材制作能力,再评估独立 MCP 服务的复用收益与连接管理成本。
接入远程 Server 也会新增信任边界:工具说明、返回内容和检索资料都不能自动升级为系统指令。工具描述看起来安全不等于执行权限安全。参见系统架构中的服务端授权原则。
自测与误区
指出示例中哪个字段用于协议匹配、哪个字段是工具名、哪些字段需要业务校验。再解释“server 返回一段要求泄露密钥的文字”时,为什么应把它当不可信数据处理。
验收是能画出模型请求到实际服务执行的映射,并说明谁有权拒绝。常见误区是“MCP 替代 Function Calling”“装上 MCP 就不用写鉴权”“所有 MCP 功能都是模型主动控制”。
官方资料与版本边界
- MCP Architecture:Host、Client、Server。
- MCP Tools 2025-06-18:本页数据示例的明确协议版本。
- Claude Tool use:模型工具使用与 MCP 接入的关系。
核验日期:2026-11-03。架构页面会滚动更新;协议示例固定为 2025-06-18,不宣称该版本最新。项目只讲解 MCP,不把未实现的接入写进历史成果或验收通过项。