Packing Slip Cartons Shipment Weights

io.github.theluckystrikePublished by GitHub account theluckystrikev0.22.8Updated Oct 24, 2026

Packing slips with no prices: what is in each carton, gross and chargeable weight, lines short.

Overview

AI-generated overview

Local MCP server that builds price-free packing slips: cartons, packed lines, shortfalls and chargeable weights for a shipment.

What you can do
  • Create and manage packing lists: open a list against an order, declare ordered lines, list and show lists, change status, delete drafts.
  • Add cartons with tare weight and outside dimensions, then pack or unpack item quantities into them.
  • Report weights per carton and per shipment: tare, net, gross, volume, volumetric and chargeable weight against a chosen divisor.
  • Compare ordered against packed to show short, complete, over-packed and off-order lines.
  • Produce the packing slip as text, and on Pro write it to a file path.
When to use it
Useful when packing a shipment and needing to know what is in which box, what is still to pack, and what the courier will bill by chargeable weight. Suited to warehouse or fulfilment work where the document travels inside the box and must not show prices.
Requirements
Runs as a local process on the desktop, installed from the .mcpb package or built from source; the npm package is not yet published. No account, API key or network access. An optional Pro license key in MCP_LICENSE_KEY unlocks unlimited open lists and writing the slip to a file.
Before you install
The server writes and deletes records: unpacking removes a packed line, deleting a list is permanent, and shipping freezes a list. Data is stored locally in a directory under the user's data home, and the shared business profile is read for the slip header. Pro features require a paid one-time license key.

Installation

In SourceWeft

  1. Open Packing Slip Cartons Shipment Weights in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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:

Source: servers/packing-list/README.md at commit 6535b33

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

3
  1. v0.22.8LatestOct 14, 2026
  2. v0.22.3Sep 23, 2026
  3. v0.21.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts