List Transit Service Alerts
transit_list_service_alertsCheck live service alerts for Bay Area transit delays, outages, detours, and planned disruptions. Filter by agency or keyword to see what's affecting your commute.
Instructions
Service alerts — delays, outages, detours and planned disruptions.
Answers "is BART running normally", "why is my line delayed" and "anything I should know before I leave". Omit operator_id to sweep every Bay Area agency in a single request, which is also the kinder option against the hourly quota.
Args:
operator_id (string): limit to one agency; omit for all operators
query (string): substring match on the headline or description
active_only (boolean): only alerts whose active period covers now (default: true)
limit (number): maximum alerts to return (default: 25)
response_format ('markdown' | 'json'): output format (default: 'markdown')
Returns: { "count": number, "total": number, "truncated": boolean, "alerts": [ { "id": string, "header": string, "description": string, "effect": string, "cause": string, "routes": [string], "start": number, "end": number } ] // epoch SECONDS }
Examples:
"Any BART delays?" -> operator_id='BA'
"Anything wrong on my commute?" -> omit operator_id, read across agencies
"Weekend track work?" -> active_only=false, query='weekend'
Don't use when: you want a specific stop's arrivals (use transit_next_departures)
Error Handling:
No alerts is genuinely good news, not an error — it means normal service
Timestamps here are epoch seconds, unlike the ISO strings elsewhere in this API
Setting active_only=false surfaces future planned work as well as current problems
511 allows 60 requests per hour across ALL endpoints
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "transit_list_service_alerts"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (max 200) | |
| query | No | Case-insensitive substring match on the alert headline or description | |
| active_only | No | Only alerts whose active period covers now | |
| operator_id | No | Limit to one agency; omit for alerts across every Bay Area operator | |
| response_format | No | Output format: 'markdown' for human-readable, 'json' for machine-readable | markdown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | ||
| total | Yes | ||
| alerts | Yes | ||
| truncated | Yes |