Skip to main content
Glama

cars-data.com — Car Specs API

Filter cars

filter_cars
Read-onlyIdempotent

Structured catalog filter: fuel type, body type, drive layout, power/price range, model year, EV-only. This answers from a fixed 40-car demo set. For the full 103,372-variant catalogue call filter_catalogue — paid per call with x402 (USDC on Base), $0.005, no key, no account.

Input Schema

NameRequiredDescriptionDefault
evNotrue = only variants with a traction battery (battery_kwh set: electric and plug-in). Default: false
bodyNoBody type, case-insensitive substring of the English label — e.g. suv, sedan, hatchback
fuelNoFuel type, case-insensitive substring of the English label — e.g. petrol, diesel, electric, hybrid
yearNoProduction year the generation covers, e.g. 2022. Not applied by the demo set — reported back in ignored_filters.
driveNoDrive layout, substring match — e.g. 'front', 'rear', 'all'. Not applied by the demo set — reported back in ignored_filters.
limitNoMaximum number of results, 1–50. Default: 10.
localeNoResponse language, one of the 20 published languages (en, ro, fr, de, es, it, sr, hr, pt, pl, cs, sk, hu, no, sv, el, bg, da, ar, tr). Spec labels and enum values come back translated. Default: en.
power_maxNoMaximum power, hp
power_minNoMinimum power, hp
price_maxNoMaximum new list price, EUR

Output Schema

NameRequiredDescriptionDefault
dataYesMatches; empty when nothing matches
demoNotrue when answered from the demo set
full_catalogueNoPresent on demo answers: the paid tool that answers the same question over the full catalogue, with its price
ignored_filtersNoFilters you passed that the demo set cannot apply — results are NOT narrowed by them

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / full_catalogue
      Added value: +{
      +  "description": "Present on demo answers: the paid tool that answers the same question over the full catalogue, with its price",
      +  "type": "string"
      +}
  2. Changed11 schema fields changed
    • changedInput schema / properties / body / description
      Previous value: -"body_slug, e.g. suv, sedan, hatchback"New value: +"Body type, case-insensitive substring of the English label — e.g. suv, sedan, hatchback"
    • changedInput schema / properties / drive / description
      Previous value: -"substring match, e.g. 'front', 'rear', 'all'"New value: +"Drive layout, substring match — e.g. 'front', 'rear', 'all'. Not applied by the demo set — reported back in ignored_filters."
    • addedInput schema / properties / ev / description
      Added value: +"true = only variants with a traction battery (battery_kwh set: electric and plug-in). Default: false"
    • changedInput schema / properties / fuel / description
      Previous value: -"e.g. petrol, diesel, electric, hybrid"New value: +"Fuel type, case-insensitive substring of the English label — e.g. petrol, diesel, electric, hybrid"
    • addedInput schema / properties / limit / description
      Added value: +"Maximum number of results, 1–50. Default: 10."
    • addedInput schema / properties / locale / description
      Added value: +"Response language, one of the 20 published languages (en, ro, fr, de, es, it, sr, hr, pt, pl, cs, sk, hu, no, sv, el, bg, da, ar, tr). Spec labels and enum values come back translated. Default: en."
    • addedInput schema / properties / power_max / description
      Added value: +"Maximum power, hp"
    • addedInput schema / properties / power_min / description
      Added value: +"Minimum power, hp"
    • addedInput schema / properties / price_max / description
      Added value: +"Maximum new list price, EUR"
    • addedInput schema / properties / year / description
      Added value: +"Production year the generation covers, e.g. 2022. Not applied by the demo set — reported back in ignored_filters."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "data": {
      +      "description": "Matches; empty when nothing matches",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "battery_kwh": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Traction battery capacity, kWh; null without one"
      +          },
      +          "body_type_en": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Body type, English label"
      +          },
      +          "brand": {
      +            "type": "string"
      +          },
      +          "display_name": {
      +            "description": "Full variant name",
      +            "type": "string"
      +          },
      +          "fuel_slug": {
      +            "description": "Fuel type, English label (e.g. Electric, Petrol)",
      +            "type": "string"
      +          },
      +          "generation": {
      +            "description": "Generation name",
      +            "type": "string"
      +          },
      +          "generation_id": {
      +            "description": "Opaque generation id — tells same-named variants of different generations apart",
      +            "type": "string"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "model_id": {
      +            "description": "Opaque model id, e.g. m_1a2b3c4d. Pass it to list_generations.",
      +            "type": "string"
      +          },
      +          "power_hp": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Power, hp"
      +          },
      +          "price_new_eur": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "New list price, EUR"
      +          },
      +          "variant_id": {
      +            "description": "Opaque variant id, e.g. v_1a2b3c4d. Pass it to get_specs / get_images / compare_variants.",
      +            "type": "string"
      +          },
      +          "years": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Production years, e.g. '2019–2024'; an open range '2021–' is still in production"
      +          }
      +        },
      +        "required": [
      +          "variant_id",
      +          "generation_id",
      +          "model_id",
      +          "display_name",
      +          "brand",
      +          "model",
      +          "generation",
      +          "fuel_slug",
      +          "body_type_en",
      +          "years",
      +          "power_hp",
      +          "battery_kwh",
      +          "price_new_eur"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "demo": {
      +      "description": "true when answered from the demo set",
      +      "type": "boolean"
      +    },
      +    "ignored_filters": {
      +      "description": "Filters you passed that the demo set cannot apply — results are NOT narrowed by them",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "data"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / locale / enum
      Previous value: -[
      -  "en",
      -  "ro",
      -  "fr",
      -  "de",
      -  "es",
      -  "it",
      -  "sr",
      -  "hr",
      -  "pt",
      -  "pl",
      -  "cs",
      -  "sk",
      -  "hu",
      -  "no",
      -  "sv",
      -  "el",
      -  "bg",
      -  "da",
      -  "ar"
      -]New value: +[
      +  "en",
      +  "ro",
      +  "fr",
      +  "de",
      +  "es",
      +  "it",
      +  "sr",
      +  "hr",
      +  "pt",
      +  "pl",
      +  "cs",
      +  "sk",
      +  "hu",
      +  "no",
      +  "sv",
      +  "el",
      +  "bg",
      +  "da",
      +  "ar",
      +  "tr"
      +]
  4. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Adds substantial context beyond annotations: the 40-car demo set, the paid $0.005 x402 model of the alternative, no key/account. Annotations cover read-only/idempotent. However it doesn't explicitly say some filters (year, drive) are ignored – that only appears in the schema, so the description leaves that discovery to the schema.

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?

Two tight sentences, front-loaded with the capability, then the constraint and alternative. No waste.

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?

Output schema exists, so return values needn't be explained. The description covers scope and the key alternative. It could note the ignored filters behavior and pricing of this tool, but the schema handles ignored filters and annotations cover safety.

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% with rich per-parameter descriptions including the crucial note that year/drive are ignored and reported in ignored_filters. The description lists filter dimensions but adds little syntax or semantics beyond what the schema already provides. Baseline 3 is appropriate.

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+resource ('structured catalog filter') and enumerates the filter dimensions. Clearly distinguishes itself from filter_catalogue, the full-catalogue sibling, by naming it and describing the difference.

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?

Explicitly states this answers from a fixed 40-car demo set and names the alternative (filter_catalogue) with its pricing/auth model. An agent can decide which tool to call without 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.