{
  "markdown": "# @pipeworx/in-bmv\n\nIndiana DMV data: **Bureau of Motor Vehicles (BMV)** branches, self-service kiosks, BMV Connect\nlocations, motorcycle rider-training (RSI) courses and skills-test sites. Keyless.\n\nPart of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1476+ live data sources.\n\n## What Indiana calls its DMV\n\nIndiana's agency is the **Bureau of Motor Vehicles**, universally the **BMV**. Hoosiers say\n\"BMV branch\" where other states say \"DMV office\", so the tool description names both.\n\n## Tools\n\n| Tool | What it returns |\n|---|---|\n| `in_bmv_branches` | Address, phone, hours, coordinates, kiosk flag and rider-training courses for all 160 published locations |\n\nFilters: `city`, `name`, `zip`, `location_type`, `kiosk_only`, `limit`.\n\n## Auth\n\nNone. The source is a plain static JSON file on `in.gov` — no key, no query parameters, no\nrate limit to negotiate. The whole file is fetched and filtered in code.\n\n## Location type is the main axis of this data\n\nOne file covers six categories, which is unusual — most states publish only their staffed\noffices. Live counts as of 2026-07-30:\n\n| `typeLabel` | Count |\n|---|---|\n| BMV Branch + Kiosk | 60 |\n| BMV Branch | 56 |\n| RSI Training Course & Skills Test | 22 |\n| BMV Connect Location | 11 |\n| RSI Training Course | 10 |\n| Skills Test | 1 |\n\n`location_type` accepts those exact labels and also plain words — `\"branch\"`, `\"kiosk\"`,\n`\"connect\"`, `\"motorcycle\"`, `\"rider training\"`, `\"skills test\"`. `kiosk_only: true` is the\nseparate `hasKiosk` flag and keeps **72 of the 160** (the 60 \"Branch + Kiosk\" plus the\n11 BMV Connect kiosks and one more).\n\n## Gotchas worth knowing\n\nThese are live-verified behaviours, not guesses:\n\n- **`website` is an empty string on 127 of 160 rows**, not null. The tool normalises `\"\"` to\n  `null` so a caller can test for absence instead of comparing against the empty string.\n- **`hours` is null on 43 rows.** RSI training courses and skills-test sites are run by partner\n  organisations (ABATE of Indiana, Harley dealers) that schedule by appointment rather than\n  posting counter hours; the tool leaves those null rather than inventing a schedule.\n- **`url` on an RSI row points at the partner**, not at in.gov.\n- **No county column.** Indiana's branch map keys off coordinates, so `county` comes back null.\n- **ZIPs are sometimes ZIP+4** (`46203-6063`). The `zip` filter is a prefix match, so a\n  five-digit ZIP still matches.\n- **RSI rows are not branches.** A city filter like `\"Indianapolis\"` returns 12 locations, and\n  several are motorcycle-training sites — use `location_type=\"branch\"` when the caller wants a\n  place to renew a licence.\n\n## Data sources\n\n- [in.gov BMV branch map](https://www.in.gov/bmv/branch-locations-and-hours/bmv-branch-map/) —\n  `bmv-branchmap-locations.json`\n\n## Quick Start\n\nAdd to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"in-bmv\": {\n      \"url\": \"https://gateway.pipeworx.io/in-bmv/mcp\"\n    }\n  }\n}\n```\n\n### What this endpoint actually serves\n\n`tools/list` at `https://gateway.pipeworx.io/in-bmv/mcp` returns the tools in the table\nabove **plus the shared Pipeworx meta-tools** — `ask_pipeworx`,\n`discover_tools`, `search_within`, `remember`/`recall` and the rest of the\ngateway-wide set. So the tool count you see is larger than this table: a\nsingle-pack endpoint currently lists roughly 30 shared tools alongside the\npack's own. The connection's `initialize` response states its exact scope, and\nis the authoritative answer for a given day.\n\nThis is deliberate, not multiplexing by accident. The meta-tools are what let a\nscoped connection answer a question this pack does not cover — via\n`ask_pipeworx`, which routes across the whole catalog — without you adding a\nsecond MCP server. There is currently no way to mount a pack endpoint without\nthem; if the extra schemas cost you more context than the routing is worth,\nconnect to the full gateway once rather than to several pack endpoints.\n\nOr connect to the full Pipeworx gateway to get every pack's tools listed\ndirectly, instead of just this one's:\n\n```json\n{\n  \"mcpServers\": {\n    \"pipeworx\": {\n      \"url\": \"https://gateway.pipeworx.io/mcp\"\n    }\n  }\n}\n```\n\nBoth URLs reach the same gateway and the same 1476+ data sources. The\nonly difference is which pack's tools are listed **directly**; `ask_pipeworx`\nreaches all of them from either one.\n\n## Using with ask_pipeworx\n\nInstead of calling tools directly, you can ask questions in plain English —\nthis works on the pack endpoint above as well as on the full gateway:\n\n```\nask_pipeworx({ question: \"your question about In Bmv data\" })\n```\n\nThe gateway picks the right tool and fills the arguments automatically.\n\n## More\n\n- [Docs and guides](https://pipeworx.io/docs)\n- [pipeworx.io](https://pipeworx.io)\n\n## License\n\nMIT\n",
  "bytes": 4832,
  "sha": "059b0f660915f203259b84d962d6b3d354f997def16eef7295eda9bac6e03978",
  "repo_slug": "pipeworx-io/mcp-in-bmv",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pipeworx_io_in_bmv_3fa48bad/readme"
}