Skip to content
MCP ThesaurusMCP Thesaurus

US State DMV

CommunityGood65/100Claim

streamable-httpupdated 1mo ago

US state DMV data: vehicle and electric-vehicle registrations, DMV office locators with per-office services, live field-office wait times, and California form and insurer lookups. Keyless.

SourceWebsite

What can you do with US State DMV?

@pipeworx/us-dmv

US state DMV data: vehicle and electric-vehicle registrations, DMV office locators with per-office services, live field-office wait times, and California form and insurer lookups. Keyless.

Why coverage is state-by-state

This pack came out of a survey of all 50 states plus DC (2026-07-29). Roughly 30 states publish nothing machine-readable about motor vehicles โ€” annual PDFs at best. So each tool takes a state argument backed by a short, explicit list, and an unsupported state returns { found: false, reason: 'state_unsupported', hint, supported_states } rather than an empty result that reads like a data bug.

Grain differs per state and is not normalisable away, so every response reports grain, as_of, source, and โ€” where a row list can be cut off โ€” truncated.

Tools

Tool States What it returns
dmv_vehicle_registrations CA, DE, MD, NY, PA, TX, WA Registered vehicle counts by county, ZIP, fuel, make, model year or class
dmv_ev_adoption CA, CT, DE, HI, MD, NY, PA, WA Battery-electric and plug-in hybrid counts, plus EV share where a denominator exists
dmv_wait_times NC, OR Live average/max wait, customers queued, open-or-closed per field office
dmv_offices CA, DC, IA, IN, MO, NC, NJ, NY, TN, WI Addresses, hours, coordinates, and which services each office performs
dmv_ca_forms CA Official DMV form name, REG/DL number and download page
dmv_ca_insurance_lookup CA Insurer NAIC codes by company name

Auth

None. Every upstream is a public state endpoint. _apiKey is accepted on the Socrata-backed tools and passed as X-App-Token; the public rate limits are ample without it.

Per-state gotchas worth knowing

These are all live-verified behaviours, not guesses:

  • WA registrations count transactions, not fleet size. hmzg-s6q4 publishes registration transactions per month (King County runs ~160k/month), so it cannot answer "how many vehicles are registered here". The tool scopes to one fiscal year or month and says so in grain. For a Washington fleet count of plug-in vehicles use dmv_ev_adoption, which reads the VIN-level EV population file instead.
  • NY mixes vehicle types. w4pv-hbkt holds trailers, boats and snowmobiles alongside road vehicles; the tool defaults to record_type=VEH. County names are unabbreviated, so Brooklyn is KINGS.
  • CA snapshots are one resource per year, 2019โ€“2026, and the rows carry the prior December 31 as their as-of date. Grouping by ZIP surfaces a literal OOS bucket (out-of-state registrants) that outranks every real ZIP โ€” filter it out for a ZIP ranking.
  • CA "OTHER/UNK" make absorbs small-count suppression, so it can outrank real makes.
  • MD spells one county two ways: PRINCE GEORGE'S in the registration dataset, PRINCE GEORGES in the EV dataset. MD also reports the registrant's county of residence, so a few out-of-state counties appear with small counts.
  • PA quarters are columns, not rows (TOTAL_EV_Q1..Q4); the tool picks the latest quarter that actually carries data. TOTAL_EV is BEV + PHEV โ€” conventional hybrids sit in HEV.
  • NC and OR waits read zero and closed outside business hours. That is the agency feed reporting an idle queue, not a missing value, so the response flags it in note rather than erroring. NC's feed is a unit tree (root, districts, then offices); the pack keeps leaf units.
  • OR has no JSON endpoint โ€” the office array is parsed out of the server-rendered page. Upstream also ships per-office ipAddress and machine fields, which are dropped here.
  • TX was last refreshed in 2023 and is statewide-annual only. CT was last refreshed in February 2025. Both report this in note rather than pretending to be current.
  • NJ's dmv_offices entries are inspection and emission-repair facilities, not licensing offices, and the upstream county column disagrees with city on some rows.
  • DC coordinates need reprojection โ€” the layer stores State Plane, so the pack requests outSR=4326 geometry rather than reading XCOORD/YCOORD.
  • CA form search is the website's own relevance ranking, so a query like "title transfer" can put a vessel-title form first.
  • Maryland's WAF is picky about SoQL query shape. opendata.maryland.gov answers both a wildcard like '%x%' clause and a two-condition where with a Cloudflare interstitial (403 "Just a moment...") instead of data โ€” reproducibly, and only on that domain: NY, WA and CT accept the identical clauses. It only reproduces from a deployed Worker, never from a laptop, so local testing will not catch it. All four Maryland paths therefore send the one shape that gets through โ€” a single year_month condition โ€” and narrow to a county or ZIP in code, which is cheap because one month is a few hundred rows.
  • WisDOT's ArcGIS server is intermittently slow โ€” it overran a 12s budget on the first production call and answered in ~1s on retry. Every tool retries once and then returns { error, hint } telling the caller to retry, rather than reporting an upstream stall as missing data.

Data sources

Quick Start

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

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

Or connect to the full Pipeworx gateway for access to all 1370+ data sources:

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

Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English:

ask_pipeworx({ question: "your question about US State DMV data" })

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

More

License

MIT