The Used Car Index

Free NHTSA recalls, complaints and investigations per vehicle, recall alerts, dealer listing events.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
75%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,194Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (0.93% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "feed": {
      "url": "https://api.theusedcarindex.com/mcp"
    }
  }
}

Remote endpoints

https://api.theusedcarindex.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢vehicle_risk(make, model, year)

Look up the recorded risk facts for one make, model and model year: NHTSA complaint counts by system and subsystem, recalls, investigations, manufacturer communications, an optional verified complaints-per-100k-sold rate and source coverage. Separately labeled Jev model tags (model years 2012 and newer; about 43 percent of all complaints are tagged) carry per-label counts, shares and model confidence, which is not accuracy. Spellings and aliases resolve to the stored vehicle. A zero is confirmed only when coverage_complete is true. These are observed records, not a prediction, safety rating, verdict, repair advice or an individual vehicle history.

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "model": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "year": {
      "type": "integer",
      "minimum": 2000,
      "maximum": 2027
    }
  },
  "required": [
    "make",
    "model",
    "year"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢compare_vehicles(vehicles)

Compare recorded facts for several vehicles side by side, with factual orderings by complaints, recalls and available verified complaints-per-100k-sold rates. Unknown vehicles come back with database suggestions and unrated vehicles stay explicitly unrated. Counts reflect source coverage; no recommendation, verdict or safety ranking. The free tier compares up to 2 vehicles per call, paid plans up to 5.

Input Schema

{
  "type": "object",
  "properties": {
    "vehicles": {
      "minItems": 2,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "make": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "model": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "year": {
            "type": "integer",
            "minimum": 2000,
            "maximum": 2027
          }
        },
        "required": [
          "make",
          "model",
          "year"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "vehicles"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢listing_changes(make, model, year, vin, event_type, ...)

List observed dealer listing changes (new, price drop, relisted, delisted) with VIN, price, mileage, dates, source and link, filtered by vehicle, event type or date. Collector status separates an inactive feed from observed events. No photos or dealer-written text; delisted only means the listing was no longer observed, not that a sale completed. The free tier returns at most 10 events per call with no paging, paid plans up to 200 with cursors.

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "model": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "year": {
      "type": "integer",
      "minimum": 2000,
      "maximum": 2027
    },
    "vin": {
      "type": "string",
      "pattern": "^[A-HJ-NPR-Z0-9]{17}$"
    },
    "event_type": {
      "type": "string",
      "enum": [
        "new",
        "price_drop",
        "relisted",
        "delisted"
      ]
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "until": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "limit": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢recall_changes(make, model, year, type, since, ...)

List new and updated NHTSA recalls, investigations and complaint-count changes that this service recorded from the daily NHTSA bulk-file comparison, newest first, filtered by make, model, model year, type (recall, investigation, complaint_count) or observed date. Each change has the NHTSA campaign or action number, the record date, a short summary and a source link. These are published records, not a prediction, safety rating or advice. The free tier returns at most 10 changes per call with no paging, paid plans up to 200 with cursors and a vehicle watchlist.

Input Schema

{
  "type": "object",
  "properties": {
    "make": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "model": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "year": {
      "type": "integer",
      "minimum": 2000,
      "maximum": 2027
    },
    "type": {
      "type": "string",
      "enum": [
        "recall",
        "investigation",
        "complaint_count"
      ]
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "until": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "limit": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools