# WMATA MCP

> WMATA gives your AI client direct access to Washington DC Metro data. Track Metrorail and Metrobus in real-time, monitor service disruptions, check elevator outages, and plan park-and-ride trips—all from a single conversation.

## Overview
- **Category:** iot-hardware
- **Price:** Free
- **Tags:** public-transit, real-time-tracking, metrorail, metrobus, transit-data, commuter-services

## Description

This connector gives you full control over the massive amount of public transit data that runs DC’s system. Instead of having your agent navigate multiple websites or API endpoints for train times, bus locations, and service alerts, it pulls everything into one stream.

Your agent can predict exactly when the next Red Line train arrives at Gallery Place, track a specific Metrobus vehicle in real time, and cross-reference that with whether the elevator is working at the station entrance. If you combine this WMATA MCP with other services—say, an API for local event calendars or a user management system—you build automations that span multiple platforms. This kind of complex orchestration is what Vinkius makes possible; your agent can handle everything from checking bus predictions to logging the trip details in another service, all through one single connection.

The result is that your AI acts as a dedicated transit analyst, instantly providing real-time status and planning advice without you ever having to manually check multiple sources.

## Tools

### get_bus_incidents
Retrieves all current disruptions, detours, or service alerts affecting Metrobus lines and stops.

### get_bus_positions
Returns the real-time GPS coordinates for every active bus vehicle in the system.

### get_bus_route_details
Lists all stops and the full sequence of points served by a specific Metrobus route.

### get_bus_routes
Provides a complete list of every operational bus line name and its corresponding ID.

### get_circuit_predictions
Predicts the next arrival time for buses at major transfer stations like Union Station.

### get_elevator_incidents
Reports specific outages and estimated repair times for elevators or escalators at Metrorail stops.

### get_next_rail
Predicts the next train arrival time, line, and direction across the entire Metrorail network.

### get_parking_lots
Checks for available parking spaces and fee details at Metrorail station lots.

### get_rail_incidents
Lists active service disruptions, delays, or maintenance issues affecting specific Metrorail lines or stations.

### get_rail_stations
Provides a list of all Metrorail stations, optionally filtered by the line they serve.

### get_station_entrances
Identifies street-level entrances to a station, including their address and accessibility features.

### get_station_prediction
Predicts the next train arrival time specifically at a single, designated Metrorail station.

## Prompt Examples

**Prompt:** 
```
Show me the next trains arriving at Gallery Place station.
```

**Response:** 
```
Fetching predictions for Gallery Place (B36)... Next trains: Red Line to Glenmont — 2 minutes, 8 cars; Red Line to Shady Grove — 4 minutes, 6 cars; Yellow Line to Greenbelt — 6 minutes, 6 cars; Green Line to Branch Ave — 8 minutes, 6 cars; Yellow Line to Huntington — 10 minutes, 4 cars. All services operating on schedule with no delays reported.
```

**Prompt:** 
```
Are there any incidents affecting the Red Line right now?
```

**Response:** 
```
Checking Metrorail incidents... Currently 1 active incident: Single-tracking between Twinbrook and Rockville due to track maintenance. Expect 10-15 minute delays in both directions. Estimated resolution: 2:30 PM. No other incidents reported on the Red Line. All other lines are operating normally. Would you like me to check elevator status at any Red Line stations?
```

**Prompt:** 
```
Where is the closest entrance to Metro Center station from 12th Street?
```

**Response:** 
```
Fetching Metro Center (A01) entrances... Found 7 entrances. Closest to 12th Street: Entrance at 12th & G Streets NW — coordinates 38.8983, -77.0283, has escalator access. Also nearby: Entrance at 1155 Connecticut Ave NW — coordinates 38.9056, -77.0421, has elevator and escalator (accessible). Full list includes entrances on F Street, G Street, and Connecticut Avenue. Would you like walking directions from your current location to the closest entrance?
```

## Capabilities

### Get next train predictions
Determines the predicted arrival time and destination for trains at any major Metrorail station.

### Track real-time bus locations
Provides current GPS coordinates, direction, and route ID for every active Metrobus vehicle across DC.

### Identify service disruptions
Reports active delays or incidents affecting either Metrorail lines or Metrobus routes.

### Map station details and entrances
Lists all stations, their codes, surrounding street entrances, and coordinates for wayfinding.

### Verify accessibility status
Checks the operational status of elevators and escalators at specific Metrorail stations.

### Plan park-and-ride trips
Finds available parking lots, fee structures, and amenities at various station locations.

## Use Cases

### The commuter needs to know if they can make a connection.
A user asks, 'Can I get from the bus stop near Foggy Bottom to my destination by train?' The agent uses `get_bus_predictions` and then coordinates with `get_station_prediction`, providing a complete travel time estimate.

### The developer needs to build an accessibility map.
A team builds a service that combines `get_rail_stations` to list all points, `get_station_entrances` for street access, and `get_elevator_incidents` to mark which ones are currently offline.

### The planner needs to advise on alternative routes during a major failure.
A user asks about delays. The agent checks both `get_rail_incidents` and `get_bus_incidents`, then uses `get_bus_routes` to find the next viable bus option, giving immediate alternatives.

### The traveler needs to plan a full day's trip with parking.
A user asks for directions. The agent first checks `get_parking_lots` for nearby space, then uses `get_station_entrances` to guide them to the best physical entry point.

## Benefits

- Avoid manual checking: Instead of opening the Metro website, your agent handles all inquiries using `get_rail_incidents` and `get_bus_incidents` automatically. You get a single summary report.
- Proactive planning: Use `get_next_rail` or `get_station_prediction` to give riders accurate arrival predictions before they even ask, improving the user experience dramatically.
- Accessibility assurance: Before sending a person with mobility concerns out, your agent checks `get_elevator_incidents`, ensuring every step of their journey is physically possible.
- Complete route mapping: You don't just get train times; you use `get_bus_route_details` to map the entire sequence of stops for a bus line, giving users full coverage awareness.
- Optimized data flow: Vinkius handles all the complexity behind these calls. Its native token optimization cuts down on API overhead when your agent runs multiple checks in one go.

## How It Works

The bottom line is: you talk to the AI, and the AI pulls live, structured transit data from WMATA without you writing any complex API calls yourself.

1. Subscribe to this MCP on Vinkius and input your WMATA API key.
2. Connect your preferred client (Claude, Cursor, etc.) to the platform using that single connection.
3. Ask your agent a question—like 'What's wrong with the bus coming from Tysons Corner?'—and it runs the necessary data lookups.

## Frequently Asked Questions

**How do I use get_bus_positions with WMATA?**
You ask your agent to check the real-time location of buses. The MCP returns the specific vehicle IDs, their current latitude/longitude coordinates, and which route they're on.

**What is get_rail_incidents for?**
It lets you see all active service disruptions affecting Metrorail lines. This includes everything from simple delays to major power problems or track maintenance alerts.

**Does the WMATA MCP help with accessibility? (get_elevator_incidents)**
Yes, it checks for elevator and escalator outages. You can verify station access before planning a trip, which is critical for mobility planning.

**How do I find all the bus routes using get_bus_routes?**
You ask your agent to list all available bus routes. It returns route IDs and names across DC, Maryland, and Virginia, letting you know which services exist before checking for predictions.

**How do I find station codes before using get_station_prediction?**
You must use `get_rail_stations` first. This tool lists every Metrorail station and provides the necessary 3-letter station code (like A01 or B36). Once you have that code, you can pass it to other tools like `get_station_prediction` for accurate, localized arrival data.

**Can I narrow down my search when running get_bus_positions?**
Yes, you can. While `get_bus_positions` tracks all buses system-wide, you should filter the results by a specific route ID or destination name. This narrows the focus and helps pinpoint exactly where a bus is in real time.

**What’s the difference between checking next trains via get_next_rail and getting station predictions with get_station_prediction?**
`get_next_rail` gives you a wide, system-wide view of all upcoming train arrivals at or near a station. `get_station_prediction`, however, provides highly specific arrival data for only one given Metrorail station code, giving more granular details.

**How do I plan a park-and-ride trip using get_parking_lots?**
First, run `get_parking_lots` by the specific station to check current availability and fees. Then, you can use that location information with other tools, like getting station entrances or checking rail incidents, to plan the rest of your journey.

**Can my AI check when the next Metrorail train is arriving at my station?**
Yes! Use the `get_station_prediction` tool with the station code (e.g., "A01" for Metro Center, "B36" for Gallery Place). Your AI will return all upcoming trains with destination names, line colors (Red, Orange, Silver, Blue, Yellow, Green), predicted arrival times in minutes, and car counts. If you do not know the station code, first use `get_rail_stations` to find it by name. For a system-wide view of all upcoming trains, use `get_next_rail` without a station code.

**How do I check if there are any delays or incidents affecting my Metrorail line?**
Use the `get_rail_incidents` tool to check all active service disruptions across the Metrorail system. This returns incident descriptions, affected stations and lines, incident types (delays, power problems, medical emergencies, track maintenance), and start times. You can also check `get_elevator_incidents` for elevator and escalator outages that may affect accessibility at your station. For Metrobus service issues, use `get_bus_incidents`.

**Can I track Metrobus vehicles in real-time to see when my bus will arrive?**
Yes! Use `get_bus_positions` to see real-time GPS locations of all Metrobus vehicles, or filter by route ID (e.g., "30N", "X2") to track buses on a specific route. Returns vehicle IDs, route IDs, latitude/longitude, destinations, and schedule deviation in seconds. For detailed route information including stop sequences, use `get_bus_route_details` with the route ID. Use `get_bus_routes` first to find route IDs if unknown.