Skip to main content
Glama

TradeStats - customs trade statistics

compare_countries

One product (HS2, HS4 or HS6 code, e.g. "850760" lithium-ion batteries, "8708" auto parts, "72" iron and steel, "030617" frozen shrimp) side by side across several reporting countries (default: all of JP, US, GB, EU) for one flow. Every country is measured over the same 12 months, ending at common_month (the latest month all compared countries have published, normally the earliest of their latest months). Per country: the 12-month value in US dollars on a comparable basis (imports CIF, exports FOB; the US export value is FAS and the notes say so), the previous 12 months and year-over-year change, kilograms, the unit price in US dollars per kg (only where weights exist; kg_coverage says what share of the value has a weight) and the 3 largest partners with their shares. A country without the code is status "no_code" and one with a missing month status "no_data"; they are never shown as 0. Partner definitions differ between countries (origin, consignment, destination); the notes explain it. Use it for "which country trades more of X" or "how do unit prices compare"; national codes (JP 9 digits, US 10, GB 8) are rejected. Use get_mirror_trade instead to put one country's exports to another next to that country's imports from it, and get_item_summary for the full detail of one country. Customs trade statistics of several reporting countries (Japan JP, United States US, United Kingdom GB, European Union (27 member states) EU) from their official customs data, monthly, by HS product code and partner country. value fields are in the reporter's currency (currency: JPY, USD, GBP or EUR) and _usd fields in US dollars; ratios and shares are fractions precomputed from the full dataset; every answer carries reporter, currency, data_through (latest published month), the reporter's attribution, and notes. Maximum 200 rows per answer. Numbers in answers are rounded once, at the end: amounts (value, _usd, v12 ...) to 2 decimals, quantity and kg to 3, unit prices (unit_price) to 4 significant digits below 100 and 2 decimals from 100 up (never rounded to 0), and ratios, shares and growth rates (yoy, mom*, share*, hhi*, chg3y) to 6; whole numbers and null are left as they are. A null quantity, kg or unit price comes with a *_unavailable_reason (mixed_units, weight_only, no_quantity_in_source, no_weight_in_source, source_gap, withheld; get_catalog lists them in null_reasons), and a missing seasonality with seasonality_unavailable_reason. The national level (JP 9-digit, US 10-digit, GB 8-digit codes) differs between reporters and between import and export; EU has no national level (HS6 only); HS6, HS4 and HS2 are shared. Import and export are separate datasets, so reporter and flow are always required for product figures. Rankings (limit) are limited to the top 20 without an API key (more is refused with out_of_scope) and to 100 with a free API key. Start with get_catalog (coverage, your access limits, which tool to use) or, when you already know the code, get_item_summary for a one-call overview of a product.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "code": "<code>",
      "flow": "<flow>"
    },
    "name": "compare_countries"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeYesHS product code with 2, 4 or 6 digits (e.g. "85", "8708" or "850760"; dots are ignored). National codes are not comparable across countries and are rejected; find the HS6 code with search_items.
flowYesRequired. "import" (goods entering the reporting country) or "export" (goods leaving it); there is no combined view: "both" does not exist. For a comparison across countries use compare_countries, for exports minus imports use get_balance.
reportersNoOptional. The reporting countries to compare, at least two of "JP", "US", "GB" or "EU" (e.g. ["JP","GB"]); in a query string a comma-separated list (JP,GB). Default: every available reporter.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: common 12-month window ending at common_month, CIF/FOB/FAS value bases, no_code vs no_data statuses that are never zeroed, differing partner definitions per country, national-code rejection, the 200-row cap, and API-key rate limits (top 20 free, 100 with key). It also discloses rounding rules and *_unavailable_reason semantics, which is unusually thorough for a mutation-free read tool.

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 core purpose and the sibling routing are front-loaded in the first two sentences, which is good. However, a large trailing block reads as server-wide boilerplate (rounding cascade, null-reason list, national-level differences, ranking limits) rather than compare_countries-specific guidance, which bloats the definition well past what an agent needs to invoke this tool.

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?

There is no output schema, and the description compensates fully by enumerating the per-country payload: 12-month USD value, prior 12 months and yoy change, kilograms, unit price with kg_coverage, and top 3 partners with shares. Edge cases (no_code, no_data, missing weights) and the common-month comparability rule make it complete for a multi-country aggregate.

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 coverage is 100%, so the schema already documents code, flow and reporters including the enum values and the 'both does not exist' note. The description adds only marginal meaning beyond it — the default reporter set (JP, US, GB, EU) and the at-least-two-reporters expectation for comparison — so the baseline 3 applies.

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 opening sentence states a precise verb and resource: one product (HS2/HS4/HS6) compared side by side across reporting countries for one flow, with concrete code examples. It explicitly distinguishes itself from get_mirror_trade and get_item_summary, so an agent can route without opening sibling schemas.

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

Usage Guidelines5/5

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

It gives explicit trigger phrasing ("which country trades more of X", "how do unit prices compare"), names the two alternatives and the conditions that select them (get_mirror_trade for one country's bilateral mirror, get_item_summary for single-country detail), and states an entry path (get_catalog / get_item_summary). The rejection rule for national codes is a concrete when-not.

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