Packing List

io.github.theluckystrike由 GitHub 账号 theluckystrike 发布v0.22.8更新于 Oct 25, 2026

Packing slips: cartons, contents, weights, chargeable weight and what is still to pack.

已验证Streamable HTTP可网页运行效率与工作流商业与电商

概览

AI 生成的概览

创建并跟踪发货装箱单:纸箱、装箱物品、重量、计费重量与缺件情况,并可生成装箱单文本。

可以做什么
按订单号、收货人、目的地和日期创建与管理装箱单,按状态、订单号或收货人列出和筛选,删除草稿或未发货的装箱单。声明订单行,添加带皮重和可选尺寸的纸箱,按单件重量装箱或拆箱。查看整张装箱单的纸箱、内容、推算重量、缺件情况和是否可发货。按纸箱和整批发货报告皮重、净重、毛重、体积、体积重和计费重量。对比订单与实装,找出缺件、超装和不在订单上的物品。将装箱单从草稿推进到已装箱、已发货(记录承运商和运单号)或取消,并生成不含价格的纯文本装箱单。
适用场景
适合需要打包实物发货、希望助手理清箱内物品、重量和缺件情况,并生成不含价格的装箱单的场景。适用于关注计费重量和待装数量的小型履约、仓储或电商流程。
运行要求
可作为远程端点或本地进程运行(Claude Desktop 使用 .mcpb 包;npm 包尚未发布,需从源码构建)。Authorization 请求头必须提供 bearer 令牌;Pro 许可证密钥可通过 MCP_LICENSE_KEY 或 license_activate 提供。本地安装时数据保存在本机。
安装前请注意
免费版同时最多只能有 3 张进行中的装箱单。标记发货会永久冻结装箱单,已发货的装箱单不能编辑、重新打开或删除;删除装箱单会永久移除其纸箱和装箱行。Pro 功能和写入文件的装箱单需要付费许可证密钥。README 称该服务器不进行任何网络调用,也不需要账户。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Packing List,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.theluckystrike%2Fpacking-list/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "packing-list": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/packing-slip",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

mcp-packing-list

[theluckystrike/mcp-packing-list MCP server]

In the official MCP Registry (io.github.theluckystrike/packing-list). The packing slip for a shipment, and the answer to the only two questions anybody asks while packing one: what is in which box, and what is still to pack. A packing list is raised against an order you name, the lines that order says should ship are declared on it, cartons are added with a tare weight and their outside dimensions, and goods go into cartons one call at a time. packing_shortfall then reports every line as short, complete, over-packed, or packed and not on the order at all. carton_report gives the tare, net, gross, volume, volumetric and chargeable weight per carton and for the shipment.

That is not a simplification, it is what the document is for: it travels inside the box, and the consignee's warehouse is not the party that sees what the goods cost. The invoice against the same order is a different document and lives in @theluckystrike/mcp-invoice. There is no money arithmetic in this server at all, and a test asserts there is not.

Mass is in whole grams everywhere and dimensions in whole centimetres, for the same reason money is in minor units: a kilogram carried as a float accumulates error over a hundred lines and then disagrees with the carrier's scale.

Nothing derived is stored. A record holds its cartons, its declared order lines and its packed lines; every weight and the whole shortfall are computed on the call. A stored gross weight is a second copy of what the lines already say, and it is the copy that gets believed after somebody unpacks a line.

The chargeable weight, which is the number that costs money

Couriers bill the greater of what a box weighs and what its volume is worth. The volumetric weight is length x width x height / divisor, in centimetres, and the divisor is a tariff term: 5000 cm3/kg is the courier air default, 6000 the older IATA air figure, 4000 appears on some road tariffs. It is a parameter on every tool that reports it and never a constant inside a formula, because a chargeable weight computed against the wrong divisor is a carrier invoice nobody catches until the account is reconciled.

Two refusals matter here and both are deliberate:

  • A carton with only two of its three dimensions is refused outright. Two of three cannot make a volume, and a partially measured box would drop silently out of the shipment total.
  • If any carton has no dimensions at all, the shipment's volumetric and chargeable totals come back as null, never as a total that quietly skipped three boxes.

Install

One-click (.mcpb): download packing-list.mcpb from the latest release and double-click it in Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest

npm publish for @theluckystrike/mcp-packing-list is pending, so the npx line below returns 404 today. Build from source in the meantime; see llms-install.md.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "packing-list": {      "command": "npx",      "args": ["-y", "@theluckystrike/mcp-packing-list"]    }  }}

Claude Code

sh
claude mcp add packing-list -- npx -y @theluckystrike/mcp-packing-list

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.

Tools

ToolWhat it does
packing_list_createOpen a packing list against an order: the reference, the consignee, where it ships to, the date
packing_expectDeclare an ordered line, so the shortfall is real. Nothing is read from the quotes, work-order or invoice store
carton_addAdd a carton: a label, the empty weight in whole grams, and all three outside dimensions or none
pack_itemPut a quantity of one item into a named carton, with the per-unit weight in whole grams
unpack_itemTake a packed line back out by its L01-style id. Deleted, not zeroed
packing_list_showThe whole list: cartons with contents and weights, the ordered lines, the shortfall, and whether it is ready to ship
packing_list_listPacking lists newest first, filtered by status, order reference or consignee
carton_reportTare, net, gross, volume, volumetric and chargeable weight, per carton and for the shipment
packing_shortfallOrdered against packed: what is short, what is over-packed, what is not on the order
packing_list_statusdraft to packed to shipped, or cancelled. Shipping records the carrier and tracking, and freezes the list
packing_slipThe slip as text on every tier. Pro also writes it to out_path as a .txt file
packing_list_deleteDelete a list for good. A shipped list is refused: it is the record of what left the building
license_statusWhich tier this install is on and where the key came from
license_activateStore a Pro key for this server

There is also a resource, packinglist://contract, carrying the status machine, the weight basis, what each shortfall state means, the free-tier limits and the one directory this server writes; and a prompt, pack_the_shipment, that walks the whole job in order.

Free vs Pro

FreePro
Open packing lists at once3unlimited
Cartons, packed lines, ordered linesunlimitedunlimited
carton_report, packing_shortfall, packing_list_showyesyes
The packing slip as textyesyes
Writing the slip to a file with out_pathnoyes

The cap is on shipments in flight, not on knowing what is in a box. Marking a list shipped or cancelling it frees its slot, and so does deleting a draft, so a free user can always get back under the limit without a key.

Get Pro: https://mcp.zovo.one/buy/packing-list (one-time), or all servers for one price at https://mcp.zovo.one/buy/bundle

Privacy

All data stays local, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/packing-list/. There is no network call anywhere in this server, no API key, and no account. The only file it reads that it does not own is the shared business profile, for the name and address at the top of the slip, and it never writes to it.

Built by theluckystrike. Support: [email protected]

Use these docs as an MCP server

Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install:

来源:servers/packing-list/README.md,提交 6535b33

工具

14

packing_list_create

Open a packing list

Open a packing list against an order and return its PL-YYYY-NNNN number: the order reference, the consignee, where it ships to and the date. Free tier: 3 open at once; shipping or cancelling frees a slot.

输入参数datenoteship_toconsignee必填reference必填duplicate_okreference_kind

packing_expect

Declare what the order says should ship

Add an ordered line to a packing list so the shortfall is real: a SKU, a description and a quantity. Nothing is read from the quotes, work order or invoice store; what the order says is stated here.

输入参数skuquantity必填description必填packing_list必填

carton_add

Add a carton

Add a carton to a packing list and return its C01-style id: a label, the empty weight in WHOLE GRAMS, and optionally length, width and height in WHOLE CENTIMETRES. Dimensions are what make a chargeable weight possible.

输入参数notelabel必填width_cmheight_cmlength_cmtare_grams必填packing_list必填

pack_item

Pack goods into a carton

Put a quantity of one item into a named carton: a description, how many, and the per-unit weight in WHOLE GRAMS. Leave unit_grams out when it was not weighed and the carton gross comes back as a lower bound.

输入参数skunotecarton必填quantity必填unit_gramsdescription必填packing_list必填

unpack_item

Take a packed line back out

Remove one packed line from a packing list by its L01-style id and return the carton it came out of. The line is deleted, not zeroed, so the slip does not print an item nobody packed.

输入参数line必填packing_list必填

packing_list_show

Show one packing list

The whole packing list: its cartons with contents and derived weights, the ordered lines, the shortfall, whether it is ready to ship and why not, and its status history. Nothing here is stored; it is computed.

输入参数divisorpacking_list必填

packing_list_list

List packing lists

Packing lists newest first, with cartons, units, gross weight and how many ordered lines are still short. Filter by status, by order reference or by consignee. Returns at most 500 rows.

输入参数statusdivisorconsigneeopen_onlyreference

carton_report

Weigh the cartons

Per carton and for the shipment: tare, net, gross, volume, volumetric weight and the chargeable weight, the greater of gross and volumetric. A carton with no dimensions makes the chargeable total null, never a guess.

输入参数divisorpacking_list必填

packing_shortfall

What is still to pack

Ordered against packed, line by line: what is still short, what was over-packed, and what was packed that is not on the order at all. A packed line with no ordered line is reported, never dropped.

输入参数packing_list必填

packing_list_status

Move a packing list on

Move a packing list draft to packed to shipped, or cancel it. Shipping records the carrier, the tracking number and the date, and freezes the list. A shipped list cannot be reopened or edited.

输入参数datenoteforcestatus必填carriertrackingpacking_list必填

packing_slip

Produce the packing slip

The packing slip as plain text on every tier: cartons, contents, weights and a signature line, and no prices anywhere. Pro also gets it back as a .txt download link valid for one hour, named by out_path; an existing name is refused unless told to overwrite.

输入参数divisorout_pathoverwritepacking_list必填

packing_list_delete

Delete a packing list

Delete a packing list for good, with its cartons and packed lines. A shipped list is refused: it is the record of what left the building. Cancel a list you no longer want instead of deleting a real shipment.

输入参数confirm必填packing_list必填

license_status

License status

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

无需输入参数。

license_activate

Activate license

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

输入参数key必填

版本历史

4
  1. v0.22.8最新Oct 14, 2026
  2. v0.22.4Sep 26, 2026
  3. v0.22.2Sep 26, 2026
  4. v0.21.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分