Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

OpenDealer MCP Server

REMOTE · MCP.OPENDEALER.APP · SCANNED SEP 20

Automotive inventory search for AI assistants: vehicles, dealers, deals, and market data.

0 this week 88 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 6067 tokens (~151/item across 40 items; 27 tools + 13 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage91
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 70% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 27 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

How do I install the OpenDealer MCP Server server?

OpenDealer MCP Server is a hosted endpoint at https://mcp.opendealer.app/rpc, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.opendealer.app

# add to Claude Code
claude mcp add --transport http app-opendealer-mcp 'https://mcp.opendealer.app/rpc'
// .cursor/mcp.json
{
  "mcpServers": {
    "app-opendealer-mcp": {
      "url": "https://mcp.opendealer.app/rpc"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "app-opendealer-mcp": {
      "type": "http",
      "url": "https://mcp.opendealer.app/rpc"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.app-opendealer-mcp]
url = "https://mcp.opendealer.app/rpc"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-opendealer-mcp": {
      "type": "remote",
      "url": "https://mcp.opendealer.app/rpc",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add app-opendealer-mcp --url 'https://mcp.opendealer.app/rpc' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  app-opendealer-mcp:
    url: "https://mcp.opendealer.app/rpc"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "app-opendealer-mcp": {
      "Transport": "http",
      "Url": "https://mcp.opendealer.app/rpc"
    }
  }
}
# add to Vellum
assistant mcp add app-opendealer-mcp -t streamable-http -u 'https://mcp.opendealer.app/rpc'
// mcp.json
{
  "mcpServers": {
    "app-opendealer-mcp": {
      "type": "http",
      "url": "https://mcp.opendealer.app/rpc"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 29 Aug 26 +1
    • Stability: fail → pass security
  • 27 Aug 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “filter_vehicles” rewrote its description, which is the text the model reads security
    • Tool “get_similar_vehicles” rewrote its description, which is the text the model reads security
    • Tool “search_vehicles” rewrote its description, which is the text the model reads security
    • “search_vehicles” reworded the description of “useLlmSearchPath” cosmetic
  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 86.

  • 23 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 76 to 79.

  • 18 Aug 26 0
    • Resource “Dealer Inventory Carousel” now points somewhere else: ui://opendealer/dealer-profile@b6fb80b9 → ui://opendealer/dealer-profile@5d34b585 security
    • Resource “Vehicle Results Carousel” now points somewhere else: ui://opendealer/vehicle-search@bc8dd85f → ui://opendealer/vehicle-search@b7cf0b21 security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “compare_vehicles” rewrote its description, which is the text the model reads security
    • Tool “dealer_inventory” rewrote its description, which is the text the model reads security
    • Tool “filter_vehicles” rewrote its description, which is the text the model reads security
    • Tool “get_similar_vehicles” rewrote its description, which is the text the model reads security
    • Tool “get_vehicle” rewrote its description, which is the text the model reads security
    • Tool “search_vehicles” rewrote its description, which is the text the model reads security
  • 15 Aug 26 0
    • Resource “Deal Score Widget” now points somewhere else: ui://opendealer/deal-score@f65e4128 → ui://opendealer/deal-score@c86aaaa2 security
    • Resource “Dealer Inventory Carousel” now points somewhere else: ui://opendealer/dealer-profile@5d668905 → ui://opendealer/dealer-profile@b6fb80b9 security
    • Resource “Vehicle Results Carousel” now points somewhere else: ui://opendealer/vehicle-search@808f536d → ui://opendealer/vehicle-search@bc8dd85f security
  • 14 Aug 26 0
    • Resource “Deal Score Widget” now points somewhere else: ui://opendealer/deal-score@a4a068f5 → ui://opendealer/deal-score@f65e4128 security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://mcp.opendealer.app/rpc

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=opendealer.app CN=WE1,O=Google Trust Services,C=US 31 Jul 2026 29 Oct 2026 ECDSA 256 ECDSA-SHA256 c3d09bda7f1136a40eb4ae3b9da03d8c
SANs: opendealer.app, *.opendealer.app
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.opendealer.app. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
opendealer.app. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data: https:;object-src 'none';script-src 'self' 'unsafe-inline' https://unpkg.com;script-src-attr 'none';style-src 'self' 'unsafe-inline' https://unpkg.com;upgrade-insecure-requests;connect-src 'self' https:
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy no-referrer

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.opendealer.app/rpc Verified 200
http (plaintext) http://mcp.opendealer.app/rpc HTTPS enforced 301 https://mcp.opendealer.app/rpc
MCP tools · 27 exposed · ~5,104 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_recalls ~140

Get NHTSA open safety recalls for a vehicle by VIN. Returns 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). Use 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.

NameTypeReqDescription
vinstringyes17-character Vehicle Identification Number
NameTypeReqDescription
countnumber
recallsarray
vinstring

No examples provided.

compare_market ~68

Compare pricing across market segments. Provide modelcodes[] or make (optionally with model).

NameTypeReqDescription
makestring
modelstring
modelcodesarray
typestringVehicle type (New or Used)
yearinteger

Structured output declared, but exposes no named fields.

No examples provided.

compare_models ~189

Compare 2-4 vehicle models side by side (model-level, not specific listings). Provide composite make-model slugs like "honda-civic" or "toyota-corolla". Returns: • Winner-by-dimension deltas: price, fuel economy, horsepower, seating, towing, NHTSA safety, live median listing price • Full research payload for each model (trims, MSRPs, specs) Use this for "Civic vs Corolla" style questions. To compare specific listed vehicles by VIN, use compare_vehicles instead. CRITICAL: Only use the 'url' field from the response for links. NEVER invent or construct URLs.

NameTypeReqDescription
modelsarrayyesComposite make-model slugs to compare (e.g., ["honda-civic", "toyota-corolla"])
yearintegerModel year (defaults to the latest year with reference data)
NameTypeReqDescription
dimensionsarray
modelsarray

No examples provided.

compare_vehicles ~139

Compare 2-5 vehicles side by side. Returns a structured comparison including specs, price context, and per-vehicle cite fields (vin + shop url). CRITICAL: 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.

NameTypeReqDescription
vinsarrayyesList of VINs to compare (2-5 vehicles)
NameTypeReqDescription
comparisonobject
vehiclesarray

No examples provided.

dealer_inventory ~383

Browse the complete inventory of a specific dealership. IMPORTANT: Use the exact dealer slug from a previous dealers_near or search_vehicles response. Do NOT guess dealer IDs. Useful when a user wants to see what a particular dealer has in stock. Supports all vehicle filters (make, model, price, etc.). CRITICAL: 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.

NameTypeReqDescription
body_typestringVehicle body style
certifiedbooleanFilter for CPO vehicles
conditionstringVehicle condition
dealerIdstringyesDealer identifier (UUID or slug like "rsm-honda")
drivetrainstringDrivetrain configuration
fuel_typestringFuel type
limitintegerMaximum number of results to return (1-100, default: 25)
makestringVehicle make
mileage_maxintegerMaximum mileage
modelstringVehicle model
offsetintegerNumber of results to skip for pagination
price_maxintegerMaximum price in USD
price_minintegerMinimum price in USD
sortstringSort order
transmissionstringTransmission type
trimstringTrim level
viewstringResponse detail: standard (features/gallery, default), llm (compact), minimal
year_maxintegerMaximum model year
year_minintegerMinimum model year
NameTypeReqDescription
itemsarray
resultsarray
totalnumber
totalResultsnumber
vehiclesarray

No examples provided.

dealers_near ~214

Find dealerships near a location. Location modes (choose ONE): • zip + radius (miles) • lat + lng + radius • city + state + radius • county + state + radius Returns dealer information including: • Name, address, phone, website • Distance from search location • Current inventory count • Business hours (when available)

NameTypeReqDescription
citystringCity name
countystringCounty name
latnumberLatitude coordinate
limitintegerMaximum number of dealers to return (1-200, default: 50)
lngnumberLongitude coordinate
offsetintegerNumber of results to skip for pagination
radiusintegerSearch radius in miles (1-250, default: 50)
statestring2-letter US state code (e.g., CA, TX)
zipstring5-digit US ZIP code (e.g., 92688)
NameTypeReqDescription
dealersarray
itemsarray
totalnumber

No examples provided.

filter_vehicles ~501

Preferred structured inventory lookup when make/model/year/color/location are known. Uses 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. Often 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. CRITICAL: 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.

NameTypeReqDescription
body_typestringVehicle body style
certifiedboolean
citystring
colorstring
conditionstringVehicle condition
drivetrainstringDrivetrain configuration
fuel_typestringFuel type
limitintegerMaximum number of results to return (1-100, default: 25)
makestringVehicle make (resolve via list_research_makes if unsure)
mileage_maxinteger
modelstringVehicle model (resolve via list_research_models if unsure)
offsetintegerNumber of results to skip for pagination
price_maxinteger
price_mininteger
radiusintegerSearch radius in miles (1-250, default: 50)
sortstringSort order for results
statestring2-letter US state code (e.g., CA, TX)
transmissionstringTransmission type
trimstring
year_maxinteger
year_mininteger
zipstring5-digit US ZIP code (e.g., 92688)
NameTypeReqDescription
itemsarray
resultsarray
totalnumber
totalResultsnumber
vehiclesarray

No examples provided.

get_deal_score ~123

Get AI-powered deal scoring and market insights for a vehicle. Returns comprehensive analysis including: • Deal score (1-100) with rating (Great, Good, Fair, Poor) • Price comparison vs market average • Days on lot analysis • Price history and trends • Similar vehicles in the market Core 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.

NameTypeReqDescription
vinstringyes17-character Vehicle Identification Number
NameTypeReqDescription
dealScoreobject
priceHistoryarray
vinstring

No examples provided.

get_dealer ~156

Get comprehensive information about a specific dealership. Returns Google-enriched dealer knowledge optimized for assistants: • Name, address, phone, website • Google rating, review count, hours, business status • Inventory count and OpenDealer profile links • Contact points for sales / customer service Use 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. CRITICAL: Only use URL fields from the response (website, urls.*). NEVER invent or construct URLs.

NameTypeReqDescription
dealerIdstringyesDealer identifier: UUID or slug (e.g., "rsm-honda"). Prefer the slug from dealers_near or search results.
NameTypeReqDescription
aggregateRatingobject
inventoryobject
namestring
openingHours
slugstring
telephonestring
urlsobject

No examples provided.

get_market_overview ~76

Get high-level automotive market statistics. Returns aggregated market data including: • Total vehicles and dealers in inventory • Average pricing by segment • Top makes by volume • Market velocity indicators • New vs Used breakdown

NameTypeReqDescription
makestringFilter by vehicle make
typestringFilter by vehicle type

Structured output declared, but exposes no named fields.

No examples provided.

get_market_segment ~132

Get detailed pricing and market data for a specific vehicle segment. Useful for understanding fair market value for a make/model/year combination. Returns pricing statistics including: • Average, median, min, max prices • Price percentiles (10th, 25th, 75th, 90th) • Average mileage and days on lot • Certified vs non-certified pricing difference

NameTypeReqDescription
certifiedbooleanFilter for certified vehicles
modelcodestringyesModel code identifier (unique per make/model/year combination)
typestringVehicle type
yearintegerModel year

Structured output declared, but exposes no named fields.

No examples provided.

get_market_trends ~81

Price trends over time for a market segment (modelcode). Returns timeline of median/avg prices and days-on-lot.

NameTypeReqDescription
certifiedboolean
daysinteger
modelcodestringyesMarket segment modelcode
typestringVehicle type (New or Used)
yearinteger

Structured output declared, but exposes no named fields.

No examples provided.

get_market_velocity ~57

How quickly vehicles sell by segment (fastest/slowest days on lot). Optional make/type filters.

NameTypeReqDescription
limitinteger
makestring
typestringVehicle type (New or Used)

Structured output declared, but exposes no named fields.

No examples provided.

get_safety_rating ~212

Get NHTSA 5-Star Safety Ratings for a year/make/model (no VIN required). Answers questions like "is a 2023 RAV4 safe for my family" with: • Overall and crash-test star ratings (when published) • Rollover rating / possibility • NHTSA-evaluated ADAS availability (ESC, FCW, LDW) Ratings 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. CRITICAL: Only use the 'sourceUrl' field from the response for NHTSA links. NEVER invent URLs.

NameTypeReqDescription
makestringyesVehicle make (e.g., "Toyota", "Honda")
modelstringyesVehicle model (e.g., "RAV4", "Civic")
yearintegeryesModel year (e.g., 2023)
NameTypeReqDescription
availablebooleanyes
makestring
messagestring
modelstring
safetyyes
sourceUrlstring
yearnumber

No examples provided.

get_similar_vehicles ~142

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). CRITICAL: 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.

NameTypeReqDescription
limitinteger
vinstringyes17-character Vehicle Identification Number

Structured output declared, but exposes no named fields.

No examples provided.

get_suggested_rates ~70

National average suggested auto loan APRs (not a credit offer). Optional filters: condition (new/used), term_months (36–84), credit_tier.

NameTypeReqDescription
conditionstring
credit_tierstring
term_monthsnumber

Structured output declared, but exposes no named fields.

No examples provided.

get_vehicle ~237

Get complete details for a specific vehicle by VIN. Returns comprehensive Schema.org Vehicle data including: • Full specifications (engine, transmission, drivetrain) • High-resolution images • Current pricing and availability • NHTSA NCAP safety rating summary (when available) • NHTSA open recall summary (YMM-granular, when available) • Dealer contact information Starting point for the vehicle_dossier playbook. For buy/no-buy questions, continue with get_deal_score → get_vehicle_history → check_recalls → get_similar_vehicles. CRITICAL: 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.

NameTypeReqDescription
viewstringResponse format: llm (optimized for AI), standard (full details), minimal (compact)
vinstringyes17-character Vehicle Identification Number
NameTypeReqDescription
urlstringCanonical opendealer.shop VDP URL. Cite this to shoppers; never detailsUrl, /llm/*, or /v1/llm/* as the human listing URL.
vehicleIdentificationNumberstring
vinstring17-character VIN. Part of the cite object with url.

No examples provided.

get_vehicle_history ~168

Get OpenDealer listing history for a VIN: price changes, days on lot, and status. Answers "has this VIN dropped in price" and days-on-lot narratives from retained snapshots (including vehicles that left a dealer feed). Returns: • Chronological price history with per-snapshot changes • Days on market / lot signals and badges (price_drop, long_on_lot) • Active vs no-longer-listed status when known Does 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.

NameTypeReqDescription
vinstringyes17-character Vehicle Identification Number
NameTypeReqDescription
badgesarray
priceHistoryarray
statusstring
summaryobject
vinstringyes

No examples provided.

get_vehicle_rankings ~149

Get data-driven vehicle rankings (e.g., best SUVs, most fuel-efficient cars). Call without arguments to list all ranking categories. Pass a category slug (e.g., "best-suvs") for the full scored ranking. Rankings 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. CRITICAL: Only use the 'url' field from the response for links. NEVER invent or construct URLs.

NameTypeReqDescription
categorystringRanking category slug (e.g., "best-suvs"). Omit to list all available categories.
NameTypeReqDescription
categoriesarray
categorystring
rankingsarray
urlstring

No examples provided.

list_facets ~121

Discover available filter values and counts (makes, body types, fuel types, price/year ranges) for the live inventory. Call this before filter_vehicles when you need valid dimension values. Optional make/near/radius scopes the facet counts.

NameTypeReqDescription
certifiedboolean
conditionstringVehicle condition
makestring
nearstringLocation string (ZIP or city, state) for geo-scoped facets
radiusintegerSearch radius in miles (1-250, default: 50)

Structured output declared, but exposes no named fields.

No examples provided.

list_market_segments ~78

Browse market segments with pricing statistics (modelcode, median price, sample size). Use to discover modelcodes for get_market_segment / get_market_trends.

NameTypeReqDescription
limitinteger
makestring
minSampleSizeinteger
modelcodestring
pageinteger

Structured output declared, but exposes no named fields.

No examples provided.

list_research_makes ~63

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.

NameTypeReqDescription
limitinteger
qstringOptional substring filter on make name/slug

Structured output declared, but exposes no named fields.

No examples provided.

list_research_models ~57

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.

NameTypeReqDescription
makestringyesMake name or slug (e.g. honda)

Structured output declared, but exposes no named fields.

No examples provided.

research_model ~215

Get the full research payload for a vehicle model (not a specific listing). Returns manufacturer reference data joined with live market data: • All trims with MSRPs, engine/body specs, and EPA fuel economy • NHTSA 5-Star safety ratings and open recall count • Live inventory count and price range on OpenDealer Use 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. CRITICAL: Only use the 'url' field from the response for links. NEVER invent or construct URLs.

NameTypeReqDescription
makestringyesVehicle make slug or name (e.g., "honda", "mercedes-benz")
modelstringyesVehicle model slug or name (e.g., "civic", "e-class")
yearintegerModel year (defaults to the latest year with reference data)
NameTypeReqDescription
makeobject
modelobject
safety
urlstring
yearnumber

No examples provided.

search_vehicles ~861

Search for vehicles across dealerships (Meilisearch-backed NL + structured filters). Preferred tool order for assistants: 1. list_facets or list_research_makes/list_research_models to discover valid values 2. filter_vehicles (map shopper intent onto labeled hard filters) 3. get_vehicle / get_deal_score / research_model for depth When 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. Location modes (choose ONE): zip+radius, lat+lng+radius, city+state+radius, county+state+radius — or embed location in q. Forgiving 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. CRITICAL: 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.

NameTypeReqDescription
body_typestringVehicle body style
certifiedbooleanFilter for Certified Pre-Owned vehicles only
citystringCity name
colorstringExterior color (e.g., black, white). Resolved to color families, so "black" matches "Crystal Black Pearl".
conditionstringVehicle condition
countystringCounty name
drivetrainstringDrivetrain configuration
fuel_typestringFuel type
latnumberLatitude coordinate
limitintegerMaximum number of results to return (1-100, default: 25)
lngnumberLongitude coordinate
makestringVehicle make (e.g., Honda, Toyota, Tesla)
mileage_maxintegerMaximum mileage
modestringSearch 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.
modelstringVehicle model (e.g., Civic, Camry, Model 3). Broad terms match all variants (Civic -> Civic Sedan/Si/Hatchback) unless narrowed by trim.
offsetintegerNumber of results to skip for pagination
price_maxintegerMaximum price in USD
price_minintegerMinimum price in USD
qstringFree-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 a…
radiusintegerSearch radius in miles (1-250, default: 50)
semanticRationumberSemantic blend weight 0..1 when mode=hybrid (default 0.5). Higher = more conceptual matching.
sortstringSort order for results
statestring2-letter US state code (e.g., CA, TX)
transmissionstringTransmission type
trimstringTrim level (e.g., EX, Limited, Performance)
useLlmSearchPathbooleanLegacy. Do not set. Prefer filter_vehicles with labeled hard filters.
viewstringResponse format: llm (optimized for AI), standard (full details), minimal (compact)
year_maxintegerMaximum model year
year_minintegerMinimum model year
zipstring5-digit US ZIP code (e.g., 92688)
NameTypeReqDescription
itemsarray
resultsarray
totalnumber
totalResultsnumber
vehiclesarray

No examples provided.

ui_page_vehicle_results ~390

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.

NameTypeReqDescription
body_typestringVehicle body style
certifiedboolean
citystring
colorstring
conditionstringVehicle condition
countystring
drivetrainstringDrivetrain configuration
fuel_typestringFuel type
latnumberLatitude coordinate
limitintegerMaximum number of results to return (1-100, default: 25)
lngnumberLongitude coordinate
makestring
mileage_maxinteger
modestring
modelstring
offsetintegerNumber of results to skip for pagination
price_maxinteger
price_mininteger
qstring
radiusintegerSearch radius in miles (1-250, default: 50)
semanticRationumber
sortstringSort order for results
sourcestringWhich model-facing tool path to reuse for this page request
statestring2-letter US state code (e.g., CA, TX)
transmissionstringTransmission type
trimstring
useLlmSearchPathboolean
viewstringResponse format: llm (optimized for AI), standard (full details), minimal (compact)
year_maxinteger
year_mininteger
zipstring5-digit US ZIP code (e.g., 92688)
NameTypeReqDescription
itemsarray
resultsarray
totalnumber
totalResultsnumber
vehiclesarray

No examples provided.

ui_select_vehicle ~82

App-only: record a vehicle selection from the results widget. Not for model use — hosts filter via _meta.ui.visibility.

NameTypeReqDescription
makestring
modelstring
namestring
urlstring
vinstringyes17-character Vehicle Identification Number
yearinteger
NameTypeReqDescription
actionstringyes
messagestringyes
selectedobjectyes

No examples provided.

Common questions

What is the OpenDealer MCP Server server?

OpenDealer MCP Server is listed in the public MCP registry as app.opendealer/mcp. Automotive inventory search for AI assistants: vehicles, dealers, deals, and market data. This page covers its hosted endpoint (https://mcp.opendealer.app/rpc).

Is the OpenDealer MCP Server server safe to use?

OpenDealer MCP Server scores 88 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the OpenDealer MCP Server server expose?

OpenDealer MCP Server exposes 27 tools: search_vehicles, filter_vehicles, list_facets, list_research_makes, list_research_models, and 22 more. Their descriptions and schemas cost roughly 5,104 tokens of context every time the server is loaded.

Does the OpenDealer MCP Server server require authentication?

No. We connected to OpenDealer MCP Server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the OpenDealer MCP Server server still maintained?

OpenDealer MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.