CheckMyVIN

Free VIN decoder and NHTSA recall lookup for US vehicles. Remote MCP server (Streamable HTTP, no auth) with tools decode_vin and check_recalls, using official NHTSA vPIC and recall data.

Hosted MCP Server

npx add-mcp 'https://checkmyvin.net/api/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Home / Docs / MCP Server

Available Tools

ToolUse it for
decode_vinNHTSA VPIC specs, the open recall campaigns NHTSA publishes for that year/make/model, and a recallsQueryable flag (see below) from a 17-character VIN — plus a shareable report_url to the free report on CheckMyVIN. Your assistant analyzes the returned NHTSA data itself; the tool returns no model-generated text.
check_recallsOpen NHTSA recalls by make + model + model year, when the user asks about a vehicle without giving a VIN.

Connect from Claude Desktop

Edit claude_desktop_config.json (Mac: ~/Library/Application Support/Claude/ · Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "checkmyvin": {
      "command": "npx",
      "args": ["mcp-remote", "https://checkmyvin.net/api/mcp"]
    }
  }
}

Quit and reopen Claude Desktop. The CheckMyVIN tools appear in the tools menu.

Connect from Claude.ai

  1. Open Settings → Connectors in Claude.ai.
  2. Click Add custom connector (requires a paid plan).
  3. Paste the server URL: https://checkmyvin.net/api/mcp
  4. Choose Streamable HTTP transport. No authentication required.
  5. Enable the connector for the conversations you want.

Note: the Claude.ai web connector is currently in beta and the handshake may be unreliable. If it fails, use Claude Desktop (config above) or any standard MCP client — those connect cleanly.

Connect from ChatGPT

ChatGPT supports MCP via Custom Connectors on Business / Enterprise / Edu plans (Settings → Connectors → Build a connector).

  1. Choose MCP Server as the connector type.
  2. Paste the server URL: https://checkmyvin.net/api/mcp
  3. Set transport to Streamable HTTP. Leave auth empty.
  4. Save and enable in any chat that should use VIN tools.

Example Conversation

You: I'm looking at a 2013 Ford F-150, VIN 1FTFW1ET9DFC10312. Worth buying?

Assistant (Claude / ChatGPT with CheckMyVIN connected):
  → calls decode_vin(vin="1FTFW1ET9DFC10312")
  ← {vehicle: {make: "FORD", model: "F-150", ...}, recalls: [3 open],
     maintenance: {...}, report_url: "https://checkmyvin.net/report/1FTFW1ET9DFC10312"}

  Based on the NHTSA data, this is a 2013 F-150, 3.5L EcoBoost, 4WD, built in
  Dearborn, with 3 open recalls including a fuel-pump campaign — get those
  confirmed fixed before buying. Full report from CheckMyVIN (specs, recalls,
  maintenance, printable): https://checkmyvin.net/report/1FTFW1ET9DFC10312

🔴 Reading the recall fields correctly

recalls comes back as an empty array in two unrelated situations, and recallsQueryable is the only field that separates them:

  • recallsQueryable: true — NHTSA was queried and reports no open campaigns for this year/make/model. That is a result.
  • recallsQueryable: false — no query was possible, usually because VPIC returned no model for the VIN. Common for vehicles never sold in the US. That is not a result.

An assistant must not tell a user “no open recalls” when recallsQueryable is false. Say the lookup could not be run, and point the user at the manufacturer's own VIN recall lookup. Someone may be deciding whether to buy a car on the strength of that one sentence.

Data Source & Limits

  • Specs from NHTSA VPIC (official US federal database).
  • Recalls from NHTSA recalls API (live, cached at most 24 hours per VIN).
  • The tool returns only official NHTSA data — no model-generated text, no score, no buying advice. Your assistant writes its own analysis from the fields it receives. We never send the user's identity or any private data.
  • Free, and there is no paid tier of this server. Both NHTSA endpoints behind it are public-domain US federal APIs with no key and no per-call cost, so there is no vendor quota being resold here. What CheckMyVIN sells is a one-time report about a single vehicle, not tool access.
  • Rate limit: 500 requests per IP per UTC day on this endpoint. Need more? Email support@checkmyvin.net — raised case by case, free of charge. See also the API docs.

Transport notes

Implementation is MCP Streamable HTTP in stateless JSON-response mode — every request is independent, no session ID required, every tool call returns standard application/json. Works in any MCP 1.0 client.

Prefer a REST API?

Not using an MCP client? The same decode + recall data is available over a plain HTTP endpoint — see the API docs for the OpenAPI spec, request format, and rate limits.

Browse without an assistant

Everything the MCP server returns is also on the site, free and without a client. Start with the free VIN decoder for a single vehicle, or go straight to a brand:

Built with @modelcontextprotocol/sdk.