← Back to the trip planner

DMV Transit for AI assistants

Connect Claude, ChatGPT, Gemini or any MCP app to the region's buses and trains.

DMV Transit is an independent, unofficial service. It is not affiliated with, endorsed by or operated by WMATA or any transit agency. Always confirm times with the agency before you travel.

The server address

https://dmvtransit.com/mcp

It's a remote Model Context Protocol server (Streamable HTTP). No account or sign-in is needed, and every tool only reads information.

What your assistant can do with it

Agencies covered include Metro (WMATA) trains and buses, VRE, MARC, Maryland's MTA, Fairfax Connector, ART, DASH, CUE, Loudoun, OmniRide, Annapolis Transit, the Charm City Circulator, Virginia Breeze and intercity coaches.

Add it to your assistant

Claude

In Settings, open Connectors, choose to add a custom connector, and paste the server address. In Claude Code: claude mcp add --transport http dmv-transit https://dmvtransit.com/mcp

ChatGPT

In Settings, open Apps & Connectors and add a new connector with the server address and no authentication. Adding your own connectors may require turning on developer mode.

Gemini and other MCP apps

Use the server address wherever the app accepts a remote MCP server. For apps configured with a JSON file:

{
  "mcpServers": {
    "dmv-transit": { "url": "https://dmvtransit.com/mcp" }
  }
}

Then ask something like "How do I get from Union Station to the National Zoo?" or "What does MARC cost from Baltimore Penn to Union Station?"

Tools

ToolWhat it gives
plan_tripTrip options between two places, now or later: lines, times, walking and fares.
geocode_addressFinds an address, hotel or landmark and returns a point for planning.
plan_connectionConnections across agencies, and which days and times they run.
estimate_trip_costThe fare for each leg of a trip.
get_metro_routeMetrorail lines, direction and transfers between two stations.
get_fareMetrorail fares between two stations.
get_station_infoDetails of a Metro station.
get_elevator_escalator_statusMetro elevators and escalators out of service.
get_service_alertsCurrent service alerts.
get_rider_reportsRecent reports from riders on this site (unverified, labelled as such).
get_routeA bus or train route: its stops and service.
find_stops_nearStops near a place.
transfers_atRoutes that meet at a stop, and when.
how_to_payHow to pay for an agency's buses or trains, from its fare page.
search_transit_infoSearches the agencies' rider pages: fares, payment, accessibility, rules.
list_agenciesThe agencies covered.
list_topics, get_guidePlain-language rider guides, such as riding Metro for the first time.

Where the information comes from

Routes, stops and schedules come only from the agencies' published GTFS timetables, found through Transitland. Fares, how to pay and rider guidance come from the agencies' own web pages, and each answer cites the page it came from. Live Metro information comes from WMATA's public data. Addresses are found with Google Maps or geocode.maps.co. The tools tell assistants to answer only from these results.

Limits

Without a key, each network can make 120 requests a minute and 3,000 a day, which covers normal use. If you're building something that needs more, ask for a free API key (sent as Authorization: Bearer <key>) using the contact below.

Privacy

The server doesn't need or receive your name or account. It keeps no record of what you ask; your network address is used only, in memory, to apply the limits above. Addresses your assistant looks up are sent to Google Maps or geocode.maps.co to find them. See the full privacy policy and the terms of use.

Support

DMV Transit is built by Kaleb Neal. For help, a key or to report a wrong answer, reach Kaleb on LinkedIn.