Skip to main content
Glama

calc_import_payments

Read-onlyIdempotent

Calculates Russian import customs payments for one goods item in RUB: duty, antidumping, excise, import VAT, 2026 clearance fee, and currency conversion at Bank of Russia rates.

Instructions

Calculate import customs payments into Russia for one goods item, in RUB.

Computes: import duty by the EAEU ETT rate (ad valorem, specific per kg/pcs/pair/litre, or combined 'X%, but not less than Y EUR per unit'), antidumping duty, excise, import VAT ((customs value + duty + antidumping + excise) x 22% or 10%) and the 2026 customs clearance fee by customs value bracket. Converts currencies at Bank of Russia rates. Returns a line-by-line breakdown with sources.

Input Schema

NameRequiredDescriptionDefault
codeNoTN VED EAEU code; its ETT duty rate is used if duty_rate is not given
on_dateNoDeclaration date YYYY-MM-DD for exchange rates; default today
currencyNoCurrency of customs_value: RUB, CNY, USD, EUR, etc.RUB
vat_rateNoImport VAT rate in 2026: 22 general, 10 for goods on Government lists (some food, children's goods, medical), 0 if exempt
duty_rateNoDuty rate as in the tariff, overrides the code: '10', '0', '0,6 евро за 1 кг', '15, но не менее 2,5 евро за 1 пару'
excise_rubNoExcise in RUB if the goods are excisable (alcohol, tobacco, fuel, cars)
quantity_lNoLitres
quantity_kgNoNet weight in kg, needed for per-kg specific rates
quantity_m2NoSquare metres
quantity_cm3NoEngine displacement in cm3
quantity_pcsNoPieces, for per-piece rates
customs_valueYesCustoms value of the goods (usually CIF to the EAEU border) in `currency`
quantity_pairNoPairs (footwear)
exchange_ratesNoRUB per 1 unit, e.g. {'CNY': 11.2, 'EUR': 92.5}. If omitted, Bank of Russia rates for `on_date` are fetched
recycling_fee_rubNoCar recycling fee (утильсбор) in RUB from calc_recycling_fee, to show the full cost of importing a vehicle. Not part of the VAT base
antidumping_rate_pctNoAntidumping/countervailing/special duty rate in % of customs value, if a measure applies

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A3.9/5.0
Behavior3/5

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

The annotations already declare readOnly, idempotent, non-destructive, and openWorld; the description justifies the openWorld flag by disclosing that currencies are converted at Bank of Russia rates (a network fetch). It also discloses the VAT base composition and the shape of the result ('line-by-line breakdown with sources'), which is useful beyond the annotations. It stops short of stating failure behavior when neither code nor duty_rate is provided, or how rounding is handled.

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?

One line stating purpose and scope, followed by a compact formula digest and a return-value note. It is dense but front-loaded and every clause maps to a computed component or parameter family; minor cost is that the component list reads as a wall of commas rather than a structured list.

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?

For a 16-parameter calculator with no output schema, the description supplies the calculation logic, the currency-conversion behavior, and the return shape, which is most of what an agent needs to call it correctly. The remaining gap is edge-case behavior — what happens if both code and duty_rate are omitted, or if a specific rate is chosen without the matching quantity_* value.

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 the baseline is 3; the description earns above that by explaining why the quantity_* parameters exist, listing the rate forms (ad valorem, per kg/pcs/pair/litre, combined 'X% but not less than Y EUR') that the duty_rate string must match. It also clarifies the VAT base as customs value + duty + antidumping + excise, which is information the schema alone does not convey.

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 — calculating Russian import customs payments for a single goods item in RUB — and enumerates the exact components computed (ETT duty, antidumping, excise, import VAT, 2026 clearance fee). That enumeration makes it unmistakable against siblings like tnved_search, antidumping_check, or customs_clearance_fee, which each cover only a fragment of this calculation.

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?

The phrase 'for one goods item' implicitly scopes usage to a single-line landed-cost calculation, and the formulas imply it is the aggregating tool. However, it never says when to use this versus customs_clearance_fee or calc_recycling_fee directly, nor what to do when no rate source is supplied. Guidance is inferable but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.