OpenDealer MCP Server

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

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeRead-only

What it can do

    What data it sees

    Do you need an account

    An API key from the service settings is required

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

    How to connect

    How to connect OpenDealer MCP Server to Claude

    The server address to paste into Claude settings:

    https://mcp.opendealer.app/rpc

    1. Open Claude (claude.ai or the desktop app).
    2. Go to Settings → Connectors.
    3. Click Add custom connector.
    4. Paste the server address copied below into Remote MCP server URL and click Add.
    5. In a chat, click + → Connectors and switch the new connector on.

    Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

    Authorization

    After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

    How to connect OpenDealer MCP Server to ChatGPT

    The server address to paste into ChatGPT settings:

    https://mcp.opendealer.app/rpc

    1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
    2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
    3. Open Settings → Connectors and click Create.
    4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
    5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
    6. In a new chat open + → Apps/Connectors and enable the connector.

    OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

    Authorization

    On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

    How to connect OpenDealer MCP Server to Cursor

    The server address to paste into Cursor settings:

    https://mcp.opendealer.app/rpc

    Fastest: click Open in Cursor below and confirm the prompt.

    Manually:

    1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
    2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
    3. Save the file. The server appears in the MCP list; authorize it there if asked.

    Authorization

    If the service needs sign-in, an authorize button appears next to the server in the MCP list.

    Server tool list (27)

    Raw names from tools/list. Only developers need these.

    search_vehiclesSearch 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.
    filter_vehiclesPreferred 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.
    list_facetsDiscover 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.
    list_research_makesBrowse the research catalog of vehicle makes (with model and inventory counts). Use to resolve exact make names/slugs before filter_vehicles or research_model.
    list_research_modelsList models for a make from the research catalog (MSRP/body summaries). Use before filter_vehicles or research_model when the model name is uncertain.
    get_vehicleGet 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.
    check_recallsGet 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.
    get_dealerGet 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.
    get_safety_ratingGet 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.
    get_vehicle_historyGet 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.
    dealers_nearFind 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)
    dealer_inventoryBrowse 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.
    compare_vehiclesCompare 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.
    get_deal_scoreGet 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.
    get_market_overviewGet 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
    get_market_segmentGet 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
    list_market_segmentsBrowse market segments with pricing statistics (modelcode, median price, sample size). Use to discover modelcodes for get_market_segment / get_market_trends.
    get_market_trendsPrice trends over time for a market segment (modelcode). Returns timeline of median/avg prices and days-on-lot.
    get_market_velocityHow quickly vehicles sell by segment (fastest/slowest days on lot). Optional make/type filters.
    compare_marketCompare pricing across market segments. Provide modelcodes[] or make (optionally with model).
    get_suggested_ratesNational average suggested auto loan APRs (not a credit offer). Optional filters: condition (new/used), term_months (36–84), credit_tier.
    research_modelGet 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.
    compare_modelsCompare 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.
    get_vehicle_rankingsGet 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.
    get_similar_vehiclesFind 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.
    ui_select_vehicleApp-only: record a vehicle selection from the results widget. Not for model use — hosts filter via _meta.ui.visibility.
    ui_page_vehicle_resultsApp-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.