Server definition
- Hash
- sha256:e3c3b825ea6af30530ca2f92d8cb1fe4cf572bbff176876a95fd9f6e8d329e7e
- What it is
- What a remote MCP server returned when asked what it offers: 27 tools
The blob, as servednamed by its sha256
{
"instructions": "OpenDealer provides public automotive inventory search (no API key required for read tools).\nPreferred discovery flow: list_facets or list_research_makes/list_research_models → filter_vehicles (map shopper intent onto labeled hard filters) → get_vehicle / get_deal_score / research_model / get_similar_vehicles for depth.\nMarket tools: get_market_overview, list_market_segments, get_market_segment, get_market_trends, get_market_velocity, compare_market, get_suggested_rates.\nThis public connector is read-only. Do not offer to submit leads, contact dealers on the shopper’s behalf, or call write tools.\nCRITICAL: CITE: Each vehicle's cite object is `vin` + `url` (canonical opendealer.shop VDP). 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.\nAttribute the selling dealer on every listing recommendation. Be honest about missing deal scores, YMM-granular recalls, and data gaps.\n\nSHOPPING CO-PILOT BEHAVIOR: Chain tools creatively when the user ask implies more than a raw search. Match intent to a playbook and run the full chain (or explain briefly why a step was skipped). Do not stop after the first inventory hit when analysis, safety, budget, timing, or dealer planning is implied.\n\nIntent → playbook (tool chains):\n- vehicle_dossier: triggers like \"is this a good buy\" → get_vehicle → get_deal_score → get_vehicle_history → check_recalls → get_safety_rating → get_similar_vehicles → get_suggested_rates\n- budget_coach: triggers like \"I can afford $X per month\" → get_suggested_rates → list_facets → filter_vehicles → get_deal_score\n- model_shortlist: triggers like \"best SUVs under\" → get_vehicle_rankings → compare_models → research_model → filter_vehicles → compare_vehicles\n- timing_advisor: triggers like \"is it a good time to buy\" → list_market_segments → get_market_segment → get_market_trends → get_market_velocity → filter_vehicles\n- dealer_crawl: triggers like \"plan dealer visits\" → dealers_near → get_dealer → dealer_inventory → get_deal_score\n- safety_first: triggers like \"safe for family\" → filter_vehicles → get_safety_rating → check_recalls → compare_vehicles\n- price_drop_sniper: triggers like \"price drop\" → filter_vehicles → get_vehicle_history → get_deal_score\n- trim_to_lot: triggers like \"which trim do I need\" → research_model → filter_vehicles → get_vehicle\n- value_hunter: triggers like \"new vs used\" → compare_models → compare_market → get_market_velocity → filter_vehicles\n- closer: triggers like \"pick one for me\" → compare_vehicles → get_similar_vehicles → get_dealer\n\nFull playbook detail: read resource opendealer://assistant/shopping-playbooks, or use MCP prompts vehicle_dossier, budget_coach, model_shortlist, timing_advisor, dealer_crawl, safety_first, price_drop_sniper, trim_to_lot, value_hunter, closer.",
"tools": [
{
"description": "Get NHTSA open safety recalls for a vehicle by VIN.\n\nReturns recall campaigns resolved at the year/make/model level (YMM-granular). A recall listed for the model year may not apply to every VIN — the response includes NHTSA's disclaimer and campaign details (component, summary, remedy status, Park It / Park Outside advisories).\n\nUse this when a shopper asks about recalls, safety campaigns, or whether a specific model has open NHTSA notices. Required step in vehicle_dossier and safety_first playbooks; always include the YMM-granularity disclaimer.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"vin": {
"description": "17-character Vehicle Identification Number",
"pattern": "^[A-HJ-NPR-Z0-9]{17}$",
"type": "string"
}
},
"required": [
"vin"
],
"type": "object"
},
"name": "check_recalls",
"outputSchema": {
"additionalProperties": true,
"properties": {
"count": {
"type": "number"
},
"recalls": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"vin": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Compare pricing across market segments. Provide modelcodes[] or make (optionally with model).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"make": {
"minLength": 1,
"type": "string"
},
"model": {
"minLength": 1,
"type": "string"
},
"modelcodes": {
"items": {
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"type": {
"description": "Vehicle type (New or Used)",
"enum": [
"New",
"Used"
],
"type": "string"
},
"year": {
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"type": "object"
},
"name": "compare_market",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Compare 2-4 vehicle models side by side (model-level, not specific listings).\n\nProvide composite make-model slugs like \"honda-civic\" or \"toyota-corolla\". Returns:\n• Winner-by-dimension deltas: price, fuel economy, horsepower, seating, towing, NHTSA safety, live median listing price\n• Full research payload for each model (trims, MSRPs, specs)\n\nUse this for \"Civic vs Corolla\" style questions. To compare specific listed vehicles by VIN, use compare_vehicles instead.\n\nCRITICAL: Only use the 'url' field from the response for links. NEVER invent or construct URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"models": {
"description": "Composite make-model slugs to compare (e.g., [\"honda-civic\", \"toyota-corolla\"])",
"items": {
"minLength": 3,
"type": "string"
},
"maxItems": 4,
"minItems": 2,
"type": "array"
},
"year": {
"description": "Model year (defaults to the latest year with reference data)",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"required": [
"models"
],
"type": "object"
},
"name": "compare_models",
"outputSchema": {
"additionalProperties": true,
"properties": {
"dimensions": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"models": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Compare 2-5 vehicles side by side.\n\nReturns a structured comparison including specs, price context, and per-vehicle cite fields (vin + shop url).\n\nCRITICAL: CITE: Each vehicle's cite object is `vin` + `url` (canonical opendealer.shop VDP). 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": {
"additionalProperties": false,
"properties": {
"vins": {
"description": "List of VINs to compare (2-5 vehicles)",
"items": {
"description": "17-character Vehicle Identification Number",
"pattern": "^[A-HJ-NPR-Z0-9]{17}$",
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"type": "array"
}
},
"required": [
"vins"
],
"type": "object"
},
"name": "compare_vehicles",
"outputSchema": {
"additionalProperties": true,
"properties": {
"comparison": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"vehicles": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Browse the complete inventory of a specific dealership.\n\nIMPORTANT: Use the exact dealer slug from a previous dealers_near or search_vehicles response. Do NOT guess dealer IDs.\n\nUseful when a user wants to see what a particular dealer has in stock.\nSupports all vehicle filters (make, model, price, etc.).\n\nCRITICAL: CITE: Each vehicle's cite object is `vin` + `url` (canonical opendealer.shop VDP). 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": {
"additionalProperties": false,
"properties": {
"body_type": {
"description": "Vehicle body style",
"enum": [
"Sedan",
"SUV",
"Truck",
"Coupe",
"Van",
"Wagon",
"Convertible",
"Hatchback"
],
"type": "string"
},
"certified": {
"description": "Filter for CPO vehicles",
"type": "boolean"
},
"condition": {
"description": "Vehicle condition",
"enum": [
"New",
"Used",
"Certified"
],
"type": "string"
},
"dealerId": {
"description": "Dealer identifier (UUID or slug like \"rsm-honda\")",
"minLength": 3,
"type": "string"
},
"drivetrain": {
"description": "Drivetrain configuration",
"enum": [
"FWD",
"RWD",
"AWD",
"4WD"
],
"type": "string"
},
"fuel_type": {
"description": "Fuel type",
"enum": [
"Gasoline",
"Diesel",
"Electric",
"Hybrid",
"Plug-in Hybrid"
],
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of results to return (1-100, default: 25)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"make": {
"description": "Vehicle make",
"minLength": 1,
"type": "string"
},
"mileage_max": {
"description": "Maximum mileage",
"minimum": 0,
"type": "integer"
},
"model": {
"description": "Vehicle model",
"minLength": 1,
"type": "string"
},
"offset": {
"default": 0,
"description": "Number of results to skip for pagination",
"minimum": 0,
"type": "integer"
},
"price_max": {
"description": "Maximum price in USD",
"minimum": 0,
"type": "integer"
},
"price_min": {
"description": "Minimum price in USD",
"minimum": 0,
"type": "integer"
},
"sort": {
"default": "relevance",
"description": "Sort order",
"enum": [
"relevance",
"price_asc",
"price_desc",
"year_desc",
"mileage_asc"
],
"type": "string"
},
"transmission": {
"description": "Transmission type",
"enum": [
"Automatic",
"Manual",
"CVT"
],
"type": "string"
},
"trim": {
"description": "Trim level",
"minLength": 1,
"type": "string"
},
"view": {
"default": "standard",
"description": "Response detail: standard (features/gallery, default), llm (compact), minimal",
"enum": [
"llm",
"standard",
"minimal"
],
"type": "string"
},
"year_max": {
"description": "Maximum model year",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
},
"year_min": {
"description": "Minimum model year",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"required": [
"dealerId"
],
"type": "object"
},
"name": "dealer_inventory",
"outputSchema": {
"additionalProperties": true,
"properties": {
"items": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"results": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
},
"totalResults": {
"type": "number"
},
"vehicles": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"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• Distance from search location\n• Current inventory count\n• Business hours (when available)",
"inputSchema": {
"additionalProperties": false,
"properties": {
"city": {
"description": "City name",
"minLength": 1,
"type": "string"
},
"county": {
"description": "County name",
"minLength": 1,
"type": "string"
},
"lat": {
"description": "Latitude coordinate",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"default": 50,
"description": "Maximum number of dealers to return (1-200, default: 50)",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"lng": {
"description": "Longitude coordinate",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"offset": {
"default": 0,
"description": "Number of results to skip for pagination",
"minimum": 0,
"type": "integer"
},
"radius": {
"default": 50,
"description": "Search radius in miles (1-250, default: 50)",
"maximum": 250,
"minimum": 1,
"type": "integer"
},
"state": {
"description": "2-letter US state code (e.g., CA, TX)",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"zip": {
"description": "5-digit US ZIP code (e.g., 92688)",
"pattern": "^[0-9]{5}$",
"type": "string"
}
},
"type": "object"
},
"name": "dealers_near",
"outputSchema": {
"additionalProperties": true,
"properties": {
"dealers": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"items": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Preferred structured inventory lookup when make/model/year/color/location are known.\n\nUses exact hard filters (keyword mode, no embeddings) via the Runtime /v1/llm/filter path. Resolve exact make/model names with list_research_makes and list_research_models first. Map shopper prose onto labeled keys (make, model, body, price_max, location); do not dump the sentence into search_vehicles.\n\nOften the first step in shopping playbooks (budget_coach, safety_first, price_drop_sniper, dealer_crawl). After results, chain get_deal_score / get_vehicle_history / check_recalls / compare_vehicles when the user needs a recommendation, not just a list. See opendealer://assistant/shopping-playbooks.\n\nCRITICAL: CITE: Each vehicle's cite object is `vin` + `url` (canonical opendealer.shop VDP). 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": {
"additionalProperties": false,
"properties": {
"body_type": {
"description": "Vehicle body style",
"enum": [
"Sedan",
"SUV",
"Truck",
"Coupe",
"Van",
"Wagon",
"Convertible",
"Hatchback"
],
"type": "string"
},
"certified": {
"type": "boolean"
},
"city": {
"minLength": 1,
"type": "string"
},
"color": {
"minLength": 1,
"type": "string"
},
"condition": {
"description": "Vehicle condition",
"enum": [
"New",
"Used",
"Certified"
],
"type": "string"
},
"drivetrain": {
"description": "Drivetrain configuration",
"enum": [
"FWD",
"RWD",
"AWD",
"4WD"
],
"type": "string"
},
"fuel_type": {
"description": "Fuel type",
"enum": [
"Gasoline",
"Diesel",
"Electric",
"Hybrid",
"Plug-in Hybrid"
],
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum number of results to return (1-100, default: 25)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"make": {
"description": "Vehicle make (resolve via list_research_makes if unsure)",
"minLength": 1,
"type": "string"
},
"mileage_max": {
"minimum": 0,
"type": "integer"
},
"model": {
"description": "Vehicle model (resolve via list_research_models if unsure)",
"minLength": 1,
"type": "string"
},
"offset": {
"default": 0,
"description": "Number of results to skip for pagination",
"minimum": 0,
"type": "integer"
},
"price_max": {
"minimum": 0,
"type": "integer"
},
"price_min": {
"minimum": 0,
"type": "integer"
},
"radius": {
"default": 50,
"description": "Search radius in miles (1-250, default: 50)",
"maximum": 250,
"minimum": 1,
"type": "integer"
},
"sort": {
"default": "relevance",
"description": "Sort order for results",
"enum": [
"relevance",
"price_asc",
"price_desc",
"year_desc",
"mileage_asc",
"distance_asc"
],
"type": "string"
},
"state": {
"description": "2-letter US state code (e.g., CA, TX)",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"transmission": {
"description": "Transmission type",
"enum": [
"Automatic",
"Manual",
"CVT"
],
"type": "string"
},
"trim": {
"minLength": 1,
"type": "string"
},
"year_max": {
"maximum": 2030,
"minimum": 1990,
"type": "integer"
},
"year_min": {
"maximum": 2030,
"minimum": 1990,
"type": "integer"
},
"zip": {
"description": "5-digit US ZIP code (e.g., 92688)",
"pattern": "^[0-9]{5}$",
"type": "string"
}
},
"type": "object"
},
"name": "filter_vehicles",
"outputSchema": {
"additionalProperties": true,
"properties": {
"items": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"results": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
},
"totalResults": {
"type": "number"
},
"vehicles": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Get 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 dealer_crawl playbooks. Pair with get_vehicle_history and check_recalls for buy/no-buy answers.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"vin": {
"description": "17-character Vehicle Identification Number",
"pattern": "^[A-HJ-NPR-Z0-9]{17}$",
"type": "string"
}
},
"required": [
"vin"
],
"type": "object"
},
"name": "get_deal_score",
"outputSchema": {
"additionalProperties": true,
"properties": {
"dealScore": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"priceHistory": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"vin": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Get comprehensive information about a specific dealership.\n\nReturns Google-enriched dealer knowledge optimized for assistants:\n• Name, address, phone, website\n• Google rating, review count, hours, business status\n• Inventory count and OpenDealer profile links\n• Contact points for sales / customer service\n\nUse this when a shopper asks \"tell me about X dealership\" or needs hours/ratings for a known dealer. Prefer a slug from dealers_near or search results.\n\nCRITICAL: Only use URL fields from the response (website, urls.*). NEVER invent or construct URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"dealerId": {
"description": "Dealer identifier: UUID or slug (e.g., \"rsm-honda\"). Prefer the slug from dealers_near or search results.",
"minLength": 3,
"type": "string"
}
},
"required": [
"dealerId"
],
"type": "object"
},
"name": "get_dealer",
"outputSchema": {
"additionalProperties": true,
"properties": {
"aggregateRating": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"inventory": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"name": {
"type": "string"
},
"openingHours": {},
"slug": {
"type": "string"
},
"telephone": {
"type": "string"
},
"urls": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Get high-level automotive market statistics.\n\nReturns aggregated market data including:\n• Total vehicles and dealers in inventory\n• Average pricing by segment\n• Top makes by volume\n• Market velocity indicators\n• New vs Used breakdown",
"inputSchema": {
"additionalProperties": false,
"properties": {
"make": {
"description": "Filter by vehicle make",
"minLength": 1,
"type": "string"
},
"type": {
"description": "Filter by vehicle type",
"enum": [
"New",
"Used"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_overview",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Get detailed pricing and market data for a specific vehicle segment.\n\nUseful for understanding fair market value for a make/model/year combination.\nReturns pricing statistics including:\n• Average, median, min, max prices\n• Price percentiles (10th, 25th, 75th, 90th)\n• Average mileage and days on lot\n• Certified vs non-certified pricing difference",
"inputSchema": {
"additionalProperties": false,
"properties": {
"certified": {
"description": "Filter for certified vehicles",
"type": "boolean"
},
"modelcode": {
"description": "Model code identifier (unique per make/model/year combination)",
"minLength": 1,
"type": "string"
},
"type": {
"description": "Vehicle type",
"enum": [
"New",
"Used"
],
"type": "string"
},
"year": {
"description": "Model year",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"required": [
"modelcode"
],
"type": "object"
},
"name": "get_market_segment",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Price trends over time for a market segment (modelcode). Returns timeline of median/avg prices and days-on-lot.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"certified": {
"type": "boolean"
},
"days": {
"default": 30,
"maximum": 90,
"minimum": 7,
"type": "integer"
},
"modelcode": {
"description": "Market segment modelcode",
"minLength": 1,
"type": "string"
},
"type": {
"description": "Vehicle type (New or Used)",
"enum": [
"New",
"Used"
],
"type": "string"
},
"year": {
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"required": [
"modelcode"
],
"type": "object"
},
"name": "get_market_trends",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "How quickly vehicles sell by segment (fastest/slowest days on lot). Optional make/type filters.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 20,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"make": {
"minLength": 1,
"type": "string"
},
"type": {
"description": "Vehicle type (New or Used)",
"enum": [
"New",
"Used"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_velocity",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Get NHTSA 5-Star Safety Ratings for a year/make/model (no VIN required).\n\nAnswers questions like \"is a 2023 RAV4 safe for my family\" with:\n• Overall and crash-test star ratings (when published)\n• Rollover rating / possibility\n• NHTSA-evaluated ADAS availability (ESC, FCW, LDW)\n\nRatings are model-year granular from the NHTSA NCAP cache. If no confident rating exists, the tool reports that honestly rather than guessing. For VIN-specific listing details use get_vehicle; for open recalls use check_recalls.\n\nCRITICAL: Only use the 'sourceUrl' field from the response for NHTSA links. NEVER invent URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"make": {
"description": "Vehicle make (e.g., \"Toyota\", \"Honda\")",
"minLength": 1,
"type": "string"
},
"model": {
"description": "Vehicle model (e.g., \"RAV4\", \"Civic\")",
"minLength": 1,
"type": "string"
},
"year": {
"description": "Model year (e.g., 2023)",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"required": [
"year",
"make",
"model"
],
"type": "object"
},
"name": "get_safety_rating",
"outputSchema": {
"additionalProperties": true,
"properties": {
"available": {
"type": "boolean"
},
"make": {
"type": "string"
},
"message": {
"type": "string"
},
"model": {
"type": "string"
},
"safety": {
"anyOf": [
{
"additionalProperties": true,
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"sourceUrl": {
"type": "string"
},
"year": {
"type": "number"
}
},
"required": [
"available",
"safety"
],
"type": "object"
}
},
{
"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` (canonical opendealer.shop VDP). 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": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 6,
"maximum": 24,
"minimum": 1,
"type": "integer"
},
"vin": {
"description": "17-character Vehicle Identification Number",
"pattern": "^[A-HJ-NPR-Z0-9]{17}$",
"type": "string"
}
},
"required": [
"vin"
],
"type": "object"
},
"name": "get_similar_vehicles",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "National average suggested auto loan APRs (not a credit offer). Optional filters: condition (new/used), term_months (36–84), credit_tier.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"condition": {
"enum": [
"new",
"used"
],
"type": "string"
},
"credit_tier": {
"enum": [
"excellent",
"good",
"average",
"fair"
],
"type": "string"
},
"term_months": {
"enum": [
36,
48,
60,
72,
84
],
"type": "number"
}
},
"type": "object"
},
"name": "get_suggested_rates",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Get complete details for a specific vehicle by VIN.\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)\n• NHTSA open recall summary (YMM-granular, when available)\n• Dealer contact information\n\nStarting point for the vehicle_dossier playbook. For buy/no-buy questions, continue with get_deal_score → get_vehicle_history → check_recalls → get_similar_vehicles.\n\nCRITICAL: CITE: Each vehicle's cite object is `vin` + `url` (canonical opendealer.shop VDP). 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": {
"additionalProperties": false,
"properties": {
"view": {
"default": "llm",
"description": "Response format: llm (optimized for AI), standard (full details), minimal (compact)",
"enum": [
"llm",
"standard",
"minimal"
],
"type": "string"
},
"vin": {
"description": "17-character Vehicle Identification Number",
"pattern": "^[A-HJ-NPR-Z0-9]{17}$",
"type": "string"
}
},
"required": [
"vin"
],
"type": "object"
},
"name": "get_vehicle",
"outputSchema": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vehicleIdentificationNumber": {
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Get OpenDealer listing history for a VIN: 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_on_lot)\n• Active vs no-longer-listed status when known\n\nDoes not invent a deal score for sold vehicles — use get_deal_score for live market scoring. Essential for price_drop_sniper and vehicle_dossier playbooks when shoppers ask about reductions or negotiation leverage. CRITICAL: Only use URL fields from the response when present. NEVER invent URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"vin": {
"description": "17-character Vehicle Identification Number",
"pattern": "^[A-HJ-NPR-Z0-9]{17}$",
"type": "string"
}
},
"required": [
"vin"
],
"type": "object"
},
"name": "get_vehicle_history",
"outputSchema": {
"additionalProperties": true,
"properties": {
"badges": {
"items": {
"type": "string"
},
"type": "array"
},
"priceHistory": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"status": {
"enum": [
"active",
"sold"
],
"type": "string"
},
"summary": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"vin": {
"type": "string"
}
},
"required": [
"vin"
],
"type": "object"
}
},
{
"description": "Get data-driven vehicle rankings (e.g., best SUVs, most fuel-efficient cars).\n\nCall without arguments to list all ranking categories. Pass a category slug (e.g., \"best-suvs\") for the full scored ranking.\n\nRankings are computed from public data with a published methodology: NHTSA safety ratings, EPA fuel economy, manufacturer pricing, and live market availability. There is no paid placement; each entry includes its transparent score breakdown.\n\nCRITICAL: Only use the 'url' field from the response for links. NEVER invent or construct URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Ranking category slug (e.g., \"best-suvs\"). Omit to list all available categories.",
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "get_vehicle_rankings",
"outputSchema": {
"additionalProperties": true,
"properties": {
"categories": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"category": {
"type": "string"
},
"rankings": {
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"type": "array"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Discover available filter values and counts (makes, body types, fuel types, price/year ranges) for the live inventory.\n\nCall this before filter_vehicles when you need valid dimension values. Optional make/near/radius scopes the facet counts.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"certified": {
"type": "boolean"
},
"condition": {
"description": "Vehicle condition",
"enum": [
"New",
"Used",
"Certified"
],
"type": "string"
},
"make": {
"minLength": 1,
"type": "string"
},
"near": {
"description": "Location string (ZIP or city, state) for geo-scoped facets",
"minLength": 1,
"type": "string"
},
"radius": {
"default": 50,
"description": "Search radius in miles (1-250, default: 50)",
"maximum": 250,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "list_facets",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Browse market segments with pricing statistics (modelcode, median price, sample size). Use to discover modelcodes for get_market_segment / get_market_trends.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"make": {
"minLength": 1,
"type": "string"
},
"minSampleSize": {
"minimum": 1,
"type": "integer"
},
"modelcode": {
"minLength": 1,
"type": "string"
},
"page": {
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "list_market_segments",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Browse the research catalog of vehicle makes (with model and inventory counts). Use to resolve exact make names/slugs before filter_vehicles or research_model.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Optional substring filter on make name/slug",
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "list_research_makes",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "List models for a make from the research catalog (MSRP/body summaries). Use before filter_vehicles or research_model when the model name is uncertain.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"make": {
"description": "Make name or slug (e.g. honda)",
"minLength": 1,
"type": "string"
}
},
"required": [
"make"
],
"type": "object"
},
"name": "list_research_models",
"outputSchema": {
"additionalProperties": true,
"properties": {},
"type": "object"
}
},
{
"description": "Get the full research payload for a vehicle model (not a specific listing).\n\nReturns manufacturer reference data joined with live market data:\n• All trims with MSRPs, engine/body specs, and EPA fuel economy\n• NHTSA 5-Star safety ratings and open recall count\n• Live inventory count and price range on OpenDealer\n\nUse this when a shopper asks \"tell me about the Honda Civic\", \"what trims does the RAV4 come in\", or \"how much is a 2025 F-150\". For a specific listed vehicle, use get_vehicle with a VIN instead.\n\nCRITICAL: Only use the 'url' field from the response for links. NEVER invent or construct URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"make": {
"description": "Vehicle make slug or name (e.g., \"honda\", \"mercedes-benz\")",
"minLength": 1,
"type": "string"
},
"model": {
"description": "Vehicle model slug or name (e.g., \"civic\", \"e-class\")",
"minLength": 1,
"type": "string"
},
"year": {
"description": "Model year (defaults to the latest year with reference data)",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"required": [
"make",
"model"
],
"type": "object"
},
"name": "research_model",
"outputSchema": {
"additionalProperties": true,
"properties": {
"make": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"model": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"safety": {
"anyOf": [
{
"additionalProperties": true,
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"url": {
"type": "string"
},
"year": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "Search for vehicles across dealerships (Meilisearch-backed NL + structured filters).\n\nPreferred tool order for assistants:\n1. list_facets or list_research_makes/list_research_models to discover valid values\n2. filter_vehicles (map shopper intent onto labeled hard filters)\n3. get_vehicle / get_deal_score / research_model for depth\n\nWhen the ask implies analysis (good deal?, safety, budget, timing, dealer plan), continue with a shopping playbook from initialize instructions or resource opendealer://assistant/shopping-playbooks — do not stop at raw search results.\n\nLocation modes (choose ONE): zip+radius, lat+lng+radius, city+state+radius, county+state+radius — or embed location in q.\n\nForgiving matching: model variants, color families, typo tolerance. Hard caps (price_max, year, radius) are never relaxed. Prefer filter_vehicles; do not dump shopper prose into q.\n\nCRITICAL: CITE: Each vehicle's cite object is `vin` + `url` (canonical opendealer.shop VDP). 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": {
"additionalProperties": false,
"properties": {
"body_type": {
"description": "Vehicle body style",
"enum": [
"Sedan",
"SUV",
"Truck",
"Coupe",
"Van",
"Wagon",
"Convertible",
"Hatchback"
],
"type": "string"
},
"certified": {
"description": "Filter for Certified Pre-Owned vehicles only",
"type": "boolean"
},
"city": {
"description": "City name",
"minLength": 1,
"type": "string"
},
"color": {
"description": "Exterior color (e.g., black, white). Resolved to color families, so \"black\" matches \"Crystal Black Pearl\".",
"minLength": 1,
"type": "string"
},
"condition": {
"description": "Vehicle condition",
"enum": [
"New",
"Used",
"Certified"
],
"type": "string"
},
"county": {
"description": "County name",
"minLength": 1,
"type": "string"
},
"drivetrain": {
"description": "Drivetrain configuration",
"enum": [
"FWD",
"RWD",
"AWD",
"4WD"
],
"type": "string"
},
"fuel_type": {
"description": "Fuel type",
"enum": [
"Gasoline",
"Diesel",
"Electric",
"Hybrid",
"Plug-in Hybrid"
],
"type": "string"
},
"lat": {
"description": "Latitude coordinate",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"default": 25,
"description": "Maximum number of results to return (1-100, default: 25)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"lng": {
"description": "Longitude coordinate",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"make": {
"description": "Vehicle make (e.g., Honda, Toyota, Tesla)",
"minLength": 1,
"type": "string"
},
"mileage_max": {
"description": "Maximum mileage",
"minimum": 0,
"type": "integer"
},
"mode": {
"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.",
"enum": [
"keyword",
"hybrid"
],
"type": "string"
},
"model": {
"description": "Vehicle model (e.g., Civic, Camry, Model 3). Broad terms match all variants (Civic -> Civic Sedan/Si/Hatchback) unless narrowed by trim.",
"minLength": 1,
"type": "string"
},
"offset": {
"default": 0,
"description": "Number of results to skip for pagination",
"minimum": 0,
"type": "integer"
},
"price_max": {
"description": "Maximum price in USD",
"minimum": 0,
"type": "integer"
},
"price_min": {
"description": "Minimum price in USD",
"minimum": 0,
"type": "integer"
},
"q": {
"description": "Free-text natural-language query. You can pass a whole sentence (e.g. \"new black Honda Civic sedan under $45k within 150 miles of 92672\"): price/mileage/year/condition and zip+radius are parsed out as hard constraints, while make/model/color/body words are matched forgivingly. Explicit structured params override anything parsed from the sentence.",
"minLength": 1,
"type": "string"
},
"radius": {
"default": 50,
"description": "Search radius in miles (1-250, default: 50)",
"maximum": 250,
"minimum": 1,
"type": "integer"
},
"semanticRatio": {
"description": "Semantic blend weight 0..1 when mode=hybrid (default 0.5). Higher = more conceptual matching.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"sort": {
"default": "relevance",
"description": "Sort order for results",
"enum": [
"relevance",
"price_asc",
"price_desc",
"year_desc",
"mileage_asc",
"distance_asc"
],
"type": "string"
},
"state": {
"description": "2-letter US state code (e.g., CA, TX)",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"transmission": {
"description": "Transmission type",
"enum": [
"Automatic",
"Manual",
"CVT"
],
"type": "string"
},
"trim": {
"description": "Trim level (e.g., EX, Limited, Performance)",
"minLength": 1,
"type": "string"
},
"useLlmSearchPath": {
"description": "Legacy. Do not set. Prefer filter_vehicles with labeled hard filters.",
"type": "boolean"
},
"view": {
"default": "llm",
"description": "Response format: llm (optimized for AI), standard (full details), minimal (compact)",
"enum": [
"llm",
"standard",
"minimal"
],
"type": "string"
},
"year_max": {
"description": "Maximum model year",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
},
"year_min": {
"description": "Minimum model year",
"maximum": 2030,
"minimum": 1990,
"type": "integer"
},
"zip": {
"description": "5-digit US ZIP code (e.g., 92688)",
"pattern": "^[0-9]{5}$",
"type": "string"
}
},
"type": "object"
},
"name": "search_vehicles",
"outputSchema": {
"additionalProperties": true,
"properties": {
"items": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"results": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
},
"totalResults": {
"type": "number"
},
"vehicles": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "App-only: paginate or refresh vehicle results using the same Runtime paths as filter_vehicles / search_vehicles (geo-correct). No widget remount — omit resourceUri. Not for model use.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"body_type": {
"description": "Vehicle body style",
"enum": [
"Sedan",
"SUV",
"Truck",
"Coupe",
"Van",
"Wagon",
"Convertible",
"Hatchback"
],
"type": "string"
},
"certified": {
"type": "boolean"
},
"city": {
"minLength": 1,
"type": "string"
},
"color": {
"minLength": 1,
"type": "string"
},
"condition": {
"description": "Vehicle condition",
"enum": [
"New",
"Used",
"Certified"
],
"type": "string"
},
"county": {
"minLength": 1,
"type": "string"
},
"drivetrain": {
"description": "Drivetrain configuration",
"enum": [
"FWD",
"RWD",
"AWD",
"4WD"
],
"type": "string"
},
"fuel_type": {
"description": "Fuel type",
"enum": [
"Gasoline",
"Diesel",
"Electric",
"Hybrid",
"Plug-in Hybrid"
],
"type": "string"
},
"lat": {
"description": "Latitude coordinate",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"default": 25,
"description": "Maximum number of results to return (1-100, default: 25)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"lng": {
"description": "Longitude coordinate",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"make": {
"minLength": 1,
"type": "string"
},
"mileage_max": {
"minimum": 0,
"type": "integer"
},
"mode": {
"enum": [
"keyword",
"hybrid"
],
"type": "string"
},
"model": {
"minLength": 1,
"type": "string"
},
"offset": {
"default": 0,
"description": "Number of results to skip for pagination",
"minimum": 0,
"type": "integer"
},
"price_max": {
"minimum": 0,
"type": "integer"
},
"price_min": {
"minimum": 0,
"type": "integer"
},
"q": {
"minLength": 1,
"type": "string"
},
"radius": {
"default": 50,
"description": "Search radius in miles (1-250, default: 50)",
"maximum": 250,
"minimum": 1,
"type": "integer"
},
"semanticRatio": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"sort": {
"default": "relevance",
"description": "Sort order for results",
"enum": [
"relevance",
"price_asc",
"price_desc",
"year_desc",
"mileage_asc",
"distance_asc"
],
"type": "string"
},
"source": {
"default": "filter_vehicles",
"description": "Which model-facing tool path to reuse for this page request",
"enum": [
"filter_vehicles",
"search_vehicles"
],
"type": "string"
},
"state": {
"description": "2-letter US state code (e.g., CA, TX)",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"transmission": {
"description": "Transmission type",
"enum": [
"Automatic",
"Manual",
"CVT"
],
"type": "string"
},
"trim": {
"minLength": 1,
"type": "string"
},
"useLlmSearchPath": {
"type": "boolean"
},
"view": {
"default": "llm",
"description": "Response format: llm (optimized for AI), standard (full details), minimal (compact)",
"enum": [
"llm",
"standard",
"minimal"
],
"type": "string"
},
"year_max": {
"maximum": 2030,
"minimum": 1990,
"type": "integer"
},
"year_min": {
"maximum": 2030,
"minimum": 1990,
"type": "integer"
},
"zip": {
"description": "5-digit US ZIP code (e.g., 92688)",
"pattern": "^[0-9]{5}$",
"type": "string"
}
},
"type": "object"
},
"name": "ui_page_vehicle_results",
"outputSchema": {
"additionalProperties": true,
"properties": {
"items": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"results": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
},
"totalResults": {
"type": "number"
},
"vehicles": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"description": "Canonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.",
"type": "string"
},
"vin": {
"description": "17-character VIN. Part of the cite object with url.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "App-only: record a vehicle selection from the results widget. Not for model use — hosts filter via _meta.ui.visibility.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"make": {
"minLength": 1,
"type": "string"
},
"model": {
"minLength": 1,
"type": "string"
},
"name": {
"minLength": 1,
"type": "string"
},
"url": {
"minLength": 1,
"type": "string"
},
"vin": {
"description": "17-character Vehicle Identification Number",
"pattern": "^[A-HJ-NPR-Z0-9]{17}$",
"type": "string"
},
"year": {
"maximum": 2030,
"minimum": 1990,
"type": "integer"
}
},
"required": [
"vin"
],
"type": "object"
},
"name": "ui_select_vehicle",
"outputSchema": {
"additionalProperties": false,
"properties": {
"action": {
"const": "ui_select_vehicle",
"type": "string"
},
"message": {
"type": "string"
},
"selected": {
"additionalProperties": false,
"properties": {
"make": {
"type": "string"
},
"model": {
"type": "string"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"vin": {
"type": "string"
},
"year": {
"type": "number"
}
},
"required": [
"vin"
],
"type": "object"
}
},
"required": [
"selected",
"action",
"message"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:e3c3b825ea6af30530ca2f92d8cb1fe4cf572bbff176876a95fd9f6e8d329e7e | sha256sum