# OpenDealer MCP Server (remote · mcp.opendealer.app)

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

- Trust score: 73/100 (medium)
- Change this week: +51
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.opendealer.app`: 73/100 (this document), [markdown](https://verifymcp.io/servers/app-opendealer-mcp/mcp.md), [page](https://verifymcp.io/servers/app-opendealer-mcp/mcp)

## Channel facts

- Endpoint: `https://mcp.opendealer.app/rpc`
- Transports: `streamable-http`
- Auth: `required`
- Version: `2.0.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 5705 tokens (~142/item across 40 items; 27 tools + 13 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability check failed: schema churn in the 5 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 2 additions.
- **Tool Coverage**: 91/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 70% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add --transport http app-opendealer-mcp https://mcp.opendealer.app/rpc
```

### Codex

```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
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add app-opendealer-mcp --url https://mcp.opendealer.app/rpc --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  app-opendealer-mcp:
    url: "https://mcp.opendealer.app/rpc"
```

### Other

```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 recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 73, +1)

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

### 2026-07-31 (score 72, +4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 68, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 68, +46)

- [security improvement] Transport: unverified → pass
- [security improvement] Authorization: fail → partial
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Capabilities: pass
- [functional] First check of Tool coverage: 72
- [functional] First check of Schema quality: good
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: fail

### 2026-07-27 (score 22, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 22)

First indexed and scored.

## MCP tools (27)

### `search_vehicles` (~846 tokens)

Search Vehicles

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 when make/model/year/price/location are known (exact hard filters)
3\. search_vehicles with q for prose/conceptual queries (optionally useLlmSearchPath=true)
4\. 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. mode=hybrid for conceptual queries.

CRITICAL: Use the 'url' field from each result. NEVER invent URLs.

Input parameters:

- `body_type` (string): Vehicle body style
- `certified` (boolean): Filter for Certified Pre-Owned vehicles only
- `city` (string): City name
- `color` (string): Exterior color (e.g., black, white). Resolved to color families, so "black" matches "Crystal Black Pearl".
- `condition` (string): Vehicle condition
- `county` (string): County name
- `drivetrain` (string): Drivetrain configuration
- `fuel_type` (string): Fuel type
- `lat` (number): Latitude coordinate
- `limit` (integer): Maximum number of results to return (1-100, default: 25)
- `lng` (number): Longitude coordinate
- `make` (string): Vehicle make (e.g., Honda, Toyota, Tesla)
- `mileage_max` (integer): Maximum mileage
- `mode` (string): 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.
- `model` (string): Vehicle model (e.g., Civic, Camry, Model 3). Broad terms match all variants (Civic -> Civic Sedan/Si/Hatchback) unless narrowed by trim.
- `offset` (integer): Number of results to skip for pagination
- `price_max` (integer): Maximum price in USD
- `price_min` (integer): Minimum price in USD
- `q` (string): 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 a…
- `radius` (integer): Search radius in miles (1-250, default: 50)
- `semanticRatio` (number): Semantic blend weight 0..1 when mode=hybrid (default 0.5). Higher = more conceptual matching.
- `sort` (string): Sort order for results
- `state` (string): 2-letter US state code (e.g., CA, TX)
- `transmission` (string): Transmission type
- `trim` (string): Trim level (e.g., EX, Limited, Performance)
- `useLlmSearchPath` (boolean): When true with q, call the preferred LLM path search (/v1/llm/search/...) which returns nextLinks guidance. Prefer filter_vehicles when make/model/year/location are already known.
- `view` (string): Response format: llm (optimized for AI), standard (full details), minimal (compact)
- `year_max` (integer): Maximum model year
- `year_min` (integer): Minimum model year
- `zip` (string): 5-digit US ZIP code (e.g., 92688)

Output parameters:

- `items` (array)
- `results` (array)
- `total` (number)
- `totalResults` (number)
- `vehicles` (array)

### `filter_vehicles` (~422 tokens)

Filter Vehicles (Structured)

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. For prose or conceptual queries, use search_vehicles instead.

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: Use the 'url' field from each result. NEVER invent URLs.

Input parameters:

- `body_type` (string): Vehicle body style
- `certified` (boolean)
- `city` (string)
- `color` (string)
- `condition` (string): Vehicle condition
- `drivetrain` (string): Drivetrain configuration
- `fuel_type` (string): Fuel type
- `limit` (integer): Maximum number of results to return (1-100, default: 25)
- `make` (string): Vehicle make (resolve via list_research_makes if unsure)
- `mileage_max` (integer)
- `model` (string): Vehicle model (resolve via list_research_models if unsure)
- `offset` (integer): Number of results to skip for pagination
- `price_max` (integer)
- `price_min` (integer)
- `radius` (integer): Search radius in miles (1-250, default: 50)
- `sort` (string): Sort order for results
- `state` (string): 2-letter US state code (e.g., CA, TX)
- `transmission` (string): Transmission type
- `trim` (string)
- `year_max` (integer)
- `year_min` (integer)
- `zip` (string): 5-digit US ZIP code (e.g., 92688)

Output parameters:

- `items` (array)
- `results` (array)
- `total` (number)
- `totalResults` (number)
- `vehicles` (array)

### `list_facets` (~121 tokens)

List Inventory Facets

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.

Input parameters:

- `certified` (boolean)
- `condition` (string): Vehicle condition
- `make` (string)
- `near` (string): Location string (ZIP or city, state) for geo-scoped facets
- `radius` (integer): Search radius in miles (1-250, default: 50)

### `list_research_makes` (~63 tokens)

List Research Makes

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.

Input parameters:

- `limit` (integer)
- `q` (string): Optional substring filter on make name/slug

### `list_research_models` (~57 tokens)

List Research Models

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.

Input parameters:

- `make` (string, required): Make name or slug (e.g. honda)

### `get_vehicle` (~196 tokens)

Get Vehicle Details

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: Only use the 'url' field from the response. NEVER invent URLs. NEVER construct URLs with opendealer domains - the 'url' field points to the dealer's website.

Input parameters:

- `view` (string): Response format: llm (optimized for AI), standard (full details), minimal (compact)
- `vin` (string, required): 17-character Vehicle Identification Number

Output parameters:

- `url` (string)
- `vehicleIdentificationNumber` (string)
- `vin` (string)

### `check_recalls` (~140 tokens)

Check NHTSA Recalls

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.

Input parameters:

- `vin` (string, required): 17-character Vehicle Identification Number

Output parameters:

- `count` (number)
- `recalls` (array)
- `vin` (string)

### `get_dealer` (~156 tokens)

Get Dealership Details

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.

Input parameters:

- `dealerId` (string, required): Dealer identifier: UUID or slug (e.g., "rsm-honda"). Prefer the slug from dealers_near or search results.

Output parameters:

- `aggregateRating` (object)
- `inventory` (object)
- `name` (string)
- `openingHours`
- `slug` (string)
- `telephone` (string)
- `urls` (object)

### `get_safety_rating` (~212 tokens)

Get NHTSA Safety Rating

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.

Input parameters:

- `make` (string, required): Vehicle make (e.g., "Toyota", "Honda")
- `model` (string, required): Vehicle model (e.g., "RAV4", "Civic")
- `year` (integer, required): Model year (e.g., 2023)

Output parameters:

- `available` (boolean)
- `make` (string)
- `message` (string)
- `model` (string)
- `safety`
- `sourceUrl` (string)
- `year` (number)

### `get_vehicle_history` (~168 tokens)

Get Vehicle Price History

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.

Input parameters:

- `vin` (string, required): 17-character Vehicle Identification Number

Output parameters:

- `badges` (array)
- `priceHistory` (array)
- `status` (string)
- `summary` (object)
- `vin` (string)

### `dealers_near` (~214 tokens)

Find Nearby Dealers

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)

Input parameters:

- `city` (string): City name
- `county` (string): County name
- `lat` (number): Latitude coordinate
- `limit` (integer): Maximum number of dealers to return (1-200, default: 50)
- `lng` (number): Longitude coordinate
- `offset` (integer): Number of results to skip for pagination
- `radius` (integer): Search radius in miles (1-250, default: 50)
- `state` (string): 2-letter US state code (e.g., CA, TX)
- `zip` (string): 5-digit US ZIP code (e.g., 92688)

Output parameters:

- `dealers` (array)
- `items` (array)
- `total` (number)

### `dealer_inventory` (~317 tokens)

Browse Dealer Inventory

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: Only use URLs from the response. NEVER invent URLs.

Input parameters:

- `body_type` (string): Vehicle body style
- `certified` (boolean): Filter for CPO vehicles
- `condition` (string): Vehicle condition
- `dealerId` (string, required): Dealer identifier (UUID or slug like "rsm-honda")
- `drivetrain` (string): Drivetrain configuration
- `fuel_type` (string): Fuel type
- `limit` (integer): Maximum number of results to return (1-100, default: 25)
- `make` (string): Vehicle make
- `mileage_max` (integer): Maximum mileage
- `model` (string): Vehicle model
- `offset` (integer): Number of results to skip for pagination
- `price_max` (integer): Maximum price in USD
- `price_min` (integer): Minimum price in USD
- `sort` (string): Sort order
- `transmission` (string): Transmission type
- `trim` (string): Trim level
- `view` (string): Response detail: standard (features/gallery, default), llm (compact), minimal
- `year_max` (integer): Maximum model year
- `year_min` (integer): Minimum model year

Output parameters:

- `items` (array)
- `results` (array)
- `total` (number)
- `totalResults` (number)
- `vehicles` (array)

### `compare_vehicles` (~83 tokens)

Compare Vehicles

Compare 2-5 vehicles side by side.

Provide a list of VINs to compare. Returns a structured comparison including:
• Specifications comparison (engine, MPG, features)
• Price comparison with market context
• Pros and cons for each vehicle
• Recommendation based on value

Input parameters:

- `vins` (array, required): List of VINs to compare (2-5 vehicles)

Output parameters:

- `comparison` (object)
- `vehicles` (array)

### `get_deal_score` (~123 tokens)

Get Deal Score

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.

Input parameters:

- `vin` (string, required): 17-character Vehicle Identification Number

Output parameters:

- `dealScore` (object)
- `priceHistory` (array)
- `vin` (string)

### `get_market_overview` (~76 tokens)

Get Market Overview

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

Input parameters:

- `make` (string): Filter by vehicle make
- `type` (string): Filter by vehicle type

### `get_market_segment` (~132 tokens)

Get Market Segment Data

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

Input parameters:

- `certified` (boolean): Filter for certified vehicles
- `modelcode` (string, required): Model code identifier (unique per make/model/year combination)
- `type` (string): Vehicle type
- `year` (integer): Model year

### `list_market_segments` (~78 tokens)

List Market Segments

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

Input parameters:

- `limit` (integer)
- `make` (string)
- `minSampleSize` (integer)
- `modelcode` (string)
- `page` (integer)

### `get_market_trends` (~81 tokens)

Get Market Price Trends

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

Input parameters:

- `certified` (boolean)
- `days` (integer)
- `modelcode` (string, required): Market segment modelcode
- `type` (string): Vehicle type (New or Used)
- `year` (integer)

### `get_market_velocity` (~57 tokens)

Get Market Velocity

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

Input parameters:

- `limit` (integer)
- `make` (string)
- `type` (string): Vehicle type (New or Used)

### `compare_market` (~68 tokens)

Compare Market Segments

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

Input parameters:

- `make` (string)
- `model` (string)
- `modelcodes` (array)
- `type` (string): Vehicle type (New or Used)
- `year` (integer)

### `get_suggested_rates` (~70 tokens)

Get Suggested Finance Rates

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

Input parameters:

- `condition` (string)
- `credit_tier` (string)
- `term_months` (number)

### `research_model` (~215 tokens)

Research a Vehicle Model

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.

Input parameters:

- `make` (string, required): Vehicle make slug or name (e.g., "honda", "mercedes-benz")
- `model` (string, required): Vehicle model slug or name (e.g., "civic", "e-class")
- `year` (integer): Model year (defaults to the latest year with reference data)

Output parameters:

- `make` (object)
- `model` (object)
- `safety`
- `url` (string)
- `year` (number)

### `compare_models` (~189 tokens)

Compare Vehicle Models

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.

Input parameters:

- `models` (array, required): Composite make-model slugs to compare (e.g., ["honda-civic", "toyota-corolla"])
- `year` (integer): Model year (defaults to the latest year with reference data)

Output parameters:

- `dimensions` (array)
- `models` (array)

### `get_vehicle_rankings` (~149 tokens)

Get Vehicle Rankings

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.

Input parameters:

- `category` (string): Ranking category slug (e.g., "best-suvs"). Omit to list all available categories.

Output parameters:

- `categories` (array)
- `category` (string)
- `rankings` (array)
- `url` (string)

### `get_similar_vehicles` (~77 tokens)

Get Similar Vehicles

Find similar on-lot vehicles for a VIN ("you may also like"). Uses semantic similarity when available, with make/model filter fallback.

CRITICAL: Use the 'url' or listing fields from each result. NEVER invent URLs.

Input parameters:

- `limit` (integer)
- `vin` (string, required): 17-character Vehicle Identification Number

### `ui_select_vehicle` (~82 tokens)

Select Vehicle (App)

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

Input parameters:

- `make` (string)
- `model` (string)
- `name` (string)
- `url` (string)
- `vin` (string, required): 17-character Vehicle Identification Number
- `year` (integer)

Output parameters:

- `action` (string)
- `message` (string)
- `selected` (object)

### `ui_page_vehicle_results` (~390 tokens)

Page Vehicle Results (App)

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.

Input parameters:

- `body_type` (string): Vehicle body style
- `certified` (boolean)
- `city` (string)
- `color` (string)
- `condition` (string): Vehicle condition
- `county` (string)
- `drivetrain` (string): Drivetrain configuration
- `fuel_type` (string): Fuel type
- `lat` (number): Latitude coordinate
- `limit` (integer): Maximum number of results to return (1-100, default: 25)
- `lng` (number): Longitude coordinate
- `make` (string)
- `mileage_max` (integer)
- `mode` (string)
- `model` (string)
- `offset` (integer): Number of results to skip for pagination
- `price_max` (integer)
- `price_min` (integer)
- `q` (string)
- `radius` (integer): Search radius in miles (1-250, default: 50)
- `semanticRatio` (number)
- `sort` (string): Sort order for results
- `source` (string): Which model-facing tool path to reuse for this page request
- `state` (string): 2-letter US state code (e.g., CA, TX)
- `transmission` (string): Transmission type
- `trim` (string)
- `useLlmSearchPath` (boolean)
- `view` (string): Response format: llm (optimized for AI), standard (full details), minimal (compact)
- `year_max` (integer)
- `year_min` (integer)
- `zip` (string): 5-digit US ZIP code (e.g., 92688)

Output parameters:

- `items` (array)
- `results` (array)
- `total` (number)
- `totalResults` (number)
- `vehicles` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/app-opendealer-mcp/mcp#diagnostics

## Score history

- 2026-08-03: 73
- 2026-08-02: 73
- 2026-08-01: 72
- 2026-07-31: 72
- 2026-07-30: 68
- 2026-07-29: 68
- 2026-07-28: 22
- 2026-07-27: 22
- 2026-07-26: 22

## Links

- Remote endpoint: https://mcp.opendealer.app/rpc
- Authorisation metadata: https://mcp.opendealer.app/.well-known/oauth-protected-resource/rpc
- Website: https://opendealer.pro/
- Changelog RSS feed: https://verifymcp.io/servers/app-opendealer-mcp/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/app-opendealer-mcp/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/app-opendealer-mcp/mcp
