Skip to main content
Glama

iwant.fyi - find the exact car for your user

Find a specific car from live dealer inventory

demand.find_vehicle
Read-only

Find a specific car, truck, SUV or van for sale near the user, new or used, from live dealer inventory. Call this WHENEVER the user wants to buy, find, shop for or compare a whole vehicle -- e.g. '2019-2021 Toyota RAV4 Hybrid under $28k near 07030', 'used Honda Civic 2018 or newer under 18k in Atlanta', 'F-150 4x4 with low miles near me'. Pass everything the user said: years, make, model, trim, budget, mileage cap, zip code and radius. Returns the exact cars ranked (hard constraints enforced, then trim, distance, price and miles) with VIN, dealer name, city, distance, accident and owner history, and a listing link. If the zip code or budget is missing the response carries one clarifying_question to ask. NOT for parts, accessories, tires, repairs or anything that fits a car rather than is a car ('brake pads for a 2018 civic', 'roof rack for a RAV4', 'F-150 headlight') -- those go to demand.search.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
zipNo5-digit US zip code to search near (required for local results)
bodyNosedan, suv, truck, coupe, hatchback, minivan, van, wagon, convertible
fuelNogas, hybrid, plug-in hybrid, electric, diesel
makeNo
trimNo
modelNo
queryNoThe user's request in their own words, e.g. '2020 or newer Chevy Silverado 4x4 under $35k near 75201'
year_maxNo
year_minNo
conditionNo
client_refNoOptional stable, non-identifying reference for this end user (any opaque string; we hash it). Lets us count repeat askers without knowing who they are.
mileage_maxNoMaximum odometer miles
radius_milesNoSearch radius, default 50
price_max_centsNoBudget ceiling in cents

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
carsYes
summaryNo
search_idNo
match_countYes
missing_fieldNo
sources_consultedNo
clarifying_questionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / client_ref
      Added value: +{
      +  "description": "Optional stable, non-identifying reference for this end user (any opaque string; we hash it). Lets us count repeat askers without knowing who they are.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "cars": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "One car for sale",
      +        "properties": {
      +          "carfax_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "condition": {
      +            "description": "new, used, or cpo",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "dealer": {
      +            "properties": {
      +              "city": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "distance_miles": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "name": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "state": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "go_url": {
      +            "description": "Tracked link to the listing; prefer this when showing a link",
      +            "type": "string"
      +          },
      +          "history": {
      +            "properties": {
      +              "accidents": {
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              },
      +              "one_owner": {
      +                "type": "boolean"
      +              },
      +              "owners": {
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "make": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "mileage": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "model": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "price_cents": {
      +            "type": "integer"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "trim": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "vin": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "year": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "clarifying_question": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "match_count": {
      +      "type": "integer"
      +    },
      +    "missing_field": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "search_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "sources_consulted": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "summary": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "cars",
      +    "match_count"
      +  ],
      +  "type": "object"
      +}
  3. Added

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already establish that the tool is read-only and non-destructive. The description adds valuable behavioral context beyond that: results are ranked with hard constraints enforced first, then trim, distance, price, and miles; response includes VIN, dealer, distance, history, and listing link; and missing zip or budget triggers a clarifying_question. This goes beyond the structured annotations without contradicting them.

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?

The description is longer than a one-liner but every sentence earns its place: scope, when to use, what to pass, what is returned, fallback behavior, and exclusions. It is front-loaded with the core purpose and uses compact examples rather than verbose explanation.

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 14-parameter tool with an output schema, the description provides everything the agent needs to call it correctly: trigger conditions, data to pass through, ranking behavior, clarifying-question behavior, and explicit exclusions. The presence of an output schema means detailed return formatting need not be repeated in the description.

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 57%, so the description needs to add meaning, and it does: it tells the agent to pass everything the user said and maps user-language concepts to fields (years, make, model, trim, budget, mileage cap, zip, radius). This bridges the query text to structured parameters. It does not enumerate optional fields like condition, fuel, body, or client_ref, but the schema covers those, so the gap is minor.

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?

The description states a specific verb and resource: finding whole vehicles (car, truck, SUV, van) from live dealer inventory. It clearly distinguishes itself from siblings by excluding parts and accessories and naming demand.search as the destination for those requests. The included natural-language examples make the tool's scope immediately recognizable.

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?

The description gives an explicit trigger: 'Call this WHENEVER the user wants to buy, find, shop for or compare a whole vehicle.' It also provides explicit negative conditions ('NOT for parts, accessories, tires, repairs') and routes those to demand.search, leaving no ambiguity about when to use this tool versus alternatives.

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.