WMATA integration
WMATA is the transit authority of the Washington, DC area (Metrorail and Metrobus). Get real-time next train and next bus predictions, live train and bus positions, rail and bus incidents, elevator and escalator outages, and reference data: rail lines and stations (address, entrances, parking, opening and first and last train times, fares and travel time between two stations), track circuits, and bus routes, stops, paths and schedules. Station codes come from list_rail_stations, stop ids from search_bus_stops. The XML twins of each call, the GTFS and GTFS-RT feeds (zip and protobuf files, and the GTFS Metro Alert JSON files, whose format is undocumented) and the key-validation route are not exposed. The API is free; authentication is the subscription key from the WMATA developer portal, sent in the api_key header.
Say what should happen.
The workflow builds itself.
What you can do with WMATA
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Bus incident, 1 operation
list_bus_incidentsList bus incidentsGETReturns reported Metrobus delays and alerts (description, type, routes affected, last update) for one base route, or for all routes when Route is omitted. Refreshed about every 20 to 30 seconds.
Elevator incident, 1 operation
list_elevator_escalator_outagesList elevator escalator outagesGETReturns elevator and escalator outages at one rail station or at all: unit, location in the station, reason, when it went out of service and the estimated return. A station with two platforms needs one call per station code.
Get prediction, 1 operation
get_next_trainsGet next trainsGETReturns real-time next train arrivals at one or more stations (comma-separated codes, or All): line, destination, cars, track group and minutes away (or ARR, BRD). Empty when no prediction is available.
Incident, 1 operation
list_rail_incidentsList rail incidentsGETReturns current Metrorail disruptions and delays (the data of the Metrorail Service Status feed): description, incident type, affected line codes and last update time. Refreshed about every 20 to 30 seconds.
J bus position, 1 operation
list_bus_positionsList bus positionsGETReturns the live position of each Metrobus: latitude, longitude, minutes off schedule, direction, trip, headsign and vehicle id. Filter by base route (no variant such as 10Av1) and/or a circle (Lat, Lon, Radius); no filter returns every bus.
J line, 1 operation
list_rail_linesList rail linesGETLists the Metrorail lines with their two-letter code (RD, BL, YL, OR, GR, SV), display name and the codes of their start, end and intermediate terminal stations.
J path, 1 operation
get_path_between_stationsGet path between stationsGETReturns the ordered stations between two stations on the same line, with the distance in feet from each station to the previous one. Not suitable on its own as a trip planner.
J prediction, 1 operation
get_next_busesGet next busesGETReturns real-time predictions for the next buses at a stop: route, direction and destination text, minutes until arrival, trip and vehicle id, plus the stop's name.
J route, 1 operation
list_bus_routesList bus routesGETLists every Metrobus route variant (pattern) with its id, name and line description. Variants such as 10A and 10Av1 are one route stopping at slightly different places. Route ids feed get_bus_route_schedule and get_bus_route_details.
J route detail, 1 operation
get_bus_route_detailsGet bus route detailsGETReturns the path of a bus route variant on a date (today by default): for each direction, the ordered latitude/longitude shape points and the stops served, with stop ids usable in get_bus_stop_schedule and get_next_buses.
J route schedule, 1 operation
get_bus_route_scheduleGet bus route scheduleGETReturns the scheduled trips of a bus route variant on a date (today by default), per direction, with each stop's scheduled departure time. Set IncludingVariations to true to get every variant of a base route.
J src station to dst station info, 1 operation
get_station_to_station_infoGet station to station infoGETReturns the rail fare (peak, off-peak, senior/disabled), composite miles and scheduled travel time in minutes between two stations, on any lines. Omit both codes to get every station pair.
J station, 1 operation
list_rail_stationsList rail stationsGETLists Metrorail stations, all or those of one line (RD, YL, GR, BL, OR, SV): code, name, address, location, lines served and linked platform codes. Station codes feed every other rail tool.
J station entrance, 1 operation
search_station_entrancesSearch station entrancesGETFinds Metrorail station entrances within a radius in meters of a latitude and longitude: entrance name, location and the station codes it serves. With no parameter, returns every entrance.
J station info, 1 operation
get_station_infoGet station infoGETReturns one rail station's name, street address, latitude and longitude, the lines it serves and, for a station with two platforms, the code of the other platform.
J station parking, 1 operation
get_station_parkingGet station parkingGETReturns parking at one rail station or all: all-day spaces with the weekday and Saturday cost for Metro riders and non-riders, and short-term metered spaces. A station without parking returns no parking details.
J station time, 1 operation
get_station_timesGet station timesGETReturns a station's opening time and first and last train times with destinations, for each day of the week; omit StationCode for every station. A station with two platforms needs one call per station code.
J stop, 1 operation
search_bus_stopsSearch bus stopsGETFinds Metrobus stops within a radius in meters of a latitude and longitude, with each stop's id, name, location and route variants. With no parameter, returns every stop.
J stop schedule, 1 operation
get_bus_stop_scheduleGet bus stop scheduleGETReturns the buses scheduled at a stop on a date (today by default): route variant, scheduled time, trip start and end, direction and headsign, plus the stop's name, location and routes.
Standard route, 1 operation
list_standard_routesList standard routesGETReturns, per line and track number, the ordered revenue track circuits, with the station code where a circuit is at a station. Rarely changes: use it to place list_train_positions circuits along a line.
Track circuit, 1 operation
list_track_circuitsList track circuitsGETReturns every track circuit, including pocket tracks and crossovers, with its track number and its left and right neighbor circuits.
Train position, 1 operation
list_train_positionsList train positionsGETReturns every train in service with the track circuit it occupies, its line, destination, car count, direction, approximate dwell time and service type. Refreshed every 7 to 10 seconds.
Use WMATA from Claude Code, Cursor or Codex
Connect WMATA in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its WMATA operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect WMATA
- Create your workspace
Sign up free. Nothing to install.
- Connect WMATA once
Add your WMATA connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
WMATA integration FAQ
What can you do with the WMATA integration?
LiveContext exposes 22 operations on WMATA, covering bus incident, elevator incident, get prediction and incident.
