Skip to main content
Glama

Look up HS / tariff codes (US HTS, EU CN)

lookup_hs_code

Use this when you need the customs tariff code for a product description, or the official description, hierarchy, unit and (US) general duty rate of a code, for imports, exports, landed-cost estimates and invoices. Schedules: "us" = Harmonized Tariff Schedule of the United States (USITC, current revision, 10 digits, general/special/column-2 duty rates) and "eu" = EU Combined Nomenclature (CN 2026, 8 digits, supplementary units; duty rates live in TARIC and are not included). The first 6 digits of either code are the international HS code. Text queries return a deterministic ranking by matched words (no LLM). Offline tables, refreshed yearly.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "lookup_hs_code"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeNoTariff code to describe, with or without dots/spaces, e.g. "0901.11.00.15", "090111", "0901 11 00", or a chapter "09". Provide code or query.
itemsNoBatch mode: up to 500 items, each with the same fields as a single call. Omit when validating a single value through the top-level fields.
queryNoProduct description to find codes for, e.g. "roasted coffee not decaffeinated", "lithium-ion batteries". Provide code or query.
scheduleNoTariff schedule: "us" (Harmonized Tariff Schedule of the United States, 10 digits) or "eu" (EU Combined Nomenclature, 8 digits).
maxResultsNoMaximum matches returned per query item and children listed per code (1–50, default 10).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the load well: it discloses the deterministic word-match ranking (no LLM), the offline yearly-refreshed tables, digit widths per schedule, and that TARIC duty rates are excluded. It doesn't mention latency, coverage gaps beyond TARIC, or error behavior, so it stops short of full transparency.

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?

Front-loads the trigger and the two modes, then layers schedule detail. It is a dense paragraph rather than broken into sections, and the schedule parenthetical is long, but every sentence carries information an agent would otherwise have to infer.

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?

With no output schema and no annotations, the description needs to stand alone, and it largely does: it enumerates returned fields (description, hierarchy, unit, duty rate), schedule scope, and offlineness. It omits response shape details and any mention of ambiguity when a query matches many codes, so a small gap remains for a 5.

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 coverage is 100%, so baseline is 3; the description adds real value by explaining what 'us' vs 'eu' means in terms of digits, agency source, and duty columns, and by clarifying that the first six digits are the shared HS code. Batch mode is only covered by the schema, keeping this at 4.

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?

States a specific verb and resource ('look up the customs tariff code'), explains both directions (query→code, code→description) and names the two concrete schedules. It is immediately distinguishable from siblings like lookup_industry_code or lookup_sat_catalog.

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?

Opens with an explicit trigger ('Use this when you need...') and enumerates use cases (imports, exports, landed-cost, invoices). It also clarifies which schedule to pick and that EU duty rates are out of scope, though it never states when NOT to use the tool or names a fallback for EU duty rates.

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.