AI Agent 工程 · 03
03.2 MCP 的 Host、Client、Server 与三种原语
拆解 MCP 的参与者、工具/资源/提示模板,以及从发现到受控调用的真实路径。
概念与系统位置
Host 是 AI 应用;它为每个 Server 建立一个 Client;Server 则提供上下文。官方架构把协议分为 JSON-RPC 数据层与传输层。本地开发常用 stdio,远程服务可使用 Streamable HTTP;传输选择不等于无需认证。
Host 选择工具 → Client: tools/list → Server
Host 请求调用 ← Client: tools/call ← Server 校验并返回结果
三种服务器原语
| 原语 | 白话 | 客服示例 |
|---|---|---|
| Tools | 可执行动作 | 受权查询模拟订单 |
| Resources | 可读取的上下文数据 | 售后政策版本 |
| Prompts | 可复用交互模板 | “把订单状态解释给客户”模板 |
工具要有明确输入 Schema 和最小权限;资源不是“把整库数据交给模型”;提示模板也不能绕过系统安全规则。Client 先发现能力,再调用;调用结果是给 Host 的数据,不是模型可自行伪造的事实。
跨境客服案例与实践
订单 Server 可以同时暴露一个只读 order_lookup 工具和订单字段说明资源。政策 Server 只暴露公开的退货条款资源。退款执行不在本课的工具里:它需要业务规则、人工审批和审计。
实践:为每个原语写一张卡片:名称、输入/地址、输出、允许谁用、失败时回什么。预期结果是三张卡片;验收标准是 order_lookup 必须说明客户归属校验,而不是仅写“根据订单号查询”。
排查、回忆与笔记
若 Client 连上 Server 但没有工具,检查能力发现和工具列表;若返回数据过多,缩小 Server 响应字段。主动回忆:售后政策更适合作为 Tool 还是 Resource,为什么?
- 必须记:Host 协调、Client 连接、Server 提供能力。
- 建议记:Tools、Resources、Prompts 的职责不同。
- 不用记:具体 SDK 的类名。