Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Packing slips: cartons, contents, weights, chargeable weight and what is still to pack.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MCP_LICENSE_KEY, AuthorizationValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
claude mcp add --transport http packing-list https://mcp.zovo.one/mcp/packing-slip --header 'Authorization: your-value'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"packing-list": {
"url": "https://mcp.zovo.one/mcp/packing-slip",
"headers": {
"Authorization": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"packing-list": {
"type": "http",
"url": "https://mcp.zovo.one/mcp/packing-slip",
"headers": {
"Authorization": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
Authorization secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account theluckystrike, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: MCP_LICENSE_KEY, Authorization
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.22.8) reached the registry 25 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, NexusWindows
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
In the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.theluckystrike%2Fpacking-list/versions/latest) (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.
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:
null, never as a total that quietly skipped three boxes.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.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "packing-list": { "command": "npx", "args": ["-y", "@theluckystrike/mcp-packing-list"] } } }
claude mcp add packing-list -- npx -y @theluckystrike/mcp-packing-list
~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.
| Tool | What it does |
|---|---|
packing_list_create | Open a packing list against an order: the reference, the consignee, where it ships to, the date |
packing_expect | Declare an ordered line, so the shortfall is real. Nothing is read from the quotes, work-order or invoice store |
carton_add | Add a carton: a label, the empty weight in whole grams, and all three outside dimensions or none |
pack_item | Put a quantity of one item into a named carton, with the per-unit weight in whole grams |
unpack_item | Take a packed line back out by its L01-style id. Deleted, not zeroed |
packing_list_show | The whole list: cartons with contents and weights, the ordered lines, the shortfall, and whether it is ready to ship |
packing_list_list | Packing lists newest first, filtered by status, order reference or consignee |
carton_report | Tare, net, gross, volume, volumetric and chargeable weight, per carton and for the shipment |
packing_shortfall | Ordered against packed: what is short, what is over-packed, what is not on the order |
packing_list_status | draft to packed to shipped, or cancelled. Shipping records the carrier and tracking, and freezes the list |
packing_slip | The slip as text on every tier. Pro also writes it to out_path as a .txt file |
packing_list_delete | Delete a list for good. A shipped list is refused: it is the record of what left the building |
license_status | Which tier this install is on and where the key came from |
license_activate | Store 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 | Pro | |
|---|---|---|
| Open packing lists at once | 3 | unlimited |
| Cartons, packed lines, ordered lines | unlimited | unlimited |
carton_report, packing_shortfall, packing_list_show | yes | yes |
| The packing slip as text | yes | yes |
Writing the slip to a file with out_path | no | yes |
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
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: support@zovo.one
Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install: