Dimensional weight, parcel fit, landed cost and freight class. 4 of 6 tools free.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Work out whether a parcel bills on its size or its weight. FREE. Carriers charge the greater of actual weight and dimensional weight, so a light bulky box costs more than the scale suggests. Typical input {"length": 18, "width": 12, "height": 10, "actual_weight": 6} returns {"cubic": 2160.0, "dim_weight": 15.54, "actual_weight": 6.0, "billable_weight": 15.54, "billed_on": "dimensional", "overage": 9.54, "divisor_used": 139.0, "note": "..."}. Use when deciding whether a smaller box is worth the packing effort, or why an invoice exceeded the scale weight. Not for choosing a box from a list of candidates — that is parcel_fit. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "custom_divisor must be greater than 0 when divisor is 'custom'"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Second side, same unit as length. Must be greater than 0.
Third side, same unit as length. Must be greater than 0.
Longest side of the packed parcel, in inches (or centimetres when using a metric divisor). Must be greater than 0.
Scale weight in pounds (or kilograms with a metric divisor). Must be greater than 0.
Which published divisor to apply. "ups_daily" is 139 and "ups_retail" is 166 cubic inches per pound, as UPS states them; "usps" is 166; the metric options are cubic centimetres per kilogram. Use "custom" to supply a contracted divisor.
Your contracted divisor, used only when divisor is "custom". Must be greater than 0 in that case.
Work out whether a parcel bills on its size or its weight. FREE. Carriers charge the greater of actual weight and dimensional weight, so a light bulky box costs more than the scale suggests. Typical input {"length": 18, "width": 12, "height": 10, "actual_weight": 6} returns {"cubic": 2160.0, "dim_weight": 15.54, "actual_weight": 6.0, "billable_weight": 15.54, "billed_on": "dimensional", "overage": 9.54, "divisor_used": 139.0, "note": "..."}. Use when deciding whether a smaller box is worth the packing effort, or why an invoice exceeded the scale weight. Not for choosing a box from a list of candidates — that is parcel_fit. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "custom_divisor must be greater than 0 when divisor is 'custom'"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
| Argument | Type | Description |
|---|---|---|
| width* | number | Second side, same unit as length. Must be greater than 0. |
| height* | number | Third side, same unit as length. Must be greater than 0. |
| length* | number | Longest side of the packed parcel, in inches (or centimetres when using a metric divisor). Must be greater than 0. |
| divisor | string | Which published divisor to apply. "ups_daily" is 139 and "ups_retail" is 166 cubic inches per pound, as UPS states them; "usps" is 166; the metric options are cubic centimetres per kilogram. Use "custom" to supply a contracted divisor. |
| actual_weight* | number | Scale weight in pounds (or kilograms with a metric divisor). Must be greater than 0. |
| custom_divisor | number | Your contracted divisor, used only when divisor is "custom". Must be greater than 0 in that case. |
{
"type": "object",
"required": [
"length",
"width",
"height",
"actual_weight"
],
"properties": {
"width": {
"type": "number",
"description": "Second side, same unit as length. Must be greater than 0.",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"description": "Third side, same unit as length. Must be greater than 0.",
"exclusiveMinimum": 0
},
"length": {
"type": "number",
"description": "Longest side of the packed parcel, in inches (or centimetres\nwhen using a metric divisor). Must be greater than 0.",
"exclusiveMinimum": 0
},
"divisor": {
"enum": [
"ups_daily",
"ups_retail",
"fedex",
"usps",
"metric_5000",
"metric_6000",
"custom"
],
"type": "string",
"default": "ups_daily",
"description": "Which published divisor to apply. \"ups_daily\" is 139 and\n\"ups_retail\" is 166 cubic inches per pound, as UPS states them;\n\"usps\" is 166; the metric options are cubic centimetres per\nkilogram. Use \"custom\" to supply a contracted divisor."
},
"actual_weight": {
"type": "number",
"description": "Scale weight in pounds (or kilograms with a metric\ndivisor). Must be greater than 0.",
"exclusiveMinimum": 0
},
"custom_divisor": {
"type": "number",
"default": 0,
"description": "Your contracted divisor, used only when divisor is\n\"custom\". Must be greater than 0 in that case."
}
},
"additionalProperties": false
}Find the order value at which free shipping stops costing you money. PREMIUM (license). Break-even is where the gross margin on the order covers the shipping you absorb. Typical input {"gross_margin_pct": 45, "ship_cost": 7.5, "current_aov": 38, "target_uplift_pct": 15} returns {"break_even": 16.67, "suggested_threshold": 43.7, "above_current_aov_by": 5.7, "rationale": "..."}. Use when setting or defending a free-shipping bar. Not for what shipping should cost when it is not free — that is rate_card. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
| Argument | Type | Description |
|---|---|---|
| ship_cost* | number | What one shipment actually costs you to send. |
| current_aov* | number | Your current average order value. |
| gross_margin_pct* | number | Gross margin on a typical order, e.g. 45 for 45%. Must be above 0 and at most 100. |
| target_uplift_pct | number | How far above current AOV you want the threshold set, to pull baskets up. Default 0, which returns break-even. |
{
"type": "object",
"required": [
"gross_margin_pct",
"ship_cost",
"current_aov"
],
"properties": {
"ship_cost": {
"type": "number",
"description": "What one shipment actually costs you to send.",
"exclusiveMinimum": 0
},
"current_aov": {
"type": "number",
"description": "Your current average order value.",
"exclusiveMinimum": 0
},
"gross_margin_pct": {
"type": "number",
"maximum": 100,
"description": "Gross margin on a typical order, e.g. 45 for 45%.\nMust be above 0 and at most 100.",
"exclusiveMinimum": 0
},
"target_uplift_pct": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "How far above current AOV you want the threshold\nset, to pull baskets up. Default 0, which returns break-even."
}
},
"additionalProperties": false
}Derive a US LTL freight class from density. FREE. Density in pounds per cubic foot maps to a class on the published NMFC density scale. Typical input {"length": 48, "width": 40, "height": 36, "weight": 400} returns {"cubic_feet": 40.0, "density_pcf": 10.0, "density_class": "100", "caveat": "..."}. Use for a first estimate before a carrier quote. Not as a final classification: NMFC also weighs stowability, handling and liability, so a carrier can and does reclassify. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "dimensions produce zero volume"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
| Argument | Type | Description |
|---|---|---|
| units | string | "in_lb" for inches and pounds, or "cm_kg" for centimetres and kilograms. Default "in_lb". |
| width* | number | Second side. Must be greater than 0. |
| height* | number | Third side, including the pallet. Must be greater than 0. |
| length* | number | Longest side of the palletised freight. Must be greater than 0. |
| weight* | number | Gross weight including the pallet. Must be greater than 0. |
Total what a unit really costs once freight, duty and fees are in. FREE. Duty is applied to goods value, tax to goods plus duty plus freight — the common import treatment — and the order is spelled out in the response so you can check it against your own broker's method. Typical input {"unit_cost": 8.5, "quantity": 200, "freight_total": 640, "duty_pct": 6.5, "tax_pct": 0} returns {"goods": 1700.0, "duty": 110.5, "freight": 640.0, "tax": 0.0, "total_landed": 2450.5, "landed_unit_cost": 12.25, ...}. Use before setting a price on imported stock. Not for the margin that price leaves you — that is the dropship server's margin_check. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
| Argument | Type | Description |
|---|---|---|
| tax_pct | number | Import VAT or GST as a percentage of goods plus duty plus freight, e.g. 20. Default 0. |
| duty_pct | number | Import duty as a percentage of goods value, e.g. 6.5. Default 0. |
| quantity | integer | Units in the shipment. Must be at least 1. Default 1. |
| unit_cost* | number | Ex-works cost of one unit in your currency. Must be greater than 0. |
| other_fees | number | Brokerage, port and handling charges for the shipment. Default 0. |
Pick the smallest box an item actually fits in, allowing for padding. FREE. Tries every rotation of the item against every box, so an item that only fits diagonally-oriented is still found. Typical input {"item_length": 10, "item_width": 6, "item_height": 4, "box_options": [[12, 9, 4], [14, 10, 6]]} returns {"fits": [{"box": [14, 10, 6], "cubic": 840.0, "slack": [2, 2, 0]}], "best": [14, 10, 6], "rejected": [...]}. Use when choosing packaging from stock. Not for what the carrier will bill once a box is chosen — that is dim_weight. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "box_options must contain at least one [l, w, h] box"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
| Argument | Type | Description |
|---|---|---|
| padding | number | Cushioning allowance added to every item side before the comparison, in the same unit. Default 1.0; use 0 for a bare fit. |
| item_width* | number | Item's second side, same unit. Must be greater than 0. |
| box_options* | array | Candidate inner box dimensions, each a list of exactly three positive numbers, e.g. [[12, 9, 4], [14, 10, 6]]. |
| item_height* | number | Item's third side, same unit. Must be greater than 0. |
| item_length* |
Turn a cost model into a customer-facing weight-banded price table. PREMIUM (license). Prices each band at its upper bound so you never under-charge inside a band, then rounds up to a tidy increment. Typical input {"base_cost": 4.2, "cost_per_lb": 0.65, "bands_lb": [1, 2, 5, 10], "margin_pct": 25} returns {"bands": [{"up_to_lb": 1, "cost": 4.85, "price": 6.5}, ...], "over_top_band": "quote individually"}. Use when publishing shipping prices customers pay. Not for the cut-off at which shipping becomes free — that is free_shipping_threshold. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "bands_lb must contain at least one upper bound"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
| Argument | Type | Description |
|---|---|---|
| bands_lb* | array | Upper weight bound of each band in ascending order, e.g. [1, 2, 5, 10]. At least one band, each greater than 0. |
| round_to | number | Increment to round each published price up to, e.g. 0.5 or 1. Default 0.5. |
| base_cost* | number | Fixed cost per shipment before weight, e.g. pick, pack and label. Must be greater than 0. |
| margin_pct | number | Margin added on top of cost, e.g. 25 for 25%. Default 0. |
| cost_per_lb* | number |
{
"type": "object",
"required": [
"length",
"width",
"height",
"weight"
],
"properties": {
"units": {
"enum": [
"in_lb",
"cm_kg"
],
"type": "string",
"default": "in_lb",
"description": "\"in_lb\" for inches and pounds, or \"cm_kg\" for centimetres and\nkilograms. Default \"in_lb\"."
},
"width": {
"type": "number",
"description": "Second side. Must be greater than 0.",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"description": "Third side, including the pallet. Must be greater than 0.",
"exclusiveMinimum": 0
},
"length": {
"type": "number",
"description": "Longest side of the palletised freight. Must be greater than 0.",
"exclusiveMinimum": 0
},
"weight": {
"type": "number",
"description": "Gross weight including the pallet. Must be greater than 0.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}| freight_total |
| number |
| Total freight and insurance for the whole shipment, not per unit. Default 0. |
{
"type": "object",
"required": [
"unit_cost"
],
"properties": {
"tax_pct": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Import VAT or GST as a percentage of goods plus duty plus\nfreight, e.g. 20. Default 0."
},
"duty_pct": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Import duty as a percentage of goods value, e.g. 6.5.\nDefault 0."
},
"quantity": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Units in the shipment. Must be at least 1. Default 1."
},
"unit_cost": {
"type": "number",
"description": "Ex-works cost of one unit in your currency. Must be\ngreater than 0.",
"exclusiveMinimum": 0
},
"other_fees": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Brokerage, port and handling charges for the shipment.\nDefault 0."
},
"freight_total": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Total freight and insurance for the whole shipment,\nnot per unit. Default 0."
}
},
"additionalProperties": false
}| number |
| Item's longest side, in inches. Must be greater than 0. |
{
"type": "object",
"required": [
"item_length",
"item_width",
"item_height",
"box_options"
],
"properties": {
"padding": {
"type": "number",
"default": 1,
"minimum": 0,
"description": "Cushioning allowance added to every item side before the\ncomparison, in the same unit. Default 1.0; use 0 for a bare fit."
},
"item_width": {
"type": "number",
"description": "Item's second side, same unit. Must be greater than 0.",
"exclusiveMinimum": 0
},
"box_options": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"description": "Candidate inner box dimensions, each a list of exactly\nthree positive numbers, e.g. [[12, 9, 4], [14, 10, 6]]."
},
"item_height": {
"type": "number",
"description": "Item's third side, same unit. Must be greater than 0.",
"exclusiveMinimum": 0
},
"item_length": {
"type": "number",
"description": "Item's longest side, in inches. Must be greater than 0.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}| Marginal cost per pound. Use 0 for a flat rate card. |
{
"type": "object",
"required": [
"base_cost",
"cost_per_lb",
"bands_lb"
],
"properties": {
"bands_lb": {
"type": "array",
"items": {
"type": "number"
},
"description": "Upper weight bound of each band in ascending order, e.g.\n[1, 2, 5, 10]. At least one band, each greater than 0."
},
"round_to": {
"type": "number",
"default": 0.5,
"description": "Increment to round each published price up to, e.g. 0.5 or\n1. Default 0.5.",
"exclusiveMinimum": 0
},
"base_cost": {
"type": "number",
"description": "Fixed cost per shipment before weight, e.g. pick, pack and\nlabel. Must be greater than 0.",
"exclusiveMinimum": 0
},
"margin_pct": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Margin added on top of cost, e.g. 25 for 25%. Default 0."
},
"cost_per_lb": {
"type": "number",
"minimum": 0,
"description": "Marginal cost per pound. Use 0 for a flat rate card."
}
},
"additionalProperties": false
}