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.
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-s6q4publishes 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 ingrain. For a Washington fleet count of plug-in vehicles usedmv_ev_adoption, which reads the VIN-level EV population file instead. - NY mixes vehicle types.
w4pv-hbktholds trailers, boats and snowmobiles alongside road vehicles; the tool defaults torecord_type=VEH. County names are unabbreviated, so Brooklyn isKINGS. - 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
OOSbucket (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'Sin the registration dataset,PRINCE GEORGESin 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_EVis BEV + PHEV โ conventional hybrids sit inHEV. - 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
noterather 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
ipAddressand 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
noterather than pretending to be current. - NJ's
dmv_officesentries are inspection and emission-repair facilities, not licensing offices, and the upstreamcountycolumn disagrees withcityon some rows. - DC coordinates need reprojection โ the layer stores State Plane, so the pack requests
outSR=4326geometry rather than readingXCOORD/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.govanswers both a wildcardlike '%x%'clause and a two-conditionwherewith 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 singleyear_monthcondition โ 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
- California โ data.ca.gov Vehicle Fuel Type Count by Zip Code (CKAN
datastore_search_sql), plus thedmv.ca.govWP REST endpoints for field offices, forms and the NAIC insurer lookup - New York โ data.ny.gov Socrata
w4pv-hbkt(registrations),9upz-c7xg(offices) - Washington โ data.wa.gov Socrata
f6w7-q2d2(EV population),hmzg-s6q4(registration transactions) - Maryland โ opendata.maryland.gov Socrata
db8v-9ewn,qtcv-n3tc,tugr-unu9 - Pennsylvania โ PennDOT ArcGIS EV registrations by county
- Delaware โ data.delaware.gov Socrata
ity3-3688 - Hawaii โ opendata.hawaii.gov DBEDT cumulative hybrid/EV series
- Texas โ data.texas.gov Socrata
cbmj-zeje - Connecticut โ data.ct.gov Socrata
y7ky-5wcz - North Carolina โ NCDOT Instant Wait Time service
- Oregon โ Oregon DMV wait times
- Missouri โ data.mo.gov Socrata
835g-7kegยท Wisconsin โ WisDOT ArcGIS ยท Indiana โ BMV branch map ยท Tennessee โ TN SAFETY ArcGIS ยท DC โ opendata.dc.gov ยท Iowa โ Iowa DOT ArcGIS ยท New Jersey โ data.nj.gov Socratat6tk-mr48
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
Install
Add US State DMV to your client. Pick the one you use.
claude mcp add --transport http us-state-dmv https://gateway.pipeworx.io/us-dmv/mcpcodex mcp add us-state-dmv --url https://gateway.pipeworx.io/us-dmv/mcp{
"mcpServers": {
"us-state-dmv": {
"url": "https://gateway.pipeworx.io/us-dmv/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"us-state-dmv": {
"type": "http",
"url": "https://gateway.pipeworx.io/us-dmv/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"us-state-dmv": {
"url": "https://gateway.pipeworx.io/us-dmv/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"us-state-dmv": {
"serverUrl": "https://gateway.pipeworx.io/us-dmv/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
6 tools
US State DMV exposes 6 tools to a connected agent.
- dmv_vehicle_registrations
- CA, DE, MD, NY, PA, TX, WA
- dmv_ev_adoption
- CA, CT, DE, HI, MD, NY, PA, WA
- dmv_wait_times
- NC, OR
- dmv_offices
- CA, DC, IA, IN, MO, NC, NJ, NY, TN, WI
- dmv_ca_forms
- CA
- dmv_ca_insurance_lookup
- CA
Score
65 / 100
Good
- Documentation25/25
- Maintenance16/25
- Trust6/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 33 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 6 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.1.1Latest | Jul 30, 2026 |
| 0.1.0 | Jul 30, 2026 |