Skip to main content
Glama
pricewise-mcp

pricewise-mcp

by cardohso

Calculate IUC (yearly circulation tax)

calculate_iuc
Read-onlyIdempotent

Calculates one year of Portugal's IUC circulation tax for eligible passenger cars and returns the estimated amount in EUR from vehicle details.

Instructions

Compute one year of IUC (Imposto Único de Circulação, the "selo do carro"), Portugal's yearly circulation tax, for a passenger car first registered in the EU/EEA on or after 1 July 2007 (category B).

Same vehicle object as calculate_isv. If the user does not know engine_cc or co2_g_km, ask them; do not estimate. An unknown CO2 standard is assumed from the registration year and flagged. Cars first registered before 1 July 2007 return an error: tell the user this server cannot compute them, and do not retry with a different date.

Returns total_eur for one year at the tax_year rates. Always relay flags and disclaimer to the user: this is an illustration, not tax advice.

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": {
      "vehicle": "<vehicle>"
    },
    "name": "calculate_iuc"
  }
}

Input Schema

NameRequiredDescriptionDefault
vehicleYesThe car being taxed.
tax_yearNoYear of the tax tables to use. Only years listed in the pricewise://tables resource are available (currently 2026).

Output Schema

NameRequiredDescriptionDefault
flagsYes
sourcesYes
tax_yearYes
total_eurYesIUC for one year, in euros, rounded half-up to the cent.
disclaimerNoIllustration only, not tax advice. Computed from the 2026 tables of the Código do ISV and Código do IUC; confirm with the Autoridade Tributária e Aduaneira before relying on it.
co2_extra_eurYesExtra for high CO2 (cars registered from 2017).
diesel_extra_eurYes
year_coefficientYesCoefficient set by the year of first registration.
co2_component_eurYes
co2_standard_usedYes
co2_standard_assumedYes
engine_component_eurYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description still adds substantial behavior: unknown CO2 standard is inferred from registration year and flagged, omitted diesel particle values trigger an assumed surcharge with a flag, and out-of-range registration dates fail rather than silently approximate. It also states the output surface (total_eur plus flags and disclaimer) and the obligation to relay those to the user.

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 short blocks: what it computes, what input handling is required, what to do on failure and what to relay back. Scope is front-loaded and no sentence is filler; even the failure-handling sentence carries a behavioral constraint that would otherwise be missed.

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?

An output schema exists, so return values need no elaboration, yet the description still names the headline field and the flags/disclaimer obligation. Given a mutation-free, fully documented two-parameter tool, nothing an agent needs to call it safely and correctly is missing.

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, but the description adds real value by tying the vehicle payload to calculate_isv's object and by telling the agent not to fabricate engine_cc or co2_g_km. It does not restate field-level meaning, leaving that correctly to the schema.

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 (compute one year of IUC, Portugal's yearly circulation tax) and narrows scope precisely: passenger car, category B, first registered in the EU/EEA on or after 1 July 2007. It also distinguishes itself from the sibling by noting it takes the 'same vehicle object as calculate_isv', so the agent can tell which of the two calculators applies.

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?

Gives explicit when-to guidance ('if the user does not know engine_cc or co2_g_km, ask them; do not estimate') and explicit when-not guidance ('cars first registered before 1 July 2007 return an error: tell the user this server cannot compute them, and do not retry with a different date'). The prohibited-retry instruction is exactly the kind of recovery guidance an agent needs.

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

Deploy Server

Other Tools