跳到主要内容
返回
← 返回AI Agent 工程:从零到企业应用

AI Agent 工程 · 03

03.3 实战:模拟订单 MCP 服务

运行一个不接真实账号的 JSON-RPC 订单工具模拟器,验证发现、授权查询和失败结果。

MCP · 实践 · 订单

目标与边界

本练习实现的是协议形状的本地模拟器,不是完整 MCP SDK Server。它用 JSON-RPC 风格的 tools/listtools/call 展示发现与调用路径,所有订单均为模拟数据,不使用真实 API key、客户信息或支付权限。

运行

在仓库根目录执行:

npm run test:agent-course

脚本会验证课程注册,再运行 examples/cross-border-ai-support-agent/v2-mcp-workflow.mjs。预期输出包含 tool discoveryauthorized lookupforbidden lookup 三项通过。

为什么这样设计

tools/list 让 Client 获得工具名与输入要求;tools/call 接收订单号和请求者。Server 先检查工具是否存在、订单是否存在、客户是否归属,再返回文本内容。即使模型正确抽取了订单号,requesterId 不匹配仍返回错误,避免泄露订单事实。

输入:XB-1024 + customer-amy → 授权查询 → 模拟订单
输入:XB-1024 + customer-ben → 拒绝 → “无权访问订单”

验收、排查与回忆

验收:四项检查均通过;无权查询不含订单详情。若 Node 找不到文件,确认从仓库根目录运行;若课程检查失败,检查 MDX slug 与配置是否一致。主动回忆:为什么错误响应也需要结构化、有限的信息?

  • 必须记:发现工具与执行工具是两步。
  • 建议记:授权由 Server 强制执行。
  • 不用记:模拟订单号。

官方参考(核对日期:2026-09-21)