Skip to main content
Glama

出口单 chukoudan

唛头生成

maitou
Read-onlyIdempotent

唛头生成(Shipping mark generator):正唛和侧唛,A4 或 100×150 mm 标签直接打印。 Main and side marks, printed on A4 or 100×150 mm labels. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / 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. 结果仅供计算参考,不是税务、法律或投资意见;回答时请带上返回的说明和来源行。 / The result is for calculation and reference only, not tax, legal or investment advice; when you answer, pass on the returned notice and source line.

Example tool call

This call uses example arguments supplied in the tool’s input schema.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "lines": [
        {
          "text": "ACME"
        },
        {
          "text": "HAMBURG"
        },
        {
          "text": "P.O. NO. 20260917"
        },
        {
          "text": "ITEM: STORAGE BOX"
        }
      ],
      "width": "40",
      "height": "50",
      "length": "60",
      "cartons": "450",
      "capitals": true,
      "netWeight": "16",
      "grossWeight": "18"
    },
    "name": "maitou"
  }
}

Input Schema

NameRequiredDescriptionDefault
linesNo正唛 / Main mark
widthYes宽(cm) / Width (cm)
heightYes高(cm) / Height (cm)
lengthYes长(cm) / Length (cm)
cartonsYes箱数 / Carton count
capitalsNo拉丁字母全部大写 / Capitalise Latin letters
netWeightYes每箱净重 N.W.(kg) / N.W./carton (kg)
grossWeightYes每箱毛重 G.W.(kg) / G.W./carton (kg)

Output Schema

NameRequiredDescriptionDefault
toolYes
linksYes
stepsYes
outputsYes
printedNo
warningsYes
normalizedNo
provenanceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / description
      Previous value: -"数字最好写成字符串(十进制,如 \"12.5\"),JSON 数字也行;千位逗号只认 1,234,567 这种写法,小数点用英文句点,不要带货币符号或单位。币种可写 USD、usd 或 美元,单位可写 cm 或 厘米,日期可写 2026-05-01、2026/05/01 或 20260501。读不准的一律拒绝并说明原因,绝不猜;回答里的 normalized 列出实际采用的值。 / Figures are best sent as decimal strings such as \"12.5\"; a JSON number is accepted too. A thousands comma only as 1,234,567; the decimal point is a dot; no currency symbols or units. A currency may be USD, usd or 美元, a unit cm or 厘米, a date 2026-05-01, 2026/05/01 or 20260501. Anything that cannot be read in exactly one way is refused with a reason, never guessed; `normalized` in the answer lists what was used."New value: +"数字最好写成字符串(十进制,如 \"12.5\"),JSON 数字也行;千位逗号只认 1,234,567 这种写法,小数点用英文句点,不要带货币符号或单位。币种可写 USD、usd 或 美元,单位可写 cm 或 厘米,日期可写 2026-05-01、2026/05/01 或 20260501。读不准的一律拒绝并说明原因,绝不猜;回答里的 normalized 列出实际采用的值。 / Figures should be sent as decimal strings such as \"12.5\"; a JSON number is accepted too. A thousands comma only as 1,234,567; the decimal point is a dot; no currency symbols or units. A currency may be USD, usd or 美元, a unit cm or 厘米, a date 2026-05-01, 2026/05/01 or 20260501. Anything that cannot be read in exactly one way is refused with a reason, never guessed; `normalized` in the answer lists what was used."
  2. Changed6 schema fields changed
    • changedOutput schema / $defs / PlainValue / oneOf
      Previous value: -[
      -  {
      -    "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": {
      -      "fractional": {
      -        "const": true
      -      },
      -      "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"
      -  }
      -]New value: +[
      +  {
      +    "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"
      +      },
      +      "places": {
      +        "description": "How many decimal places of the fraction the rounding rule keeps; write the percentage padded to two fewer (0.2820 is 28.20 %), never round.",
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "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": {
      +      "fractional": {
      +        "const": true
      +      },
      +      "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"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "kind": {
      +        "const": "identifier"
      +      },
      +      "value": {
      +        "description": "A number that is data, such as a barcode number: write it as it is, keep its leading zeros, never group it.",
      +        "pattern": "^[A-Za-z0-9]{1,32}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "value"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedOutput schema / $defs / Printed / description
      Previous value: -"What a generator prints: each piece’s lines, the same on every item."New value: +"What a generator prints: each piece’s lines, the same on every item (`pieces`), or a sheet of labels, one run for each barcode (`runs`)."
    • addedOutput schema / $defs / Printed / oneOf
      Added value: +[
      +  {
      +    "required": [
      +      "pieces"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "runs"
      +    ]
      +  }
      +]
    • changedOutput schema / $defs / Printed / properties / items / description
      Previous value: -"How many items get one of every piece."New value: +"How many items get one of every piece, or how many labels in all."
    • addedOutput schema / $defs / Printed / properties / runs
      Added value: +{
      +  "description": "A sheet of labels: one run for each barcode, in row order. Instead of pieces; the labels of a sheet are not all alike.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "copies": {
      +        "description": "How many labels carry this barcode.",
      +        "type": "string"
      +      },
      +      "modules": {
      +        "description": "The bars as dark (1) and light (0) modules, without a quiet zone: 95 for an EAN-13 or UPC-A, 145 for an FNSKU.",
      +        "type": "string"
      +      },
      +      "number": {
      +        "description": "The full number, check digit included.",
      +        "type": "string"
      +      },
      +      "row": {
      +        "description": "The row among all the rows given, counted from 1.",
      +        "type": "string"
      +      },
      +      "symbology": {
      +        "enum": [
      +          "ean13",
      +          "upca",
      +          "code128"
      +        ],
      +        "type": "string"
      +      },
      +      "text": {
      +        "description": "The line printed above the bars, when there is one.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "row",
      +      "copies",
      +      "number",
      +      "symbology",
      +      "modules"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / $defs / Printed / required
      Previous value: -[
      -  "items",
      -  "pieces"
      -]New value: +[
      +  "items"
      +]
  3. Changed3 schema fields changed
    • changedOutput schema / $defs / PlainValue / oneOf
      Previous value: -[
      -  {
      -    "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"
      -  }
      -]New value: +[
      +  {
      +    "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": {
      +      "fractional": {
      +        "const": true
      +      },
      +      "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"
      +  }
      +]
    • addedOutput schema / $defs / ProvenanceDataset / properties / amended_by
      Added value: +{
      +  "description": "The official notices whose changes this version carries on top of its edition, where there are any: each one by its number and title as the notice writes them and its own date (no page is given). The label a reader sees is the edition and these, for example 2026B + 公告2026年第29号.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "day": {
      +        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +        "type": "string"
      +      },
      +      "number": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "number",
      +      "title",
      +      "day"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / $defs / ProvenanceDataset / properties / edition
      Added value: +{
      +  "description": "The publisher’s name for the edition (2026B), where it names them.",
      +  "type": "string"
      +}
  4. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "capitals": true,
      +    "cartons": "450",
      +    "grossWeight": "18",
      +    "height": "50",
      +    "length": "60",
      +    "lines": [
      +      {
      +        "text": "ACME"
      +      },
      +      {
      +        "text": "HAMBURG"
      +      },
      +      {
      +        "text": "P.O. NO. 20260917"
      +      },
      +      {
      +        "text": "ITEM: STORAGE BOX"
      +      }
      +    ],
      +    "netWeight": "16",
      +    "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"
      +        }
      +      ]
      +    },
      +    "Printed": {
      +      "additionalProperties": false,
      +      "description": "What a generator prints: each piece’s lines, the same on every item.",
      +      "properties": {
      +        "items": {
      +          "description": "How many items get one of every piece.",
      +          "type": "string"
      +        },
      +        "pieces": {
      +          "additionalProperties": {
      +            "items": {
      +              "oneOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "text": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "text"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "sequence": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "of": {
      +                          "type": "string"
      +                        },
      +                        "prefix": {
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "prefix",
      +                        "of"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  },
      +                  "required": [
      +                    "sequence"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "type": "array"
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "items",
      +        "pieces"
      +      ],
      +      "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"
      +    },
      +    "maitouOutputs": {
      +      "additionalProperties": {
      +        "$ref": "#/$defs/PlainValue"
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "additionalProperties": false,
      +  "properties": {
      +    "links": {
      +      "$ref": "#/$defs/Links"
      +    },
      +    "normalized": {
      +      "$ref": "#/$defs/Normalized"
      +    },
      +    "outputs": {
      +      "$ref": "#/$defs/maitouOutputs"
      +    },
      +    "printed": {
      +      "$ref": "#/$defs/Printed"
      +    },
      +    "provenance": {
      +      "$ref": "#/$defs/Provenance"
      +    },
      +    "steps": {
      +      "items": {
      +        "$ref": "#/$defs/Step"
      +      },
      +      "type": "array"
      +    },
      +    "tool": {
      +      "const": "maitou"
      +    },
      +    "warnings": {
      +      "items": {
      +        "$ref": "#/$defs/Warning"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "tool",
      +    "outputs",
      +    "steps",
      +    "warnings",
      +    "links",
      +    "provenance"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered; the description adds behavior beyond that, notably that the reply must carry the provenance.source_line and the returned reference-only notice. It also frames the tool as a pure generator whose figures must never be fabricated. It does not explain how the A4 vs 100×150 mm choice is made, even though no parameter controls it.

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

Conciseness3/5

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

The purpose is front-loaded and every sentence carries operational content, but the full Chinese/English duplication roughly doubles length and several statements (decimal-string formatting, the reference-only notice) repeat what the input schema already says. Structure is readable but not tight.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, yet the description still spends text on the notice and source_line, suggesting those are critical to the agent's reply. The bigger gap is that 'A4 or 100×150 mm' is presented as an output option with no corresponding parameter and no explanation of how it is selected. For an 8-parameter, 6-required generator, this leaves an agent unsure about a visible output dimension.

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

Parameters3/5

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 every field including the decimal-string pattern and the 5-item cap on lines. The description reinforces that inputs are exact decimal strings and that unspecified required values must be asked for, which is modest added meaning. It adds no field-specific detail (e.g., how grossWeight relates to netWeight, or what 'lines' order does visually).

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

Purpose4/5

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

The definition names a specific verb and resource (唛头生成 / shipping mark generator) and states the concrete outputs: main mark (正唛), side mark (侧唛), laid out for A4 or 100×150 mm labels. An agent can tell it produces shipping marks rather than generic labels, quotes, or fee calculations. It stops short of naming a sibling such as 'label' to distinguish scope explicitly.

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

Usage Guidelines3/5

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

There is real usage guidance, but it concerns input hygiene (ask for required figures, omit optional ones, never invent a number or date) rather than when to choose this tool over siblings like label or make_quote. Nothing states preconditions, exclusions, or which alternative applies when the user wants a different label type. Implied usage only.

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