Skip to main content
Glama

Estimate landed cost

estimate_landed_cost
Read-onlyIdempotent

Use this when the user has an 8- or 10-digit US HTS code and wants the import duty, merchandise processing fee (MPF), harbor maintenance fee (HMF) and total landed cost for a customs value and quantity. Computes ad valorem, specific and compound rates from the current USITC schedule; other rate texts are returned as not computed. Does not include Chapter 99 additional duties (Section 232, 301, IEEPA), antidumping duties or taxes.

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": {
      "hts_code": "<hts_code>",
      "customs_value": "<customs_value>"
    },
    "name": "estimate_landed_cost"
  }
}

Input Schema

NameRequiredDescriptionDefault
freightNoInternational freight in US dollars, added to landed cost, e.g. 1800.
hts_codeYes8- or 10-digit HTS code, dots optional, e.g. 8712.00.25.00.
quantityNoQuantity in quantity_unit, needed for specific rates such as cents per kg, e.g. 300.
insuranceNoCargo insurance in US dollars, added to landed cost, e.g. 120.
transportNoHow the goods arrive, only as the user stated it; ocean adds the harbor maintenance fee, e.g. ocean. Never guess: omit when the user did not name a mode; HMF is then shown as a conditional line and not added to the totals.
entry_dateNoPlanned entry date YYYY-MM-DD for the fee year, e.g. 2026-11-15. Default: today in New York.
rate_columnNogeneral (normal trade relations, default) or column_2 for countries in HTS General Note 3(b), e.g. general.
customs_valueYesCustoms (transaction) value in US dollars, greater than 0 and at most 1,000,000,000, e.g. 12500.
net_weight_kgNoNet weight in kilograms when the rate is per kg, e.g. 950.
quantity_unitNoUnit of quantity: No. (items), pr. (pairs), doz., gross, kg, t, liter, m2, m3, bbl or head, e.g. No.

Output Schema

NameRequiredDescriptionDefault
pathNo
linesNo
notesNo
unitsNo
limitsYes
sourceYes
statusYes
hmf_usdNo
messageYes
mpf_usdNo
duty_usdNo
fee_yearNo
fees_usdNo
hts_codeYes
downloadsYes
rate_kindNo
rate_textNo
transportNo
entry_dateNo
descriptionNo
freight_usdNo
rate_columnNo
insurance_usdNo
chapter99_refsNo
landed_cost_usdNo
hmf_if_ocean_usdNo
customs_value_usdNo
duty_plus_fees_usdNo
special_rates_textNo
effective_duty_rateNo

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?

Beyond the readOnly/idempotent/openWorld annotations, it discloses the data source ('current USITC schedule'), how rate types are handled (ad valorem, specific and compound computed; other rate texts returned as not computed), and explicit coverage gaps. That is exactly the kind of caveat an agent needs to present results honestly.

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

Conciseness5/5

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

Three sentences, front-loaded with the trigger and the computed outputs, followed by source and exclusions. No filler, no repetition of schema content, and each sentence carries distinct decision-relevant information.

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?

For a 10-parameter estimation tool with an output schema and full annotations, the description supplies the trigger, the computation source, and the scope limits, which is all the description needs to carry. Return values and per-parameter detail are already covered by structured fields.

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% and every parameter already carries an example and constraint, so the baseline is 3. The description only restates that an HTS code and a customs value/quantity are the inputs, adding no format or edge-case meaning beyond the schema (e.g., nothing on entry_date fee-year effects or rate_column selection).

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?

Names a concrete operation and its outputs: duty, MPF, HMF and total landed cost for a given customs value and quantity. The precondition ('user has an 8- or 10-digit US HTS code') cleanly separates it from the lookup-oriented sibling search_hts_codes, so an agent can route without opening either schema.

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?

Gives a precise trigger (user already has an HTS code and wants landed cost) and sharp exclusions (no Chapter 99 Section 232/301/IEEPA, no antidumping duties, no taxes), which tells the agent when results will be incomplete. It stops short of routing to any alternative tool for those excluded duties, leaving the follow-up to inference.

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