Skip to main content
Glama

Estimate a listed vehicle's running costs

estimate_running_costs
Read-only

Estimate what a specific vehicle on Autoza costs to run for a year in GBP, with a range wherever a figure is modelled. A car gets road tax, fuel, servicing, the MOT test fee and insurance. A motorcycle or van in Great Britain gets road tax and the MOT only: fuel, servicing and insurance are not estimated, so its total is partial and not_included says why. Caravans, motorhomes and trucks, and motorcycles and vans in Northern Ireland, come back with available false, because their rates and test differ. Pass the listing URL or id returned by search_used_cars. A component that cannot be worked out is left out of the total rather than guessed. A vehicle that has sold or been withdrawn comes back as status no_longer_for_sale rather than an estimate.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
listing_idNoListing id, if you have it instead of the URL.
listing_urlNoFull autoza.co.uk listing URL as returned by search_used_cars.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
carNo
urlNo
_noteNoWhere the figures come from: Autoza, prices in GBP, distances in miles.
errorNo
foundYes
reasonNo
statusNonot_found or no_longer_for_sale when the car is not for sale.
messageNo
vat_noteNo
availableNo
price_vatNo
price_textNo
assumptionsNo
not_includedNoEach cost the total leaves out, with the reason.
tell_the_userNo
road_tax_basisNo
asking_price_gbpNo
breakdown_per_yearNo
price_gbp_with_vatNo
is_partial_estimateNo
assumed_annual_milesNo
road_tax_not_includedNo
annual_running_cost_gbp_rangeNoLow and high estimate for a year, in GBP.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "_note": {
      +      "description": "Where the figures come from: Autoza, prices in GBP, distances in miles.",
      +      "type": "string"
      +    },
      +    "annual_running_cost_gbp_range": {
      +      "description": "Low and high estimate for a year, in GBP.",
      +      "items": {
      +        "type": "number"
      +      },
      +      "maxItems": 2,
      +      "minItems": 2,
      +      "type": "array"
      +    },
      +    "asking_price_gbp": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "assumed_annual_miles": {
      +      "type": "number"
      +    },
      +    "assumptions": {
      +      "type": "string"
      +    },
      +    "available": {
      +      "type": "boolean"
      +    },
      +    "breakdown_per_year": {
      +      "type": "object"
      +    },
      +    "car": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "type": "string"
      +    },
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "is_partial_estimate": {
      +      "type": "boolean"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "not_included": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "description": "Each cost the total leaves out, with the reason.",
      +      "type": "object"
      +    },
      +    "price_gbp_with_vat": {
      +      "type": "number"
      +    },
      +    "price_text": {
      +      "type": "string"
      +    },
      +    "price_vat": {
      +      "type": "string"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "road_tax_basis": {
      +      "type": "string"
      +    },
      +    "road_tax_not_included": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "not_found or no_longer_for_sale when the car is not for sale.",
      +      "type": "string"
      +    },
      +    "tell_the_user": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "type": "string"
      +    },
      +    "vat_note": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "found"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only state that this is a safe read; the description goes much further by disclosing partial totals for motorcycles/vans, the not_included explanation flag, 'available false' for caravans/motorhomes/trucks and NI vehicles, and the no_longer_for_sale status for withdrawn listings. It also states that uncomputable components are omitted rather than guessed, which is exactly the kind of modelling caveat an agent needs.

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 core purpose in the first sentence and each following sentence carries a distinct exception or input rule. It is dense but no sentence is purely filler, though the density is on the heavy side for a two-parameter tool.

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?

Even though an output schema exists, the description pre-empts the surprising return shapes (partial totals, available false, status no_longer_for_sale) so the agent can interpret responses correctly. Combined with the input guidance and edge-case coverage, nothing needed 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 coverage is 100% for both parameters, so the schema already documents listing_id and listing_url. The description adds only the provenance hint that these come from search_used_cars, which is marginally useful but not substantive new semantics.

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 (estimate) and resource (running costs for a specific Autoza vehicle over a year in GBP), plus the scope of components included. It is clearly distinguishable from siblings like calculate_car_tax and get_uk_price_guide because it covers a whole running-cost bundle tied to a listing.

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?

Tells the agent how to supply input ('Pass the listing URL or id returned by search_used_cars') and enumerates the cases where it should expect non-standard results (partial totals, available false, no_longer_for_sale). It stops short of naming an alternative tool to use instead for the excluded vehicle types, so it is not a full 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