Skip to main content
Glama

Shop Duty Desk

Estimate EU duty on a low-value consignment

eu_duty_estimate
Read-onlyIdempotent

Estimate the EU customs duty on a consignment of up to EUR 150 imported under IOSS or by post: EUR 3 per item from 1 July 2026 until 1 July 2028 (Council Regulation (EU) 2026/382, Delegated Regulation (EU) 2026/1022). Use it for questions like "what duty applies to these order lines?", "how many items does this parcel count as?". Pass lines (description, origin, qty, unit_value_eur, optional hs_code) and channel (ioss or postal); optional consignment_value_eur and date. Lines must not carry customer fields. Returns the item count as given and with identical lines merged, the duty for each, the legal basis, and the assumptions. Consignments over EUR 150 and dates outside the period return no duty and say why.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoImport day, YYYY-MM-DD (default today, UTC)
linesYesOrder lines of one consignment. Each line holds only description, hs_code (optional), origin, qty and unit_value_eur; lines with any other field, such as a customer name or address, are refused.
channelYesioss: the import is VAT-exempt under the Import One-Stop Shop. postal: the goods travel in a postal consignment.
consignment_value_eurNoIntrinsic value of the whole consignment in euros, if different from the sum of the lines

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
assumptionsYes
legal_basisYes
consignmentsYes
total_duty_eurYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), yet the description adds real behavioral context beyond them: lines carrying customer fields are refused, item counts are returned both as-given and with identical lines merged, and out-of-range inputs return no duty with an explanation rather than an error.

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?

A single dense paragraph, front-loaded with the duty rule and period before moving to inputs and returns. Nearly every clause earns its place, though the return-value sentence is somewhat redundant given an output schema exists.

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 multi-parameter, legally-scoped estimation tool, the description covers eligibility limits, temporal validity, required inputs, refusal conditions and return contents. With an output schema present, the return description is extra but not needed, so nothing an agent needs to call it correctly is missing.

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 parameter including the ioss/postal meanings and the line fields. The description restates the accepted line fields and the 'no customer fields' rule, which largely duplicates the schema rather than adding syntax or format meaning, 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?

States a specific verb and resource (estimate EU customs duty on a low-value consignment) plus the exact scope (up to EUR 150, IOSS or postal) and the governing regulations. This distinguishes it cleanly from the sibling landed_cost_estimate, which would otherwise be the obvious confusion.

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 concrete triggering questions ('what duty applies to these order lines?') and states the boundaries where it does nothing: consignments over EUR 150 and dates outside 1 Jul 2026–1 Jul 2028 return no duty with a reason. It does not name an alternative sibling (e.g. landed_cost_estimate) for the out-of-scope case, so it falls short of a 5.

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