AI

问 Claude 还剩多少面粉:通过 MCP 使用带计量的库存

发布于 · 阅读约 6 分钟

当 AI 助手通过内置 MCP 服务器读取 您的库存时,它拿到的是一份带名称、成本和计数的物品列表。此前,计数是 一个不带单位的整数,对椅子来说没问题,对面粉来说就很别扭。问一句“还剩多少面粉”, 诚实的回答是“12”,然后再猜一下这指的是袋、公斤还是磅。

有了计量单位,服务器返回的每个 数量都是小数,每个物品都带着自己的单位。助手再也不用猜了。 下面是这在一段对话里的样子,以及为喜欢刨根问底的人准备的 工具变化说明。

Package Pal 在笔记本电脑上与 AI 助手聊库存水平。
助手把单位和数字一起读到,所以答案以公斤返回。

面包房的一个早晨

Claude · 已连接到 Simple Inventory Management 公司:Northside Bakery
我们有多少面包粉,今天够用吗?
get_inventory
您有 12.75 kg 面包粉在库,另有 50 kg 在途。您的 警告水平是 20 kg,危急水平是 10 kg,所以这一行已经变黄了。按照 您“酸面包”装配件中每个面包 0.5 kg 计算,在跌入危急区之前 大约还够做 25 个面包。
我们第一批刚用了 4.5 kg。记一下。
edit_inventory_item
完成。面包粉现在是 8.25 kg,低于您 10 kg 的危急水平。 一条库存不足警告已经发到您的 Teams 频道。要我查一下在途的 50 kg 有没有交货日期吗?
要,如果还没发货,再往同一张订单加 2 L 橄榄油。
create_order
订单“磨坊送货,第 44 周”仍处于待处理状态。我加了一行 2 L 橄榄油,所以这张订单现在有 50 kg 面包粉和 2 L 橄榄油。

这段交流中没有任何地方需要换算或追问。助手从同一个物品读到 12.75 和 kg,以公斤读取装配件组件,并以同一单位把新的 存货值写回去。物品的历史显示了那笔 4.5 kg 的扣减,旁边有一个机器人标记, 和任何其他通过 MCP 做出的更改一样。

只有带了单位才说得通的问题

  • “哪些以升计的物品低于警告水平?”
  • “现在的面粉存货能做多少个面包?”(助手读取装配件,或者自己做除法)
  • “假设一袋是 25 kg,把再订货建议换算成袋。”应用不做换算,但助手乐意做,而且会说明这一点。
  • “创建一个叫铸造树脂的物品,以 ml 追踪,并把它的警告水平设为 250。”
  • “我们收到 3 盘电缆,每盘 100 m。给 6 mm 铠装电缆加 300 m。”

通用的问题清单仍然 适用;上面这些是在单位随数字一起传递之前根本无法答好的 问题。

工具中有哪些变化

如果您从自己的客户端或脚本使用 MCP 服务器,有三处不同。

  • 数量是小数。get_inventory 和 edit_inventory_item 上的 inventoryCount、onOrderCount、 toShipCount 和 damagedCount 接受并返回像 12.75 这样的值。整数 客户端照常工作;12 的计数仍然是 12。
  • 物品带有 unit。对按件计数的物品它是 null, 对带计量的物品它是一个短标签(kg、lb、ml、ft,或者 您输入的任何内容)。edit_inventory_item 可以设置它, create_new_inventory_item 接受一个可选的 unit。
  • 相关工具跟进。create_order 上的订单行、单件工具上的 存货行以及 get_reorder_suggestions 都报告小数,而再订货建议 会包含物品的单位,所以建议的 50 读作 50 kg。

工具描述也把这些都说明了,这比听起来更重要:助手在调用工具之前会先读 描述,所以它一开始就知道带计量物品上的计数以该物品的单位计, 而且设置单位不会换算任何东西。

它不做什么

服务器从不在单位之间换算。如果您让助手“把面粉改成 磅”,它会改标签,而且如果它足够细心,会告诉您数字没有 变。这与应用对人适用的规则相同,理由也相同:悄无声息的换算是 让 22 kg 面粉实际上只有 10 kg 的绝佳途径。请明确要求换算, 让助手在对话中做算术,然后确认新的计数。

还没连接? 设置指南大约只需四步, 访问权限限定于一家公司,并可随时撤销。适用于 Claude、Grok、OpenAI、Gemini 和 任何其他 MCP 客户端。

把助手连接到您的库存