Skip to main content
Glama

出口单 chukoudan

装柜计算器

container-load
Read-onlyIdempotent

装柜计算器(Container loading calculator):每柜装多少箱、要几个柜、怎么摆。 Cartons per container, containers needed, and how to stack them. 读取数据 / Reads: containers@current. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 每箱毛重 grossWeight 可以不填:用户没给重量就不要填,绝不要编一个。不填时只按尺寸算能装多少箱、要几个柜,没有核对载重上限;回答里第一条 warning 的 message 说明了这一点,回复用户时必须把这句话原样带上。 / grossWeight may be left out: when the user gave no weight, do not fill it and never invent one. The answer is then a count by size alone with the payload limit not checked; the first warning’s message says so, and your reply must pass that sentence on. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fillNo装满为止(不填箱数) / Fill the container (no carton count)
widthYes宽 / Width
heightYes高 / Height
lengthYes长 / Length
uprightNo必须正放(此面朝上) / This side up only
quantityNo箱数 / Cartons
maxLayersNo堆叠层数上限 / Max layers
lengthUnitNo尺寸单位。可选值:cm = cm;mm = mm;in = in / Size unit. options: cm = cm; mm = mm; in = in
weightUnitNo重量单位。可选值:kg = kg;lb = lb / Weight unit. options: kg = kg; lb = lb
grossWeightNo每箱毛重 / Gross weight per carton
containerTypeNo柜型。可选值:auto = 自动比较;20gp = 20GP;40gp = 40GP;40hq = 40HQ;45hq = 45HQ / Container. options: auto = Compare all; 20gp = 20GP; 40gp = 40GP; 40hq = 40HQ; 45hq = 45HQ

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolYes
linksYes
stepsYes
outputsYes
warningsYes
normalizedNo
provenanceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed44 schema fields changed
    • addedOutput schema / $defs / container_loadOutputs / properties / fullVolumeUse20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullVolumeUse40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullVolumeUse40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullVolumeUse45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeight20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeight40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeight40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeight45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeightUse20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeightUse40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeightUse40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / fullWeightUse45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGap20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGap40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGap40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGap45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGapIn20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGapIn40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGapIn40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastDoorGapIn45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRowBoxes20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRowBoxes40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRowBoxes40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRowBoxes45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRows20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRows40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRows40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastRows45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastVolumeUse20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastVolumeUse40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastVolumeUse40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastVolumeUse45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeight20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeight40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeight40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeight45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeightUse20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeightUse40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeightUse40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / lastWeightUse45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / usedRows20GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / usedRows40GP
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / usedRows40HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
    • addedOutput schema / $defs / container_loadOutputs / properties / usedRows45HQ
      Added value: +{
      +  "$ref": "#/$defs/PlainValue"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "containerType": "auto",
      +    "fill": false,
      +    "grossWeight": "18",
      +    "height": "50",
      +    "length": "60",
      +    "quantity": "450",
      +    "upright": false,
      +    "width": "40"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "Links": {
      +      "additionalProperties": false,
      +      "description": "Addresses that go with the answer. `page`: the tool’s page on the site with the same inputs in its address, in the language asked (Chinese for a language the site does not publish yet), so a person can open the page that shows these numbers.",
      +      "properties": {
      +        "page": {
      +          "description": "The tool’s page holding these inputs.",
      +          "format": "uri",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "page"
      +      ],
      +      "type": "object"
      +    },
      +    "Normalized": {
      +      "description": "What the API changed in the inputs before core saw them, so the caller sees what was understood: a JSON number as text, a thousands comma, full-width digits, a currency or unit name or a date written another way. Absent when nothing was changed.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "given": {
      +            "description": "What was sent, as text.",
      +            "type": "string"
      +          },
      +          "path": {
      +            "description": "The input, like `cartons.0.length`.",
      +            "type": "string"
      +          },
      +          "used": {
      +            "description": "What core was given.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "path",
      +          "given",
      +          "used"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "PlainValue": {
      +      "description": "A figure, tagged so a reader knows how to write it: amounts and quantities are exact decimal strings, never floats.",
      +      "oneOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "amount": {
      +              "type": "string"
      +            },
      +            "currency": {
      +              "description": "An ISO 4217 code.",
      +              "type": "string"
      +            },
      +            "kind": {
      +              "const": "money"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "amount",
      +            "currency"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "kind": {
      +              "const": "quantity"
      +            },
      +            "places": {
      +              "description": "How many decimal places the rounding rule keeps; pad to it, never round.",
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "kind": {
      +              "const": "ratio"
      +            },
      +            "value": {
      +              "description": "A fraction: 0.13 is 13 %.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "value"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "base": {
      +              "type": "string"
      +            },
      +            "kind": {
      +              "const": "rate"
      +            },
      +            "per": {
      +              "description": "`per` units of `base` cost `value` units of `quote`.",
      +              "type": "string"
      +            },
      +            "quote": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "value",
      +            "base",
      +            "quote",
      +            "per"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "grouping": {
      +              "const": false
      +            },
      +            "kind": {
      +              "const": "count"
      +            },
      +            "value": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "value"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "kind": {
      +              "const": "code"
      +            },
      +            "value": {
      +              "description": "A token from a fixed list the tool exports; the words for it are the copy key `<tool>.code.<value>`.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "value"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "kind": {
      +              "const": "date"
      +            },
      +            "value": {
      +              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "value"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "Provenance": {
      +      "additionalProperties": false,
      +      "description": "Where the figures in an answer come from. In every answer, errors included.",
      +      "properties": {
      +        "api": {
      +          "const": "v1"
      +        },
      +        "datasets": {
      +          "items": {
      +            "$ref": "#/$defs/ProvenanceDataset"
      +          },
      +          "type": "array"
      +        },
      +        "generated_at": {
      +          "description": "When the answer was made.",
      +          "format": "date-time",
      +          "type": "string"
      +        },
      +        "language": {
      +          "description": "The language of the source lines.",
      +          "enum": [
      +            "zh-CN",
      +            "en",
      +            "ja",
      +            "ko"
      +          ]
      +        },
      +        "license": {
      +          "additionalProperties": false,
      +          "description": "The license as copy keys: which text applies. `status` was `draft` until the text was approved (2026-10-12) and is `approved` now.",
      +          "properties": {
      +            "ours": {
      +              "type": "string"
      +            },
      +            "status": {
      +              "enum": [
      +                "draft",
      +                "approved"
      +              ]
      +            },
      +            "underlying": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "status",
      +            "ours",
      +            "underlying"
      +          ],
      +          "type": "object"
      +        },
      +        "notice": {
      +          "description": "本站非官方渠道的说明:引用本站数据时请和来源行一起转述。 / The site’s own line that it is not an official channel: pass it on with the source line when you quote us.",
      +          "type": "string"
      +        },
      +        "site": {
      +          "description": "The site the data is published by.",
      +          "type": "string"
      +        },
      +        "source_line": {
      +          "description": "来源行:回复用户时请原样引用它,让读者知道数据出自哪里、有多新。 / The credit line to quote as it is when you answer: who the figures come from and how fresh they are (the newest publisher’s day among the datasets used, or the day the answer was made).",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "api",
      +        "site",
      +        "generated_at",
      +        "language",
      +        "source_line",
      +        "notice",
      +        "datasets",
      +        "license"
      +      ],
      +      "type": "object"
      +    },
      +    "ProvenanceDataset": {
      +      "additionalProperties": false,
      +      "description": "A dataset version an answer drew on. An origin the register does not let the site show is named nowhere.",
      +      "properties": {
      +        "id": {
      +          "description": "The dataset.",
      +          "type": "string"
      +        },
      +        "origin": {
      +          "description": "The origin’s id in the register; null when the site may not show it.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "published_at": {
      +          "description": "The publisher’s own date (and time, with its offset, when it gives one).",
      +          "type": "string"
      +        },
      +        "source": {
      +          "description": "The publisher’s own source line, in the answer’s language; null when there is none to show.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "source_url": {
      +          "description": "The publisher’s page, only where the register lets the site link to it.",
      +          "type": "string"
      +        },
      +        "version": {
      +          "description": "Its version, named after the publisher’s date.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "version",
      +        "published_at",
      +        "origin",
      +        "source"
      +      ],
      +      "type": "object"
      +    },
      +    "Step": {
      +      "additionalProperties": false,
      +      "description": "One line of the worked example: `id` is the copy key of its sentence, `values` fill it in.",
      +      "properties": {
      +        "id": {
      +          "type": "string"
      +        },
      +        "message": {
      +          "description": "这一步的一句话说明,数值已代入,用请求的语言。 / The step as one sentence in the language asked, its figures filled in. Absent when a sentence cannot be made whole.",
      +          "type": "string"
      +        },
      +        "values": {
      +          "additionalProperties": {
      +            "$ref": "#/$defs/PlainValue"
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "values"
      +      ],
      +      "type": "object"
      +    },
      +    "Warning": {
      +      "additionalProperties": false,
      +      "description": "Something a reader should know about a result; `code` is a copy key.",
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "level": {
      +          "description": "Absent means a caution.",
      +          "enum": [
      +            "note",
      +            "hint"
      +          ]
      +        },
      +        "message": {
      +          "description": "这条提醒的一句话说明,数值已代入,用请求的语言:回复时请用它,不要自己编数字。 / The warning as one sentence in the language asked, its figures filled in: use it, do not make up figures. Absent when a sentence cannot be made whole.",
      +          "type": "string"
      +        },
      +        "next": {
      +          "description": "For a hint: the slug of the tool it points to.",
      +          "type": "string"
      +        },
      +        "values": {
      +          "additionalProperties": {
      +            "$ref": "#/$defs/PlainValue"
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "values"
      +      ],
      +      "type": "object"
      +    },
      +    "container_loadOutputs": {
      +      "additionalProperties": {
      +        "$ref": "#/$defs/PlainValue"
      +      },
      +      "description": "Each figure core returns, by id, as a tagged value. The ids listed are the ones the tool’s manifest names; a tool may return more (a figure that only its worked steps use), in the same form.",
      +      "properties": {
      +        "across20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "across40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "across40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "across45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "along20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "along40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "along40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "along45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "best": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "columns20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "columns40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "columns40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "columns45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "containers20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "containers40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "containers40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "containers45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "lastContainer20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "lastContainer40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "lastContainer40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "lastContainer45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "layers20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "layers40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "layers40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "layers45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "limit20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "limit40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "limit40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "limit45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "perContainer20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "perContainer40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "perContainer40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "perContainer45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rank20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rank40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rank40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rank45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rows20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rows40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rows40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "rows45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeight20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeight40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeight40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeight45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeightIn20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeightIn40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeightIn40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareHeightIn45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLength20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLength40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLength40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLength45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLengthIn20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLengthIn40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLengthIn40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareLengthIn45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidth20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidth40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidth40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidth45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidthIn20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidthIn40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidthIn40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "spareWidthIn45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "up20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "up40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "up40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "up45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "volumeUse20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "volumeUse40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "volumeUse40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "volumeUse45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "weightUse20GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "weightUse40GP": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "weightUse40HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "weightUse45HQ": {
      +          "$ref": "#/$defs/PlainValue"
      +        }
      +      },
      +      "required": [],
      +      "type": "object"
      +    }
      +  },
      +  "additionalProperties": false,
      +  "properties": {
      +    "links": {
      +      "$ref": "#/$defs/Links"
      +    },
      +    "normalized": {
      +      "$ref": "#/$defs/Normalized"
      +    },
      +    "outputs": {
      +      "$ref": "#/$defs/container_loadOutputs"
      +    },
      +    "provenance": {
      +      "$ref": "#/$defs/Provenance"
      +    },
      +    "steps": {
      +      "items": {
      +        "$ref": "#/$defs/Step"
      +      },
      +      "type": "array"
      +    },
      +    "tool": {
      +      "const": "container-load"
      +    },
      +    "warnings": {
      +      "items": {
      +        "$ref": "#/$defs/Warning"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "tool",
      +    "outputs",
      +    "steps",
      +    "warnings",
      +    "links",
      +    "provenance"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses non-obvious behavior: omitting grossWeight drops payload-limit checking entirely, the first warning message states this and must be relayed verbatim to the user, and the reply must quote provenance.source_line. These are real operational consequences an agent could not infer from the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and each rule is actionable, but the bilingual duplication roughly doubles the length, and the 'never invent a figure' instruction is stated twice (once for grossWeight, once generally). Content earns its place, though a bit of redundancy could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, an output schema, and rich annotations, the description covers what remains: the data source, the optional-weight branch and its warning contract, input-format refusal behavior, and which output fields (normalized, provenance.source_line) matter in the reply. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, so the baseline is 3. The description adds meaning the schema does not: grossWeight is genuinely optional and its absence silently changes the calculation semantics (size-only count, no weight check), plus the exact-decimal-string input rule with refusal-and-normalize behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific computation and its three outputs: cartons per container, number of containers, and stacking arrangement. An agent can immediately distinguish this from siblings like cbm (volume) or unit-convert, since the tool answers a loading-plan question rather than a measurement conversion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational when/when-not guidance: grossWeight may be omitted when the user gave no weight, required figures must be asked for, optional ones left out, and reads come from containers@current. It does not name a sibling alternative or a scenario where a different tool should be preferred, so it falls short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources