Zovo Packing Slip Maker
Server Details
Make packing slips for your small business orders and print them in one go.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
The two tools have clearly different outputs (packing slips vs. an aggregated pick list) and each description explicitly redirects to the other for the alternative use case. The one blur point is that generate_packing_slips also emits a pick list PDF, which could make an agent hesitate over which tool produces a standalone pick list.
Both names follow the same generate_<noun> convention with matching snake_case style and parallel structure. No deviation.
Two tools is thin in absolute terms, but the domain is narrow (document generation from order exports) and each tool carries substantial, well-differentiated behavior rather than being a stub. A single tool with a mode flag would have been worse, so the split is justified.
The lifecycle is covered end to end for this purpose: order input (text/image/store export), conversion, PDF/CSV output, multi-page handling, and error flagging, plus both packing slip and pick list artefacts. Minor gaps only, such as no template/branding customization tool or a way to preview before generating.
Available Tools
2 toolsgenerate_packing_slipsGenerate packing slipsARead-onlyIdempotentInspect
Use this when the user wants packing slips ("packing slip template", "print packing slips", "etsy packing slip 4x6", "shopify packing slip", "packing slip generator") for their orders. First convert pasted text or an image of orders into order objects (order_number, ship_to, items with sku, name, qty, gift_message), or pass the attached Shopify, Etsy, WooCommerce or Amazon order export. Makes a PDF with one packing slip per order (order number, date, ship-to, items with SKU, quantity and a tick box, notes, gift message) on US Letter, A4 or a 4x6 label, prices hidden unless show_prices, plus a pick list PDF totalled by SKU and CSVs. Long orders continue on a second page; each line is printed and problems are listed. Does not buy postage, print shipping labels or barcodes, or change orders in the store.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Optional order export: CSV, TSV or Excel .xlsx from Shopify (Orders export), Etsy (Order Items), WooCommerce or Amazon (unshipped orders report), or any sheet with order, ship-to, SKU, item and quantity columns, e.g. orders_export.csv. | |
| sort | No | Order of the slips: none (as given, default), order_number or name. | |
| sheet | No | Excel sheet to read, e.g. Orders. | |
| orders | No | The orders, one slip each. Convert what the user pasted or showed in an image into order objects first, e.g. [{"order_number":"1001","ship_to":{"name":"Jane Smith","address1":"123 Main St","city":"Springfield","state":"IL","zip":"62704"},"items":[{"sku":"MUG-BL","name":"Blue mug","qty":2}],"gift_message":"Happy birthday"}]. Pasted export CSV text with its header row also works. | |
| columns | No | Column mapping when headings are unusual, field to heading, e.g. {"order":"Ref","qty":"Pcs","sku":"Code"}. Fields: order, date, name, address1, address2, city, state, zip, country, item, variant, sku, qty, price, notes, gift, method, location. | |
| message | No | Thank-you line printed at the bottom of each slip, e.g. Thank you for your order. | |
| page_size | No | letter (default, one order per page), a4, or 4x6 for a 4 x 6 in thermal label. | |
| uppercase | No | Ship-to address in capitals without punctuation (USPS style). Default false. | |
| store_name | No | Store name printed at the top of each slip, e.g. Maple & Clay Studio. | |
| show_prices | No | Print unit prices, line totals and an items subtotal, e.g. true. Default false (gift-friendly slips). | |
| from_address | No | Your return address printed next to the ship-to, e.g. "Maple & Clay\n42 Oak Lane\nPortland, OR 97205". | |
| home_country | No | Country you ship from; the country line prints only for orders abroad. Default: from_address's country, else United States. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | Yes | |
| units | Yes | |
| orders | Yes | |
| source | Yes | |
| assumed | Yes | |
| preview | Yes | |
| problems | Yes | |
| downloads | Yes | |
| file_name | Yes | |
| page_size | Yes | |
| pick_list | Yes | |
| sku_lines | Yes | |
| item_lines | Yes | |
| slip_pages | Yes | |
| show_prices | Yes | |
| from_address | Yes | |
| preview_count | No | |
| pick_list_count | No | |
| orders_continued | Yes | |
| links_expire_minutes | Yes | |
| orders_with_problems | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavior beyond them: prices hidden by default, three page sizes, long orders spilling to a second page, an accompanying pick list totalled by SKU plus CSVs, and that problems are listed per line. It does not describe how problems are surfaced (warnings vs. failure), which is the one gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger phrase and tightly packed with facts, with the negative scope last. The keyword list in parentheses ('packing slip template', 'etsy packing slip 4x6', etc.) is somewhat padded but does real disambiguation work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter, deeply nested tool with an output schema and rich annotations, the description covers input routes, output artifacts, defaults and exclusions. What remains thin is the relationship to the sibling generate_pick_list and the exact shape of per-line problem reporting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 12 parameters with examples. The description only lightly reinforces a few of them (show_prices, page sizes, supported export formats); it adds no format or constraint detail beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('generate packing slips'), enumerates the exact outputs (one-slip-per-order PDF, pick list PDF, CSVs) and lists the phrasings a user might use. The agent can tell this is packing-slip generation rather than the sibling generate_pick_list, even though the pick list PDF is a by-product here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when the user wants packing slips' plus synonyms gives an explicit trigger, and it explains the two input routes (convert pasted text/image into order objects first, or pass a Shopify/Etsy/WooCommerce/Amazon export). The closing sentence gives negative scope (no postage, labels, barcodes, or store changes). It never names the sibling generate_pick_list or when to prefer it, so it stops short of full when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pick_listGenerate pick listARead-onlyIdempotentInspect
Use this when the user wants a pick list or picking list ("pick list template", "warehouse pick list", "how many of each SKU do I need for these orders") from several orders, without packing slips. Convert pasted text or an image of orders into order objects, or pass the attached Shopify, Etsy, WooCommerce or Amazon order export. Adds up the quantity of each SKU (or item name and variant when there is no SKU) across all orders, sorted by bin location then SKU, with the orders that need each one and a tick box, as a PDF and CSV. Whole-number totals; lines with a missing or odd quantity are flagged. Does not check stock levels or change orders in the store; for packing slips use generate_packing_slips.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Optional order export: CSV, TSV or Excel .xlsx from Shopify (Orders export), Etsy (Order Items), WooCommerce or Amazon (unshipped orders report), or any sheet with order, ship-to, SKU, item and quantity columns, e.g. orders_export.csv. | |
| sheet | No | Excel sheet to read, e.g. Orders. | |
| orders | No | The orders, one slip each. Convert what the user pasted or showed in an image into order objects first, e.g. [{"order_number":"1001","ship_to":{"name":"Jane Smith","address1":"123 Main St","city":"Springfield","state":"IL","zip":"62704"},"items":[{"sku":"MUG-BL","name":"Blue mug","qty":2}],"gift_message":"Happy birthday"}]. Pasted export CSV text with its header row also works. | |
| columns | No | Column mapping when headings are unusual, field to heading, e.g. {"order":"Ref","qty":"Pcs","sku":"Code"}. Fields: order, date, name, address1, address2, city, state, zip, country, item, variant, sku, qty, price, notes, gift, method, location. | |
| page_size | No | letter (default) or a4. | |
| home_country | No | Country you ship from, e.g. US. Only affects how addresses are read. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | Yes | |
| units | Yes | |
| orders | Yes | |
| source | Yes | |
| assumed | Yes | |
| problems | Yes | |
| downloads | Yes | |
| file_name | Yes | |
| pick_list | Yes | |
| sku_lines | Yes | |
| item_lines | Yes | |
| pick_pages | Yes | |
| pick_list_count | No | |
| links_expire_minutes | Yes | |
| orders_with_problems | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description still adds substantial behaviour: aggregation rule (SKU, falling back to item name + variant), sort order, whole-number totals, flagging of missing or odd quantities, tick boxes per order, and dual PDF+CSV output. It also clarifies the operation is purely local reporting and does not touch store data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger and user phrasings before the mechanics, and every sentence carries substance (inputs, aggregation, output, exclusions). It is dense and long-sentence-heavy, but there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six optional parameters, deep nesting, and a complex multi-source input model, the description covers what an agent must know: which input forms are accepted, how aggregation and ordering work, what the outputs are, and what the tool will not do. The presence of an output schema means return-value detail is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond it by explaining accepted input routes for the `orders`/`file` parameters — pasted text, an image converted to order objects, or attached Shopify/Etsy/WooCommerce/Amazon exports. It does not explain `columns`, `page_size`, or `home_country`, but those are fully documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artefact ('generate a pick list') plus the exact transformation performed: sums quantity of each SKU across orders, sorted by bin location then SKU, output as PDF and CSV. It explicitly separates itself from the only sibling by naming 'generate_packing_slips'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with a concrete trigger ('Use this when the user wants a pick list...') and supplies real user phrasings, then names the excluded case ('without packing slips') and routes it to the alternative ('for packing slips use generate_packing_slips'). It also states a negative boundary: it does not check stock levels or change store orders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
generate_packing_slips - First observed
generate_pick_list
Related MCP Connectors
Turn your product list into print-ready label PDFs with barcodes, from your AI assistant.
Export invoices, packing list, SI, PO from order data; HS codes; port codes; CBM; Incoterms prices.
Packing slips: cartons, contents, weights, chargeable weight and what is still to pack.
Create, send and track invoices for freelancers and small businesses.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables creating and managing packing slips for shipments, tracking cartons, contents, weights, chargeable weight, and shortfalls, with reports and packing slip generation.1453 npmMIT
- AlicenseAqualityDmaintenanceManage shipping workflows by creating labels, tracking packages, and scheduling carrier pickups. Compare live rates from major carriers like FedEx and UPS to optimize costs for every shipment. Organize logistical operations with a centralized address book and detailed shipping analytics.189 npm1MIT

@sheetrender/mcpofficial
AlicenseAqualityBmaintenanceRenders PDFs from HTML templates or saved templates and spreadsheet data, with batch job support and document retrieval.11154 npm1MIT- AlicenseAqualityDmaintenanceCarrier-agnostic shipping labels as a self-hostable MCP server. Build one shipment request, get a tracking number and a print-ready label back for DHL, DPD, UPS, FedEx, GLS, Sendcloud, and Shipcloud.32MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.