{"serverId":"mcp-registry/app.opendealer/mcp","tools":[{"name":"check_recalls","fixed":{"name":"check_recalls","description":"Open safety recalls for a listing.\n\nPass vertical when the request names one. Cars use NHTSA (year, make, and model; a campaign may not apply to every VIN). Off-road uses CPSC. Call this with the off-road listing id; the tool reads GET /v2/listings/{listingId}/recalls and does not use the cars-only /v1 path for that id.\n\nEvery response names the source and states one outcome in words: \"confirmed for this VIN\", \"possible for this year, make, and model\", \"no matching published recall\", or \"coverag","inputSchema":{"type":"object","properties":{"vin":{"description":"17-character Vehicle Identification Number","type":"string"},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."},"listingId":{"type":"string","maxLength":300,"minLength":1,"description":"Canonical listing id (`dealerId-or-slug:VIN`). Required for an off-road unit when the VIN is listed at more than one rooftop. Same path key as GET /v2/listings/{listingId}/recalls."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Check Recalls"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: vin. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":310,"tokensAfter":315},{"name":"dealers_near","fixed":{"name":"dealers_near","description":"Find dealerships near a location.\n\nLocation modes (choose ONE):\n• zip + radius (miles)\n• lat + lng + radius\n• city + state + radius\n• county + state + radius\n\nReturns dealer information including:\n• Name, address, phone, website\n• Slug (the public handle for get_dealer and dealer_inventory; the public list does not include internal dealer UUIDs)\n• Distance from search location\n• Current inventory count\n• Business hours (when available)\n\nResponse `total` is the full match count for the query (ign","inputSchema":{"type":"object","properties":{"q":{"type":"string","maxLength":200,"minLength":2,"description":"Whole-token filter on dealer name, slug, or city. Same as GET /v1/dealers q."},"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude coordinate"},"lng":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude coordinate"},"zip":{"type":"string","pattern":"^[0-9]{5}$","description":"5-digit US ZIP code (e.g., 92688)"},"city":{"type":"string","minLength":1,"description":"City name"},"limit":{"type":"integer","maximum":200,"minimum":1,"description":"Maximum number of dealers to return (1-200). Omit to use the Runtime API default of 100."},"state":{"description":"2-letter US state code (e.g., CA, TX)","type":"string"},"county":{"type":"string","minLength":1,"description":"County name"},"offset":{"type":"integer","default":0,"maximum":9007199254740991,"minimum":0,"description":"Number of results to skip. The window is the next `limit` vehicles starting at this offset (default 0)."},"radius":{"type":"integer","maximum":250,"minimum":1,"description":"Search radius in miles (1-250). Omit to use the platform default of 150 miles, the same as the shop and the Runtime API."},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Find Nearby Dealers"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: state. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":545,"tokensAfter":549},{"name":"filter_vehicles","fixed":{"name":"filter_vehicles","description":"Preferred structured inventory lookup when make/model/year/color/location are known.\n\nExact hard filters only via GET /v1/vehicles (same Meilisearch collection as search_vehicles). Totals match the filters you pass. Listings with zero photos are omitted. fuelType is the canonical label. transmission and drivetrain match every indexed raw string in that bucket (automatic includes \"8-Speed Automatic\"). A 503 powertrain_filter_unavailable means that facet list could not be read, not that zero cars ","inputSchema":{"type":"object","properties":{"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude coordinate"},"lng":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude coordinate"},"zip":{"type":"string","pattern":"^[0-9]{5}$","description":"5-digit US ZIP code (e.g., 92688)"},"city":{"type":"string","minLength":1},"make":{"type":"string","minLength":1,"description":"Vehicle make (resolve via list_research_makes if unsure)"},"near":{"type":"string","minLength":1,"description":"Location string (ZIP or city, state). Same as GET /v1/vehicles near."},"page":{"type":"integer","default":1,"maximum":9007199254740991,"minimum":1,"description":"Page number (1-based). Same as GET /v1/vehicles page."},"year":{"type":"integer","maximum":2100,"minimum":1900,"description":"Alias for vehicleModelDate. Same as GET /v1/vehicles year."},"class":{"enum":["side-by-side","atv","snowmobile"],"type":"string","description":"Off-road class. Legal when vertical=offroad. side-by-side, atv, or snowmobile."},"color":{"type":"string","minLength":1,"description":"Exterior color family. Same as GET /v1/vehicles color."},"drive":{"enum":["2wd","4wd","awd"],"type":"string","description":"Drive: 2wd, 4wd, or awd. Legal when vertical=offroad. Same as GET /v2/listings drive."},"limit":{"type":"integer","default":25,"maximum":100,"minimum":1,"description":"Maximum number of results to return (1-100, default: 25)"},"model":{"type":"string","minLength":1,"description":"Vehicle model (resolve via list_research_models if unsure)"},"seats":{"type":"integer","maximum":12,"minimum":1,"description":"Seating capacity. Legal when vertical=offroad. Same as GET /v2/listings seats."},"state":{"description":"2-letter US state code (e.g., CA, TX)","type":"string"},"county":{"type":"string","minLength":1,"description":"County name"},"fields":{"type":"string","description":"Sparse field selection (comma-separated). Same as GET /v1/vehicles fields."},"radius":{"type":"integer","maximum":250,"minimum":1,"description":"Search radius in miles (1-250). Omit to use the platform default of 150 miles, the same as the shop and the Runtime API."},"sortBy":{"enum":["price","vehiclemodeldate","distance","updatedat","mileage","daysonlot","make","model","pricechange"],"type":"string","description":"Sort field. Same as GET /v1/vehicles sortBy: price, vehiclemodeldate, distance, updatedat, mileage, daysonlot, make, model, pricechange."},"subtype":{"enum":["sport","utility","youth"],"type":"string","description":"Off-road sub-type: sport, utility, or youth. Legal when vertical=offroad. Same as GET /v2/listings subtype."},"yearMax":{"type":"integer","maximum":2030,"minimum":1990,"description":"Maximum model year. Same as GET /v1/vehicles yearMax."},"yearMin":{"type":"integer","maximum":2030,"minimum":1990,"description":"Minimum model year. Same as GET /v1/vehicles yearMin."},"bodyType":{"enum":["sedan","suv","truck","coupe","van","wagon","convertible","hatchback"],"type":"string","description":"Vehicle body style. Same as GET /v1/vehicles bodyType."},"dealerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Filter to a single dealer UUID. Same as GET /v1/vehicles dealerId."},"fuelType":{"enum":["gasoline","diesel","electric","hybrid","plug-in-hybrid"],"type":"string","description":"Fuel type. Same as GET /v1/vehicles fuelType."},"priceMax":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Maximum price in USD. Same as GET /v1/vehicles priceMax."},"priceMin":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Minimum price in USD. Same as GET /v1/vehicles priceMin."},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."},"certified":{"type":"boolean","description":"Certified pre-owned only. Same as GET /v1/vehicles certified."},"condition":{"enum":["new","used","cpo"],"type":"string","description":"Listing condition. Same as GET /v1/vehicles condition: new, used, or cpo. The value certified is a deprecated alias of cpo."},"hasImages":{"type":"boolean","description":"Listings with zero photos are omitted. Same as GET /v1/vehicles hasImages=true."},"sortOrder":{"enum":["asc","desc"],"type":"string","description":"Sort direction. Same as GET /v1/vehicles sortOrder."},"dealerSlug":{"type":"string","maxLength":200,"minLength":1,"description":"Filter to a dealer slug. Same as GET /v1/vehicles dealerSlug."},"drivetrain":{"enum":["fwd","rwd","awd","4wd"],"type":"string","description":"Drivetrain configuration. Same as GET /v1/vehicles drivetrain."},"identifier":{"type":"string","maxLength":64,"minLength":1,"description":"VIN, 12-character HIN, or internal id. Looks the unit up across the verticals this request searches, without a dealer. Same as GET /v2/listings identifier."},"mileageMax":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Maximum mileage. Same as GET /v1/vehicles mileageMax."},"transmission":{"enum":["automatic","manual","cvt"],"type":"string","description":"Transmission type. Same as GET /v1/vehicles transmission."},"priceChangeMax":{"type":"number","description":"Maximum indexed priceChange (USD delta vs first recorded ask; use -1 to exclude unchanged listings)"},"priceChangeMin":{"type":"number","description":"Minimum indexed priceChange (USD delta vs first recorded ask; negative means a drop)"},"strictLocation":{"type":"boolean","description":"When true, a bare near city that matches several states or none returns an empty collection (same as GET /v1/llm/filter). ZIP and city+state are unchanged. Omit to keep the highest-population city pick. Same as GET /v1/vehicles strictLocation."},"displacementMax":{"type":"number","minimum":0,"description":"Maximum engine displacement in cc. Legal when vertical=offroad. Same as GET /v2/listings displacementMax."},"displacementMin":{"type":"number","minimum":0,"description":"Minimum engine displacement in cc. Legal when vertical=offroad. Same as GET /v2/listings displacementMin."},"vehicleModelDate":{"type":"integer","maximum":2100,"minimum":1900,"description":"Exact model year. Same as GET /v1/vehicles vehicleModelDate."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Filter Vehicles (Structured)"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: state. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":1936,"tokensAfter":1940},{"name":"get_deal_score","fixed":{"name":"get_deal_score","description":"Pass vertical when the request names one. Use the vertical facet to narrow a blended result. Skip a tool that has no data for that vertical.\n\nGet AI-powered deal scoring and market insights for a vehicle.\n\nReturns comprehensive analysis including:\n• Deal score (1-100) with rating (Great, Good, Fair, Poor)\n• Price comparison vs market average\n• Days on lot analysis\n• Price history and trends\n• Similar vehicles in the market\n\nCore step in vehicle_dossier, budget_coach, price_drop_sniper, and deale","inputSchema":{"type":"object","properties":{"vin":{"description":"17-character Vehicle Identification Number","type":"string"},"dealerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Score this dealer when the VIN is listed at more than one rooftop. Same as GET /v1/vehicles/:vin/insights dealerId."},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."},"listingId":{"type":"string","maxLength":300,"minLength":19,"description":"Canonical listing id (`dealerId-or-slug:VIN`). Scores that rooftop when the VIN is listed at more than one store."},"dealerSlug":{"type":"string","maxLength":200,"minLength":1,"description":"Score this rooftop slug when the VIN is listed at more than one store. Same as insights dealerSlug."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Get Deal Score"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: vin. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":440,"tokensAfter":445},{"name":"get_similar_vehicles","fixed":{"name":"get_similar_vehicles","description":"Find similar on-lot vehicles for a VIN (\"you may also like\"). Same make/model keyword comps as the shop VDP rail (not semantic embeddings).\n\nCRITICAL: CITE: Each vehicle's cite object is `vin` + `url` (that listing's own host). Cite only `url` to shoppers. Never invent VDP URLs. Never cite `detailsUrl` (dealer/LotLinx). Never send shoppers to `/llm/*` HTML or `/v1/llm/*` as the human listing URL.","inputSchema":{"type":"object","required":["vin"],"properties":{"vin":{"description":"17-character Vehicle Identification Number","type":"string"},"limit":{"type":"integer","default":6,"maximum":24,"minimum":1},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Get Similar Vehicles"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: vin. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":234,"tokensAfter":238},{"name":"get_vehicle","fixed":{"name":"get_vehicle","description":"Get complete details for a specific vehicle by listingId or VIN.\n\nWhen a VIN is listed at multiple dealer rooftops, a VIN-only lookup returns an envelope of every listing (type vehicle_listings) with no single-store price, seller, or url. Pass listingId to fetch one store.\n\nReturns comprehensive Schema.org Vehicle data including:\n• Full specifications (engine, transmission, drivetrain)\n• High-resolution images\n• Current pricing and availability\n• NHTSA NCAP safety rating summary (when available)","inputSchema":{"type":"object","properties":{"vin":{"description":"17-character Vehicle Identification Number","type":"string"},"view":{"enum":["minimal","standard"],"type":"string","default":"standard","description":"Response format: standard (full details) or minimal (compact)"},"dealerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Scope lookup to a specific dealer when the VIN exists at multiple rooftops. Same as GET /v1/vehicles/:vin dealerId."},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."},"listingId":{"type":"string","maxLength":300,"minLength":19,"description":"Canonical listing id (`dealerId-or-slug:VIN`). Preferred when the VIN is listed at multiple dealers."},"dealerSlug":{"type":"string","maxLength":200,"minLength":1,"description":"Scope lookup by dealer slug. Same as GET /v1/vehicles/:vin dealerSlug."},"includeSold":{"type":"boolean","description":"When true, return sold tombstone if no live listing. Same as GET /v1/vehicles/:vin includeSold."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Get Vehicle Details"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: vin. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":510,"tokensAfter":514},{"name":"get_vehicle_history","fixed":{"name":"get_vehicle_history","description":"Pass vertical when the request names one. Use the vertical facet to narrow a blended result. Skip a tool that has no data for that vertical.\n\nGet OpenDealer listing history for a VIN or listing id: price changes, days on lot, and status.\n\nAnswers \"has this VIN dropped in price\" and days-on-lot narratives from retained snapshots (including vehicles that left a dealer feed). Returns:\n• Chronological price history with per-snapshot changes\n• Days on market / lot signals and badges (price_drop, long","inputSchema":{"type":"object","properties":{"vin":{"description":"17-character Vehicle Identification Number","type":"string"},"dealerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."},"listingId":{"type":"string","maxLength":300,"minLength":1,"description":"Canonical listing id when scoping history to one rooftop"},"dealerSlug":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Get Vehicle Price History"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: vin. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":356,"tokensAfter":360},{"name":"search_vehicles","fixed":{"name":"search_vehicles","description":"Forgiving vehicle search (Meilisearch): natural-language q, typo-tolerant make/model/color, optional structured filters. Use when the shopper query is fuzzy or exploratory.\n\nUse filter_vehicles instead when make/model/year/body/price/location are known — it applies exact hard filters via GET /v1/vehicles and returns trustworthy totals. Listings with zero photos are omitted.\n\nDiscovery order: list_facets / list_research_makes → filter_vehicles (structured) or search_vehicles (exploratory) → get_v","inputSchema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"description":"Free-text natural-language query, or a 17-character VIN for exact listing lookup. For sentences (e.g. \"new black Honda Civic sedan under $45k within 150 miles of 92672\"), price/mileage/year/condition and zip+radius are parsed as hard constraints; make/model/color/body words are matched forgivingly. Explicit structured params override parsed values. Prefer filter_vehicles when make/model/location are already known."},"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude coordinate"},"lng":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude coordinate"},"zip":{"type":"string","pattern":"^[0-9]{5}$","description":"5-digit US ZIP code (e.g., 92688)"},"city":{"type":"string","minLength":1,"description":"City name"},"make":{"type":"string","minLength":1,"description":"Vehicle make (e.g., Honda, Toyota, Tesla)"},"mode":{"enum":["keyword","hybrid"],"type":"string","description":"Search mode. Use hybrid for conceptual queries with little keyword overlap (e.g. \"family hauler good in snow\"). Hard caps still apply as filters. Falls back to keyword if semantic is unavailable."},"near":{"type":"string","minLength":1,"description":"Location string (ZIP or city, state). Same as GET /v1/vehicles/search near."},"page":{"type":"integer","default":1,"maximum":9007199254740991,"minimum":1,"description":"Page number (1-based). Same as GET /v1/vehicles/search page."},"trim":{"type":"string","minLength":1,"description":"Trim level (e.g., EX, Limited, Performance)"},"year":{"type":"integer","maximum":2100,"minimum":1900,"description":"Alias for vehicleModelDate. Same as GET /v1/vehicles/search year."},"class":{"enum":["side-by-side","atv","snowmobile"],"type":"string","description":"Off-road class. Legal when vertical=offroad. side-by-side, atv, or snowmobile."},"color":{"type":"string","minLength":1,"description":"Exterior color (e.g., black, white). Resolved to color families, so \"black\" matches \"Crystal Black Pearl\". Same as GET /v1/vehicles color."},"drive":{"enum":["2wd","4wd","awd"],"type":"string","description":"Drive: 2wd, 4wd, or awd. Legal when vertical=offroad. Same as GET /v2/listings/search drive."},"limit":{"type":"integer","default":25,"maximum":100,"minimum":1,"description":"Maximum number of results to return (1-100, default: 25)"},"model":{"type":"string","minLength":1,"description":"Vehicle model (e.g., Civic, Camry, Model 3). Broad terms match all variants (Civic -> Civic Sedan/Si/Hatchback) unless narrowed by trim."},"seats":{"type":"integer","maximum":12,"minimum":1,"description":"Seating capacity. Legal when vertical=offroad. Same as GET /v2/listings/search seats."},"state":{"description":"2-letter US state code (e.g., CA, TX)","type":"string"},"county":{"type":"string","minLength":1,"description":"County name"},"radius":{"type":"integer","maximum":250,"minimum":1,"description":"Search radius in miles (1-250). Omit to use the platform default of 150 miles, the same as the shop and the Runtime API."},"sortBy":{"enum":["price","vehiclemodeldate","distance","updatedat","mileage","daysonlot","pricechange"],"type":"string","description":"Sort field. Same as GET /v1/vehicles/search sortBy: price, vehiclemodeldate, distance, updatedat, mileage, daysonlot, pricechange."},"subtype":{"enum":["sport","utility","youth"],"type":"string","description":"Off-road sub-type: sport, utility, or youth. Legal when vertical=offroad. Same as GET /v2/listings/search subtype."},"yearMax":{"type":"integer","maximum":2030,"minimum":1990,"description":"Maximum model year. Same as GET /v1/vehicles yearMax."},"yearMin":{"type":"integer","maximum":2030,"minimum":1990,"description":"Minimum model year. Same as GET /v1/vehicles yearMin."},"bodyType":{"enum":["sedan","suv","truck","coupe","van","wagon","convertible","hatchback"],"type":"string","description":"Vehicle body style. Same as GET /v1/vehicles bodyType."},"dealerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Filter to a single dealer UUID. Same as GET /v1/vehicles/search dealerId."},"fuelType":{"enum":["gasoline","diesel","electric","hybrid","plug-in-hybrid"],"type":"string","description":"Fuel type. Same as GET /v1/vehicles fuelType."},"priceMax":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Maximum price in USD. Same as GET /v1/vehicles priceMax."},"priceMin":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Minimum price in USD. Same as GET /v1/vehicles priceMin."},"vertical":{"type":"string","minLength":1,"description":"Shopper vertical. Omit for every public vertical (cars today). Live verticals come from list_verticals."},"certified":{"type":"boolean","description":"Certified pre-owned only. Same as GET /v1/vehicles certified."},"condition":{"enum":["new","used","cpo"],"type":"string","description":"Listing condition. Same as GET /v1/vehicles condition: new, used, or cpo. The value certified is a deprecated alias of cpo."},"hasImages":{"type":"boolean","description":"Listings with zero photos are omitted. Same as GET /v1/vehicles/search hasImages=true."},"sortOrder":{"enum":["asc","desc"],"type":"string","description":"Sort direction. Same as GET /v1/vehicles sortOrder."},"drivetrain":{"enum":["fwd","rwd","awd","4wd"],"type":"string","description":"Drivetrain configuration. Same as GET /v1/vehicles drivetrain."},"mileageMax":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Maximum mileage. Same as GET /v1/vehicles mileageMax."},"transmission":{"enum":["automatic","manual","cvt"],"type":"string","description":"Transmission type. Same as GET /v1/vehicles transmission."},"semanticRatio":{"type":"number","maximum":1,"minimum":0,"description":"Semantic blend weight 0..1 when mode=hybrid (default 0.5). Higher = more conceptual matching."},"priceChangeMax":{"type":"number","description":"Maximum indexed priceChange (USD delta vs first recorded ask; use -1 to exclude unchanged listings)"},"priceChangeMin":{"type":"number","description":"Minimum indexed priceChange (USD delta vs first recorded ask; negative means a drop)"},"displacementMax":{"type":"number","minimum":0,"description":"Maximum engine displacement in cc. Legal when vertical=offroad. Same as GET /v2/listings/search displacementMax."},"displacementMin":{"type":"number","minimum":0,"description":"Minimum engine displacement in cc. Legal when vertical=offroad. Same as GET /v2/listings/search displacementMin."},"inventoryStatus":{"enum":["on_lot","in_transit","sold","reserved","all"],"type":"string","description":"Inventory disposition filter. Same as GET /v1/vehicles/search inventoryStatus."},"vehicleModelDate":{"type":"integer","maximum":2100,"minimum":1900,"description":"Exact model year. Same as GET /v1/vehicles/search vehicleModelDate."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Search Vehicles"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: state. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":2114,"tokensAfter":2118}],"toolsChanged":8,"tokensSaved":0,"todo":[{"tool":"compare_market","params":["make","year","model","cohortKeys"]},{"tool":"filter_vehicles","params":["city"]},{"tool":"get_market_trends","params":["days","year","certified","cohortGrain"]},{"tool":"get_market_velocity","params":["make","limit"]},{"tool":"get_similar_vehicles","params":["limit"]},{"tool":"get_suggested_rates","params":["condition"]},{"tool":"get_vehicle_history","params":["dealerId","dealerSlug"]},{"tool":"list_facets","params":["make","certified"]},{"tool":"list_market_segments","params":["make","page","limit","cohortKey","minSampleSize"]},{"tool":"list_research_makes","params":["limit"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}