mcp-packing-list
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| packing_list_createA | 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. |
| packing_expectA | 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. |
| carton_addB | 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. |
| pack_itemB | 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. |
| unpack_itemA | 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. |
| packing_list_showA | 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. |
| packing_list_listA | 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. |
| carton_reportA | 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. |
| packing_shortfallA | 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_statusA | 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. |
| packing_slipA | The packing slip as plain text on every tier: cartons, contents, weights and a signature line, and no prices anywhere. Pro also writes it to out_path as a .txt file. Refuses a URL and refuses to overwrite unless told to. |
| packing_list_deleteA | 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. |
| license_statusA | Report this server's licence state: product, tier free or pro, licence id, expiry, the key source and the upgrade URL. No arguments, no network. Explains a free-tier refusal; license_activate installs a key. |
| license_activateA | Activate a Pro key (MCPL1.xxx.yyy) from checkout: verified offline against a built-in public key, saved to your config file. A wrong, malformed or expired key is refused, unsaved. license_status reads it back. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| pack_the_shipment | Declare what the order says should ship, pack it into cartons with weights, check nothing is short, and produce the packing slip. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| contract | The four statuses and the legal moves, how a gross and a chargeable weight are built, what a shortfall state means, the free-tier limits and the one directory this server writes. |
TDQS
Scored across 14 tools
Most tools target a distinct resource/action: create vs add expected line vs add carton vs pack vs unpack are clear. The main overlap risk is among read/report tools (packing_list_show, carton_report, packing_slip, packing_shortfall), but their descriptions differentiate scope well enough.
Names are all snake_case and readable, but conventions are mixed: resource_verb (packing_list_create, carton_add), verb_resource (pack_item, unpack_item), and noun-only names (packing_shortfall, packing_slip, license_status). 'packing_list_list' and 'packing_expect' are awkward and break a predictable pattern.
14 tools is well within the ideal range and each tool covers a specific step in the packing workflow, including license management. No tool feels redundant, and the set is not bloated.
The packing list lifecycle is largely covered: create, add expected lines, add cartons, pack/unpack, report, status transitions, slip, delete, and licensing. However, there is no way to edit or remove an expected line or a carton, so a mistaken packing_expect or carton_add can only be fixed by destructive actions like canceling/deleting the whole list.