NHTSA车辆安全数据服务

NHTSA是美国国家公路交通安全管理局的官方数据服务,提供车辆召回、投诉、调查、碰撞测试评级、VIN解码、致命事故统计和燃油经济性查询,适用于购车调研、车队安全分析和交通安全政策研究。

  • by pipeworx-io
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 pipeworx-io/mcp-nhtsa

使用说明

NHTSA — National Highway Traffic Safety Administration

The U.S. Department of Transportation's NHTSA. Vehicle recalls, complaints, investigations, crash test ratings (NCAP), safety standards, VIN decoder, fatal-crash statistics (FARS), and fuel-economy ratings. The authoritative source for "is this car safe?" and "how much gas does it use?" Free, no auth.

Part of Pipeworx — an MCP gateway connecting AI agents to 1856+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.

Why this matters for AI agents

For automotive research — buying a used car, evaluating recall exposure, analyzing fleet safety, doing IP / patent due diligence on vehicle technology, or researching traffic-safety policy — NHTSA (plus DOE/EPA's fueleconomy.gov) is the canonical source. Pair with USPTO patents for vehicle-tech IP and Federal Register for proposed automotive rules.

Common flows:

  • Recall lookup. "Is this VIN affected by any recall?" → VIN-based recall query.
  • Make/model/year recalls. "Recalls for 2020 Tesla Model 3?" → recall search by vehicle.
  • Consumer complaints. "Complaints about brake issues on Honda Civic?" → complaint search by make/model.
  • VIN decoder. "What does VIN 1HGBH41JXMN109186 tell me?" → year, make, model, engine, manufacturer details.
  • Crash test ratings. NCAP star ratings for vehicles.
  • Fatal-crash statistics. "How many traffic fatalities did Texas have in 2023?" → state-level FARS aggregates.
  • Fuel economy. "What's the combined MPG for a 2024 Toyota Camry?" → fueleconomy.gov lookup.

Auth

None. NHTSA's and fueleconomy.gov's APIs are fully public, free, keyless.

Datasets

Dataset What it is
Recalls Manufacturer recalls + investigations
Complaints Consumer complaints by VIN/make/model
Investigations Open NHTSA defect investigations
NCAP Crash Test Star ratings, frontal/side/rollover scores
VIN Decoder Decode VIN to make/model/year + manufacturer specs
TSBs (Technical Service Bulletins) Manufacturer service guidance
FARS (Fatality Analysis Reporting System) Fatal motor-vehicle crash counts, fatalities, persons/vehicles/pedestrians involved, by state/month; vehicle makes involved in fatal crashes, by year
Fuel Economy (fueleconomy.gov, DOE/EPA) City/highway/combined MPG, CO2 g/mile, fuel type, by model year + make + model

FARS data (fleet #2972)

NHTSA's live crash-query API returned an Akamai 403 to every probe tried on 2026-10-12, including with browser-like headers. NHTSA separately publishes FARS as annual bulk files, US federal government work and public domain, so fars_state_fatalities, fars_vehicle_makes, and fars_coverage are backed by those files loaded ahead of time rather than a live proxy, per CLAUDE.md "BUILD THE COPY".

  • What's loaded: scripts/nhtsa-fars/load-data.mjs aggregates each year's crash-level file into fars_state_month (state × year × month: crashes, fatalities, persons/vehicles/pedestrians involved) and the vehicle-level file into fars_vehicle_make_year (make × year, national: count of vehicles of that make involved in a fatal crash — an involvement count, not a causation claim). Raw crash/vehicle rows are never stored. Call fars_coverage for the exact years loaded.
  • Refresh: re-run node scripts/nhtsa-fars/load-data.mjs --years 2022,2023,2024,2025 (add the newest published year; --db/--config override the defaults) once NHTSA publishes a new annual file — usually with roughly a one-year lag. Needs wrangler authenticated to the Pipeworx Cloudflare account (CLOUDFLARE_ACCOUNT_ID env var if the account has more than one in non-interactive mode).
  • Known gap: no county/city granularity and no driver/vehicle-level detail (BAC, injury severity, road conditions) — those live in FARS's other per-record files, not aggregated here. File a follow-up if a caller needs them.

fueleconomy.gov (live proxy)

fuel_economy_mpg and fuel_economy_models call the DOE/EPA fueleconomy.gov vehicle data service live, per request — it's a keyless REST API with no bulk download, so there is nothing to copy. A model year + make can have several engine/transmission/drivetrain variants under one model string (e.g. several Camry trims); fuel_economy_mpg returns up to 5. Pass the model string exactly as fueleconomy.gov lists it — fuel_economy_models shows the valid strings for a year + make when unsure.

Common pitfalls

  • Recall vs. investigation vs. complaint. Different severity levels: complaints (raw consumer reports), investigations (NHTSA-opened formal review), recalls (manufacturer-required fix). Don't conflate. Investigations sometimes lead to recalls but often don't.
  • Recall completion rates. A recall doesn't mean every affected vehicle has been fixed. Many recalled vehicles never make it to a dealer for the fix. The recall remains "open" indefinitely for the unfixed vehicles.
  • Investigation phases. PE (Preliminary Evaluation), EA (Engineering Analysis), DSI (Defect Investigation), each with different stakes. EA is the meaningful escalation; PE often closes without action.
  • Complaint counts ≠ defect rates. Some defects produce many complaints; others produce few because they're catastrophic (drivers can't complain post-mortem). Cross-reference with crash data when relevant.
  • VIN decoder limitations. The free VIN decoder gives factory-spec data but doesn't reflect aftermarket modifications, accident history, or current ownership. For those, you need commercial sources (Carfax, AutoCheck).
  • NCAP scoring evolved. The 5-star scale changed in 2011 — earlier ratings aren't directly comparable to newer ones. Don't compare a 2008 5-star to a 2024 5-star.
  • FARS counts FATAL crashes only. It is not a general crash database — non-fatal crashes (the overwhelming majority) aren't in here. For general crash/injury data, FARS isn't the right source.
  • fars_vehicle_makes is an involvement count, not a risk rate. More Ford/Chevrolet/Toyota vehicles show up because those makes have far more vehicles on the road, not because they're less safe. Normalize by registrations/miles-driven before drawing a safety conclusion.
  • fuel_economy_mpg's model string must match fueleconomy.gov's own listing. "F-150" alone won't match; it's "F150 Pickup 2WD" / "F150 Pickup 4WD" etc. Call fuel_economy_models first if unsure.

Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "nhtsa": {
      "url": "https://gateway.pipeworx.io/nhtsa/mcp"
    }
  }
}

What this endpoint actually serves

tools/list at https://gateway.pipeworx.io/nhtsa/mcp returns the tools in the table above plus the shared Pipeworx meta-tools — ask_pipeworx, discover_tools, search_within, remember/recall and the rest of the gateway-wide set. So the tool count you see is larger than this table: a single-pack endpoint currently lists roughly 30 shared tools alongside the pack's own. The connection's initialize response states its exact scope, and is the authoritative answer for a given day.

This is deliberate, not multiplexing by accident. The meta-tools are what let a scoped connection answer a question this pack does not cover — via ask_pipeworx, which routes across the whole catalog — without you adding a second MCP server. There is currently no way to mount a pack endpoint without them; if the extra schemas cost you more context than the routing is worth, connect to the full gateway once rather than to several pack endpoints.

Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

Both URLs reach the same gateway and the same 1856+ data sources. The only difference is which pack's tools are listed directly; ask_pipeworx reaches all of them from either one.

No MCP client? Call it over HTTP

curl -X POST https://gateway.pipeworx.io/v1/tools/decode_vin \
  -H 'Content-Type: application/json' \
  -d '{"vin":"1HGBH41JXMN109186"}'

No account needed for the first calls. Inspect any tool: GET https://gateway.pipeworx.io/v1/tools/decode_vin. Find one: POST https://gateway.pipeworx.io/v1/tools/search_packs with {"query":"..."}.

Run it from npm

@pipeworx/mcp-nhtsa is a local stdio bridge to the Pipeworx gateway: your MCP client starts it with npx, and it forwards every call to the same https://gateway.pipeworx.io/nhtsa/mcp endpoint shown above. It needs network access; there is no offline mode.

{
  "mcpServers": {
    "nhtsa": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-nhtsa"]
    }
  }
}

Without a key it calls anonymously, capped at 50 calls a day. A free account raises that to 200 a day: get a key at https://pipeworx.io/signup and add "env": { "PIPEWORX_API_KEY": "<your key>" } to the server entry. The key is sent as a Bearer token, the same way a hosted connection sends it, so calls are metered and billed exactly as they are there.

It lists only this pack's tools by default. Set PIPEWORX_META_TOOLS=1 to also list ask_pipeworx and the other gateway-wide tools.

Behind an HTTPS proxy: Node's built-in fetch does not read HTTPS_PROXY by default. Newer Node releases honour it when NODE_USE_ENV_PROXY=1 is set; check your Node version's documentation.

Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:

ask_pipeworx({ question: "your question about Nhtsa data" })

The gateway picks the right tool and fills the arguments automatically.

More

License

MIT