Skip to main content
Glama

出口单 chukoudan

FOB/CIF/CFR 报价

baojia
Read-onlyIdempotent

FOB/CIF/CFR 报价(FOB/CIF/CFR quotes):由成本算三种术语报价和利润。 Quotes and profit on all three terms, from your cost. 读取数据 / Reads: central-parity@current, ports@current, refund-rates@current. 输入为精确的十进制字符串 / 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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo计算方向。可选值:forward = 正算:成本 → 报价;reverse = 反算:报价 → 利润 / Direction. options: forward = Quote from cost; reverse = Profit from a quote
portNo起运港(选填) / Port of loading (optional)
termNo你报的术语。可选值:FOB = FOB;CFR = CFR;CIF = CIF / Your quote is on. options: FOB = FOB; CFR = CFR; CIF = CIF
unitNo数量单位。可选值:pcs = 件;sets = 套;cartons = 箱;kg = 千克 / Unit. options: pcs = pcs; sets = sets; cartons = cartons; kg = kg
fxPerNo汇率单位。可选值:1 = 每 1 外币;100 = 每 100 外币 / Rate quoted per. options: 1 = per 1 unit; 100 = per 100 units
priceYes含税采购单价(CNY) / Purchase price per unit, VAT included (CNY)
fxRateYes汇率 / Exchange rate
marginNo目标利润率(%) / Target margin (%)
markupNo投保加成(%) / Insured at (% of CIF)
volumeNo总体积(m3) / Total volume (m3)
freightNo海运费 / Sea freight
taxRateYes征税率(%) / VAT rate on the purchase (%)
currencyNo报价币种 / Quote currency
domesticNo国内费用(CNY) / Domestic costs (CNY)
quantityYes数量 / Quantity
commissionNo佣金率(%) / Commission rate (%)
containersNo柜数 / Containers
refundRateYes退税率(%) / Refund rate (%)
marginBasisNo利润率按。可选值:quote = 报价;cost = 成本 / Margin on. options: quote = the quote; cost = cost
quotedPriceNo你的报价单价 / Your unit price
freightBasisNo运费计价方式。可选值:container = 每柜;cbm = 每立方米;total = 合计 / Freight is charged. options: container = per container; cbm = per m³; total = for the whole order
domesticBasisNo国内费用按。可选值:total = 合计;perUnit = 每件 / Domestic costs are given. options: total = for the whole order; perUnit = per unit
insuranceRateNo保险费率(%) / Insurance rate (%)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolYes
linksYes
stepsYes
outputsYes
warningsYes
normalizedNo
provenanceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "containers": "1",
      +    "currency": "USD",
      +    "freight": "1800",
      +    "freightBasis": "container",
      +    "fxRate": "7.0850",
      +    "margin": "10",
      +    "marginBasis": "quote",
      +    "mode": "forward",
      +    "price": "50",
      +    "quantity": "4500",
      +    "quotedPrice": "7.50",
      +    "refundRate": "13",
      +    "taxRate": "13",
      +    "term": "FOB"
      +  }
      +]
    • 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"
      +    },
      +    "baojiaOutputs": {
      +      "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": {
      +        "breakEvenCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "breakEvenCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "breakEvenFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "commissionPriceCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "commissionPriceCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "commissionPriceFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "commissionTotalCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "commissionTotalCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "commissionTotalFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "costTotal": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "marginAltCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "marginAltCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "marginAltFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "marginCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "marginCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "marginFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "priceCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "priceCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "priceFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "profitCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "profitCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "profitFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "refundTotal": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "totalCfr": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "totalCif": {
      +          "$ref": "#/$defs/PlainValue"
      +        },
      +        "totalFob": {
      +          "$ref": "#/$defs/PlainValue"
      +        }
      +      },
      +      "required": [
      +        "priceFob",
      +        "totalFob",
      +        "profitFob",
      +        "breakEvenFob",
      +        "refundTotal",
      +        "costTotal"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "additionalProperties": false,
      +  "properties": {
      +    "links": {
      +      "$ref": "#/$defs/Links"
      +    },
      +    "normalized": {
      +      "$ref": "#/$defs/Normalized"
      +    },
      +    "outputs": {
      +      "$ref": "#/$defs/baojiaOutputs"
      +    },
      +    "provenance": {
      +      "$ref": "#/$defs/Provenance"
      +    },
      +    "steps": {
      +      "items": {
      +        "$ref": "#/$defs/Step"
      +      },
      +      "type": "array"
      +    },
      +    "tool": {
      +      "const": "baojia"
      +    },
      +    "warnings": {
      +      "items": {
      +        "$ref": "#/$defs/Warning"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "tool",
      +    "outputs",
      +    "steps",
      +    "warnings",
      +    "links",
      +    "provenance"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds real value beyond them: it names the live datasets consumed (central-parity@current, ports@current, refund-rates@current), imposes a no-fabrication rule, and requires echoing provenance.source_line in the reply.

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 content is front-loaded (what it does, then data sources, then input/behaviour rules) and every sentence carries a distinct instruction. Length is inflated only by the bilingual duplication, which is justified for this audience.

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

Completeness4/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, and the description correctly focuses on inputs, live-data dependencies, and the provenance-citation requirement. The only shortfall is the absence of guidance on selecting this tool over its near-sibling make_quote.

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?

With 23 parameters at 100% schema description coverage, the schema carries the parameter burden including per-parameter enum meanings and formats. The description's format notes (decimal strings, no symbols/units, currency spelling variants) largely restate conventions already present in the schema description, so it adds only marginal meaning.

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?

States a specific verb+resource: computes FOB/CIF/CFR quotes and profit, with forward (cost→quote) and reverse (quote→profit) directions, which an agent can distinguish from a generic cost or conversion tool. It does not, however, differentiate itself from the sibling make_quote, leaving the agent to infer which of the two produces the final quote.

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?

It gives procedural guidance (ask for required inputs, omit optional ones, never fabricate figures) but no when-to-use/when-not-to-use framing and no routing to alternatives such as make_quote or fx-cost. Usage is implied by the FOB/CIF/CFR scope rather than stated.

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