> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clawdot.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# get_item_description

> MCP 工具 get_item_description — 读取单个商品的「商品详情」说明卡（商家填写的原料、份量、口味、是否含咖啡因等），按商家书写顺序返回

## get\_item\_description

读取单个商品的\*\*「商品详情」说明卡\*\*——就是外卖 App 里点开商品图后弹出的那一栏：原料、份量、口味、制作方法、是否含咖啡因……由**商家自己逐条填写**。只读，不改任何状态。

`get_shop_menu` 回答「有这道菜、卖多少钱」，本工具回答「**这到底是什么**」。

典型场景：

* **忌口 / 过敏确认**：用户说「我不吃牛肉」「对坚果过敏」，下单前查一下原料。
* **份量判断**：「这杯多大」「够两个人吃吗」。
* **口味与做法**：辣不辣、怎么做的、热的还是冰的。
* **含咖啡因 / 含糖等健康问题**：咖啡、茶饮类商品商家常会填。

<Note>
  **每家店填的项目都不一样。** 说明卡的条目名（`label`）由商家自定义，不是固定字段：咖啡店可能给「是否含咖啡因」「咖啡豆烘培程度」「咖啡豆品种」，面馆可能给「荤素」「凉热」「制作方法」。请**按返回的内容原样展示**，不要假设某一项一定存在，也不要按固定名单去取值。
</Note>

### 参数

| 参数                 | 类型      | 必填 | 默认    | 说明                                                                               |
| ------------------ | ------- | -- | ----- | -------------------------------------------------------------------------------- |
| `consent_grant_id` | string  | 是  | —     | 用户授权 ID（`cg_` 前缀，来自 `verify_user_bind`）                                          |
| `cart_id`          | string  | 是  | —     | 购物车上下文 ID（来自 `search_shops`）                                                     |
| `item_id`          | string  | 是  | —     | 商品 ID，来自**同一个 cart** 的 `get_shop_menu`                                           |
| `lang`             | string  | 否  | —     | 本次返回内容使用的语言，枚举 `zh` / `en` / `ja` / `ko` / `ru` / `ms` / `es`；不传则用绑定时设定的语言（默认中文） |
| `include_chinese`  | boolean | 否  | false | 为 `true` 时响应同时返回中文原文（`<key>_zh`），见 [双语响应](/mcp/overview)                         |

<Note>
  **本工具是商品级的，不接收 `sku_id`。** 一个商品无论有几个规格，查一次即可。多规格商品若某一项的内容按规格而异，会合并成一条返回，详见下方「多规格商品的份量」。
</Note>

### 返回

| 字段                | 类型     | 说明                                                |
| ----------------- | ------ | ------------------------------------------------- |
| `item_id`         | string | 原样回传请求的 `item_id`                                 |
| `name`            | string | 商品名称                                              |
| `details`         | array  | 说明卡条目 `[{label, text}]`，**顺序与商家书写顺序一致**；商家没填时为空数组 |
| `details[].label` | string | 条目名，如「原料」「份量」「口味」。**由商家自定义，取值不固定**                |
| `details[].text`  | string | 条目内容，如「水,浓缩咖啡」。恒非空                                |

<Note>
  **`details` 为空是正常结果，不是错误。** 说明这家商家没给这个商品填写说明，如实告知用户即可，不必重试。
</Note>

<Warning>
  **多规格商品的份量是合并值。** 若某一项的内容随规格而变（最常见的是「份量」），会把各规格的值合并成一条返回，例如 `"约473毫升、约592毫升"`，**不区分哪个值对应哪个规格**。这种情况下请把两个值都告诉用户（如「大杯和超大杯分别是 473 和 592 毫升左右」），不要猜测对应关系。原料、口味、做法等其余项目本身就是整个商品共用的，不受影响。
</Warning>

<Note>
  **与 `get_shop_menu` 的 `description` 有一条重叠。** 说明卡的「商品描述」一条与菜单里该商品的 `description` 内容相同，方便你只调本工具就能拿到完整介绍。已经展示过菜单简介的话，可以跳过这一条避免重复。
</Note>

### 错误

| 场景                        | 表现                                  |
| ------------------------- | ----------------------------------- |
| `item_id` 不属于该 `cart_id`  | HTTP 400 `PUBLIC_REFERENCE_INVALID` |
| `cart_id` 不存在 / 已过期，或授权无效 | HTTP 400 `PUBLIC_REFERENCE_INVALID` |

### 示例

请求：

```json theme={null}
{
  "name": "get_item_description",
  "arguments": {
    "consent_grant_id": "<consent_grant_id>",
    "cart_id": "<cart_id>",
    "item_id": "<item_id>"
  }
}
```

响应（瑞幸「标准美式」）：

```json theme={null}
{
  "item_id": "item_xxx",
  "name": "标准美式",
  "details": [
    {"label": "商品描述", "text": "【意式经典之作 标准美式】臻选浓醇 Espresso 与水的黄金配比"},
    {"label": "原料", "text": "水,浓缩咖啡"},
    {"label": "份量", "text": "1人份"},
    {"label": "是否含咖啡因", "text": "是"},
    {"label": "咖啡豆烘培程度", "text": "中深度"},
    {"label": "咖啡类型", "text": "美式"},
    {"label": "咖啡豆品种", "text": "阿拉比卡"}
  ]
}
```

另一家店（沙县小吃「卤香·鸡腿饭」）——**条目名完全不同**：

```json theme={null}
{
  "item_id": "item_yyy",
  "name": "卤香·鸡腿饭（半个卤蛋+豆干+时蔬）",
  "details": [
    {"label": "原料", "text": "大米,鸡腿"},
    {"label": "份量", "text": "1人份"},
    {"label": "荤素", "text": "荤菜"},
    {"label": "制作方法", "text": "盖浇"},
    {"label": "辅料", "text": "五香粉、生抽、盐、葱"},
    {"label": "口味", "text": "咸香"},
    {"label": "时段", "text": "午餐、晚餐"}
  ]
}
```
