Skip to main content
Clawdot Gateway 通过 MCP (Model Context Protocol) 对外提供 Agent 接口,使用 Streamable HTTP 传输协议。MCP Server 暴露 24 个工具,覆盖从用户绑定授权、搜索商家、加购算价,到预览下单、免密支付的完整外卖链路。本页介绍怎么连、怎么认证、有哪些工具、怎么按顺序把它们串成一单。

连接方式

Endpoint:
网关把 MCP 应用挂载在 /mcp 下(app.mount("/mcp", create_mcp_app())),FastMCP 的内部路由是版本化的(streamable_http_path="/v1"),所以对外公开的端点是 /mcp/v1,不是 /mcp/mcp。

认证

两层认证——Agent 身份走连接层,用户授权走工具参数:
在连接层通过 Authorization: Bearer clw_... 请求头传递,由 MCPAuthMiddleware 校验,每个 MCP 请求都需要。
在控制台(console.hicaspian.com/agents)创建 Agent 时生成。
consent_grant_id 是业务工具的参数,作为 JSON 入参传入,不是请求头。详见 认证机制。

工具契约

所有工具遵循同一套调用约定:
  • 参数: 以 JSON 对象传入。除绑定类工具外,业务工具都带 consent_grant_id;跨步骤的 ID(cart_id / quote_id / preview_id / confirmation_token 等)由网关签发,须原样回传,不可自造或跨链路混用。
  • 返回: 结构化 JSON,每个工具的完整字段见对应工具页。
  • 错误: 统一 {"error": {"code", "message"}} 格式,详见 错误处理。
所有金额字段单位为分(整数),不是元。例如 1500 表示 ¥15.00。

多语言

平台可按语言返回内容:店铺名、商品名、规格与加料、标签、订单状态、错误提示等展示文案,都会按所选语言返回。枚举 zh(中文,默认)/ en / ja / ko / ru / ms / es,传其它值返回 400。如需同时保留中文原文,见下方「双语响应」。 设定方式两种,按需选一种:
  • 绑定时设定: request_user_bind 传 lang,该用户之后所有调用都用这个语言,不必每次传。
  • 单次指定: 在支持的工具上传 lang,只影响该次调用。
支持 lang 的工具:search_addresses、search_shops、get_shop_info、get_shop_menu、get_item_options、get_item_description、quote_cart、list_coupons、preview_order、create_order、get_order_status、list_orders。 create_order 的 callback_url 回调里,status_text 也按绑定时设定的语言返回。
接入前请注意三点
  1. 商品描述类内容首次可能仍是中文:商品描述、推荐理由,以及地址搜索结果第 11 条起的地址,首次查询可能是中文,稍后再查即为所选语言。按拿到的内容直接展示即可。
  2. 响应里出现 localization: "degraded" 时,表示翻译服务暂时不可用,本次内容可能含中文。这是临时状态,重试即可恢复;正常情况下没有这个字段。
  3. 以下页面固定为中文,不受 lang 影响:支付页、订单详情页(detail_url 与支付链接打开的页面)、骑手端。向外语用户提供这些链接时请一并说明。
收货人姓名(contact_name)不翻译,原样保存与展示,以便与配送信息一致。姓名上限 12 个字符,超出返回 400;外文姓名建议用「名 + 姓首字母」,如 Alexander Petrov → Alexander P。

双语响应

需要同时保留中文原文时(比如给人工核对商品名),传 include_chinese=true(布尔值,默认 false):
  • 默认关闭:不传 include_chinese,或传 false,响应里不会出现 <key>_zh;只有显式传 true 才返回中文原文。
  • 搭配 lang 一起传:lang 传目标语言(如 en),include_chinese 传 true,两个参数一起生效。
  • lang 是中文(zh)或不传 lang 时,include_chinese 不起作用,不会报错——中文响应本来就是中文,不需要再附一份。
  • 生效范围与单值 lang 一致:可以在 request_user_bind 绑定时设定,也可以在支持 lang 的工具里逐次指定。绑定时设定的 include_chinese,只在本次调用完全不传 lang、也不传 include_chinese 时才生效;本次调用只要传了 lang,include_chinese 就按本次传的值处理(不传按 false),不会继续沿用绑定时的设定——单次调用要双语,请把 lang 和 include_chinese 一起传,否则本次按不返回中文处理。
传 include_chinese=true 时,响应里每个翻译成功的字段,会在原字段旁多出一个 <key>_zh,值是这个字段对应的中文原文:
<key>_zh 的规则:
  • 类型与原字段完全一致:字符串对字符串;字符串数组对字符串数组,且顺序、长度都相同(如上面的 tags / tags_zh)。
  • 只在这个字段本次翻译成功时才出现。没有 _zh 就说明该字段这次没翻译成功,此时原字段本身是中文——可以逐字段判断翻译是否成功,不用看响应里的其他状态字段。
  • 只覆盖店铺 / 商品 / 规格 / 加料 / 标签这类商家信息。平台自己生成的提示语(如营业时间提示、起送差额提示)只返回一种语言,没有 _zh。
  • item_id / sku_id / price / image_url、坐标、时间戳这类字段不分语言,没有 _zh 版本。
  • delivery_fee_text(配送费文字说明,如”配送¥2”)是例外:即使翻译成功,也不会有 delivery_fee_text_zh。配送费金额本身在 delivery_fee 字段(数字),不受语言影响。
还原成单一语言,用下面这段通用函数即可,不需要认识任何具体字段名:

工具列表

MCP Server 暴露 24 个工具,按功能分组如下。每个工具链接到其工具页(含完整参数与返回字段)。

授权

店铺

地址

下单

支付

下单链路

从搜索到下单的工具调用顺序,每一步的输出喂给下一步:
  1. search_shops → 得 shop_id + cart_id(cart_id 已封装配送坐标)
  2. get_shop_menu → 选品,拿到 item_id / sku_id
  3. quote_cart → 算价得 quote_id
  4. select_address → 得 address_id
  5. preview_order → 得 preview_id + confirmation_token
  6. create_order → 得 order_id
  7. get_sign_action → 免密签约完成支付
各工具的完整参数与返回值见对应工具页。