{
  "markdown": "# @pipeworx/us-dmv\n\nUS state DMV data: vehicle and electric-vehicle registrations, DMV office locators with\nper-office services, live field-office wait times, and California form and insurer lookups.\nKeyless.\n\n## Why coverage is state-by-state\n\nThis pack came out of a survey of all 50 states plus DC (2026-07-29). Roughly 30 states\npublish nothing machine-readable about motor vehicles — annual PDFs at best. So each tool\ntakes a `state` argument backed by a short, explicit list, and an unsupported state returns\n`{ found: false, reason: 'state_unsupported', hint, supported_states }` rather than an\nempty result that reads like a data bug.\n\nGrain differs per state and is not normalisable away, so every response reports `grain`,\n`as_of`, `source`, and — where a row list can be cut off — `truncated`.\n\n## Tools\n\n| Tool | States | What it returns |\n|---|---|---|\n| `dmv_vehicle_registrations` | CA, DE, MD, NY, PA, TX, WA | Registered vehicle counts by county, ZIP, fuel, make, model year or class |\n| `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 |\n| `dmv_wait_times` | NC, OR | Live average/max wait, customers queued, open-or-closed per field office |\n| `dmv_offices` | CA, DC, IA, IN, MO, NC, NJ, NY, TN, WI | Addresses, hours, coordinates, and which services each office performs |\n| `dmv_ca_forms` | CA | Official DMV form name, REG/DL number and download page |\n| `dmv_ca_insurance_lookup` | CA | Insurer NAIC codes by company name |\n\n## Auth\n\nNone. Every upstream is a public state endpoint. `_apiKey` is accepted on the Socrata-backed\ntools and passed as `X-App-Token`; the public rate limits are ample without it.\n\n## Per-state gotchas worth knowing\n\nThese are all live-verified behaviours, not guesses:\n\n- **WA registrations count transactions, not fleet size.** `hmzg-s6q4` publishes registration\n  transactions per month (King County runs ~160k/month), so it cannot answer \"how many\n  vehicles are registered here\". The tool scopes to one fiscal year or month and says so in\n  `grain`. For a Washington *fleet* count of plug-in vehicles use `dmv_ev_adoption`, which\n  reads the VIN-level EV population file instead.\n- **NY mixes vehicle types.** `w4pv-hbkt` holds trailers, boats and snowmobiles alongside road\n  vehicles; the tool defaults to `record_type=VEH`. County names are unabbreviated, so\n  Brooklyn is `KINGS`.\n- **CA snapshots are one resource per year**, 2019–2026, and the rows carry the *prior*\n  December 31 as their as-of date. Grouping by ZIP surfaces a literal `OOS` bucket\n  (out-of-state registrants) that outranks every real ZIP — filter it out for a ZIP ranking.\n- **CA \"OTHER/UNK\" make** absorbs small-count suppression, so it can outrank real makes.\n- **MD spells one county two ways**: `PRINCE GEORGE'S` in the registration dataset,\n  `PRINCE GEORGES` in the EV dataset. MD also reports the registrant's county of residence,\n  so a few out-of-state counties appear with small counts.\n- **PA quarters are columns, not rows** (`TOTAL_EV_Q1..Q4`); the tool picks the latest quarter\n  that actually carries data. `TOTAL_EV` is BEV + PHEV — conventional hybrids sit in `HEV`.\n- **NC and OR waits read zero and closed outside business hours.** That is the agency feed\n  reporting an idle queue, not a missing value, so the response flags it in `note` rather than\n  erroring. NC's feed is a unit tree (root, districts, then offices); the pack keeps leaf units.\n- **OR has no JSON endpoint** — the office array is parsed out of the server-rendered page.\n  Upstream also ships per-office `ipAddress` and machine fields, which are dropped here.\n- **TX was last refreshed in 2023** and is statewide-annual only. **CT was last refreshed in\n  February 2025.** Both report this in `note` rather than pretending to be current.\n- **NJ's `dmv_offices` entries are inspection and emission-repair facilities**, not licensing\n  offices, and the upstream `county` column disagrees with `city` on some rows.\n- **DC coordinates need reprojection** — the layer stores State Plane, so the pack requests\n  `outSR=4326` geometry rather than reading `XCOORD`/`YCOORD`.\n- **CA form search is the website's own relevance ranking**, so a query like \"title transfer\"\n  can put a vessel-title form first.\n- **Maryland's WAF is picky about SoQL query shape.** `opendata.maryland.gov` answers both a\n  wildcard `like '%x%'` clause and a two-condition `where` with a Cloudflare interstitial\n  (403 \"Just a moment...\") instead of data — reproducibly, and only on that domain: NY, WA and\n  CT accept the identical clauses. It only reproduces from a deployed Worker, never from a\n  laptop, so local testing will not catch it. All four Maryland paths therefore send the one\n  shape that gets through — a single `year_month` condition — and narrow to a county or ZIP in\n  code, which is cheap because one month is a few hundred rows.\n- **WisDOT's ArcGIS server is intermittently slow** — it overran a 12s budget on the first\n  production call and answered in ~1s on retry. Every tool retries once and then returns\n  `{ error, hint }` telling the caller to retry, rather than reporting an upstream stall as\n  missing data.\n\n## Data sources\n\n- California — [data.ca.gov Vehicle Fuel Type Count by Zip Code](https://data.ca.gov/dataset/vehicle-fuel-type-count-by-zip-code) (CKAN `datastore_search_sql`), plus the `dmv.ca.gov` WP REST endpoints for [field offices](https://www.dmv.ca.gov/portal/wp-json/wp/v2/dmv_field-office), forms and the NAIC insurer lookup\n- New York — [data.ny.gov](https://data.ny.gov) Socrata `w4pv-hbkt` (registrations), `9upz-c7xg` (offices)\n- Washington — [data.wa.gov](https://data.wa.gov) Socrata `f6w7-q2d2` (EV population), `hmzg-s6q4` (registration transactions)\n- Maryland — [opendata.maryland.gov](https://opendata.maryland.gov) Socrata `db8v-9ewn`, `qtcv-n3tc`, `tugr-unu9`\n- Pennsylvania — [PennDOT ArcGIS EV registrations by county](https://gis.penndot.pa.gov/gis/rest/services/opendata/evregistrationscounty/MapServer/0)\n- Delaware — [data.delaware.gov](https://data.delaware.gov) Socrata `ity3-3688`\n- Hawaii — [opendata.hawaii.gov](https://opendata.hawaii.gov) DBEDT cumulative hybrid/EV series\n- Texas — [data.texas.gov](https://data.texas.gov) Socrata `cbmj-zeje`\n- Connecticut — [data.ct.gov](https://data.ct.gov) Socrata `y7ky-5wcz`\n- North Carolina — [NCDOT Instant Wait Time service](https://wait.services.ncdot.gov/IWT/IWTWeb/XmlStats.aspx?controller=IWT_UnitsListXML&UnitID=2)\n- Oregon — [Oregon DMV wait times](https://dmv2u2.odot.state.or.us/waittimes/home/map)\n- Missouri — [data.mo.gov](https://data.mo.gov) Socrata `835g-7keg` · Wisconsin — [WisDOT ArcGIS](https://dotmaps.wi.gov/arcgis/rest/services/agohub/DMV_SERVICE_CENTER/MapServer/0) · Indiana — [BMV branch map](https://www.in.gov/bmv/branch-locations-and-hours/bmv-branch-map/) · Tennessee — [TN SAFETY ArcGIS](https://tnmap.tn.gov/arcgis/rest/services/SAFETY/DriverServiceCenters/MapServer/0) · DC — [opendata.dc.gov](https://opendata.dc.gov) · Iowa — [Iowa DOT ArcGIS](https://data.iowadot.gov) · New Jersey — [data.nj.gov](https://data.nj.gov) Socrata `t6tk-mr48`\n\n## Quick Start\n\nAdd to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"us-dmv\": {\n      \"url\": \"https://gateway.pipeworx.io/us-dmv/mcp\"\n    }\n  }\n}\n```\n\nOr connect to the full Pipeworx gateway for access to all 1370+ data sources:\n\n```json\n{\n  \"mcpServers\": {\n    \"pipeworx\": {\n      \"url\": \"https://gateway.pipeworx.io/mcp\"\n    }\n  }\n}\n```\n\n## Using with ask_pipeworx\n\nInstead of calling tools directly, you can ask questions in plain English:\n\n```\nask_pipeworx({ question: \"your question about US State DMV data\" })\n```\n\nThe gateway picks the right tool and fills the arguments automatically.\n\n## More\n\n- [All tools and guides](https://github.com/pipeworx-io/examples)\n- [pipeworx.io](https://pipeworx.io)\n\n## License\n\nMIT\n",
  "bytes": 7937,
  "sha": "f1bedf05fa78025d8e0a8f14256896afb4f6de01cd8cc727d28569b32f957ea5",
  "repo_slug": "pipeworx-io/mcp-us-dmv",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pipeworx_io_us_dmv_5ddad1b4/readme"
}