# NHTSA Vehicle Intelligence MCP — AI Agent (`red.cars/nhtsa-vehicle-intelligence-mcp`) Actor

AI agent access to NHTSA vehicle specs, recall data, safety ratings, and complaint databases. Get detailed vehicle specifications, open recalls, US safety ratings, and consumer complaints for any US vehicle.

- **URL**: https://apify.com/red.cars/nhtsa-vehicle-intelligence-mcp.md
- **Developed by:** [AutomateLab](https://apify.com/red.cars) (community)
- **Categories:** MCP servers, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## NHTSA Vehicle Intelligence MCP

AI agent access to NHTSA vehicle specifications, recall data, safety ratings, and complaint databases for any US vehicle.

---

### 1. Purpose Statement

NHTSA Vehicle Intelligence MCP is an MCP (Model Context Protocol) server that gives AI agents direct access to the National Highway Traffic Safety Administration's vehicle databases. AI agents performing vehicle research, safety analysis, recall monitoring, or consumer complaint investigation can query NHTSA data in seconds without manual database navigation.

**Built for:** AI agents researching vehicle safety, investors evaluating automotive recall trends, consumers investigating vehicles before purchase, analysts monitoring vehicle complaints, and automotive researchers collecting vehicle specifications at scale.

---

### 2. Quick Start

Add to your MCP client:

```json
{
  "mcpServers": {
    "nhtsa-vehicle-intelligence-mcp": {
      "url": "https://nhtsa-vehicle-intelligence-mcp.apify.actor/mcp"
    }
  }
}
````

AI agents can now query vehicle specifications, open recalls, US government safety ratings, and consumer complaints for any US vehicle by VIN or model year/make/model.

***

### 3. When to Call This MCP

Use NHTSA Vehicle Intelligence MCP when you need to:

- **Get vehicle specifications** — Decode a VIN or look up specs by model year/make/model
- **Find open recalls** — Check if a vehicle has unaddressed safety recalls
- **Check safety ratings** — Get US Government 5-Star Safety Ratings for any vehicle
- **Investigate complaints** — Search consumer complaints by vehicle or component
- **Vehicle due diligence** — Research a vehicle's safety history before purchase
- **Recall monitoring** — Track recall trends by make/model/year
- **Safety analysis** — Compare crash ratings across similar vehicles
- **Component research** — Filter complaints by engine, brakes, electrical, etc.

***

### 4. What Data Can You Access?

| Data Type | Source | Example |
|-----------|--------|---------|
| Vehicle Specs | NHTSA vPIC API | Engine size, transmission, fuel type, safety equipment |
| Recall Data | NHTSA Recalls API | Open recalls by VIN or model |
| Safety Ratings | NHTSA Ratings API | 5-Star Crash Ratings (frontal, side, rollover) |
| Complaints | NHTSA Complaints API | Consumer complaints, crashes, fires, injuries |

***

### 5. Why Use NHTSA Vehicle Intelligence MCP?

**The problem:** Researching vehicle safety requires navigating multiple NHTSA websites (vPIC, Recalls, SaferCar, ODI) with different interfaces and no unified API. For AI agents doing vehicle research, recall monitoring, or safety analysis, manual navigation wastes hours that could be spent on analysis.

**The solution:** AI agents use NHTSA Vehicle Intelligence MCP to query all NHTSA vehicle databases from a single MCP interface — getting specs, recalls, ratings, and complaints in seconds, with automatic retry on API failures and proper PPE charging.

***

### 6. Tools

#### getVehicleSpecs

Get detailed vehicle specifications by VIN or model year/make/model. Returns engine specs, transmission, dimensions, fuel economy, and safety equipment.

```
getVehicleSpecs(vin="1G1JC524717673235")
getVehicleSpecs(modelYear=2022, make="Toyota", model="Camry", trim="SE")
```

#### getRecallData

Get open recalls for a vehicle by VIN, or all recalls by model year/make/model. Returns recall number, component, consequence, and remedy details.

```
getRecallData(vin="1G1JC524717673235")
getRecallData(modelYear=2021, make="Ford", model="F-150")
```

#### getSafetyRatings

Get US Government Safety Ratings for a vehicle by Vehicle ID (VID) or model year/make/model. Returns Overall Rating, Frontal Crash, Side Crash, Rollover ratings.

```
getSafetyRatings(vehicleId="12455")
getSafetyRatings(modelYear=2023, make="Tesla", model="Model Y")
```

#### getComplaints

Get consumer complaints for a vehicle by VIN or model year/make/model. Returns complaint count, crash counts, fire counts, and complaint details. Filter by component.

```
getComplaints(vin="1G1JC524717673235")
getComplaints(modelYear=2020, make="Honda", model="CR-V", component="ENGINE")
```

***

### 7. Pricing

NHTSA Vehicle Intelligence MCP uses Apify's Pay Per Event (PPE) pricing:

| Tool | Price |
|------|-------|
| getVehicleSpecs | $0.02 |
| getRecallData | $0.02 |
| getSafetyRatings | $0.03 |
| getComplaints | $0.03 |

All prices in USD per tool call. No API keys required — NHTSA APIs are public.

***

### 8. Setup

```
1. Clone or download this actor
2. Run: npm install
3. Start: npm start
4. Add to your MCP client using the URL above
```

***

### 9. API Endpoints Used

- **vPIC API**: `https://vpic.nhtsa.nhtsa.dot.gov/api/vehicles` — Vehicle specifications
- **Recalls API**: `https://api.nhtsa.gov/recalls/recallsByVehicle` — Open recall data
- **Ratings API**: NHTSA 5-Star Safety Ratings
- **Complaints API**: `https://api.nhtsa.gov/complaints/complaintsByVehicle` — Consumer complaints

All NHTSA APIs are public and require no authentication.

***

### 10. Error Handling

- **ERROR\_RETRY**: Failed API calls are automatically retried up to 3 times with exponential backoff
- **Rate limiting**: 500ms gap between requests to respect NHTSA API limits
- **Timeout handling**: 30 second timeout for all HTTP requests
- **Graceful degradation**: Returns partial results when possible (e.g., spec decode with missing fields)

***

### 11. Architecture

- **Standby MCP**: Listens on `/mcp` endpoint for MCP protocol calls
- **Direct mode**: Also accepts `tool` + `params` input via Apify actor input
- **handleRunFunction**: Exports `handleRequest` for direct function calls
- **PPE charging**: Automatically charges per tool call after successful execution
- **Health check**: `/health` endpoint for container readiness probes

# Actor input Schema

## Actor input object example

```json
{}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("red.cars/nhtsa-vehicle-intelligence-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("red.cars/nhtsa-vehicle-intelligence-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call red.cars/nhtsa-vehicle-intelligence-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=red.cars/nhtsa-vehicle-intelligence-mcp",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "NHTSA Vehicle Intelligence MCP — AI Agent",
        "description": "AI agent access to NHTSA vehicle specs, recall data, safety ratings, and complaint databases. Get detailed vehicle specifications, open recalls, US safety ratings, and consumer complaints for any US vehicle.",
        "version": "1.0",
        "x-build-id": "7P5KIvB5kDXjD3TUW"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/red.cars~nhtsa-vehicle-intelligence-mcp/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-red.cars-nhtsa-vehicle-intelligence-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/red.cars~nhtsa-vehicle-intelligence-mcp/runs": {
            "post": {
                "operationId": "runs-sync-red.cars-nhtsa-vehicle-intelligence-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/red.cars~nhtsa-vehicle-intelligence-mcp/run-sync": {
            "post": {
                "operationId": "run-sync-red.cars-nhtsa-vehicle-intelligence-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {}
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
