Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs.
Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs. That is what the onebusaway mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.
Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.
The server publishes 14 tools. What each one is for:
onebusaway_list_agencies — List all transit agencies on this OneBusAway instance with IDs, contact info, and geographic coverageonebusaway_find_stops — Find bus stops near a lat/lon within a configurable radius, optionally filtered by stop codeonebusaway_search_stops — Search stops by name or code string to resolve a human-readable name to a stop IDonebusaway_get_stop — Fetch details for a specific stop by agency-prefixed IDonebusaway_find_routes — Find transit routes near a lat/lon, optionally filtered by name or numberonebusaway_search_routes — Search routes by name or number to resolve a route short name to a route IDonebusaway_get_route — Fetch details for a specific route by agency-prefixed IDonebusaway_list_routes_for_agency — List all routes operated by an agencyonebusaway_get_arrivals — Real-time arrivals and departures at a stop — GPS-tracked predictions, schedule deviation, vehicle positions, and active alertsonebusaway_get_trip — Real-time status and full stop sequence for an active triponebusaway_get_vehicles — Real-time positions of all active vehicles for an agency, optionally filtered to one routeonebusaway_get_schedule_for_stop — Full-day departure schedule for a stop by route and directionConfiguration is passed through the environment: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, ONEBUSAWAY_API_KEY, ONEBUSAWAY_BASE_URL, MCP_HTTP_ENDPOINT_PATH. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
TEST works on the Puget Sound instance for development. For production use or other instances, register at the relevant agency's developer portal.This sits in the developer tooling group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Onebusaway's toolset — onebusaway_list_agencies, onebusaway_find_stops, onebusaway_search_stops and 11 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| onebusaway_list_agencies | List all transit agencies on this OneBusAway instance with IDs, contact info, and geographic coverage |
| onebusaway_find_stops | Find bus stops near a lat/lon within a configurable radius, optionally filtered by stop code |
| onebusaway_search_stops | Search stops by name or code string to resolve a human-readable name to a stop ID |
| onebusaway_get_stop | Fetch details for a specific stop by agency-prefixed ID |
| onebusaway_find_routes | Find transit routes near a lat/lon, optionally filtered by name or number |
| onebusaway_search_routes | Search routes by name or number to resolve a route short name to a route ID |
| onebusaway_get_route | Fetch details for a specific route by agency-prefixed ID |
| onebusaway_list_routes_for_agency | List all routes operated by an agency |
| onebusaway_get_arrivals | Real-time arrivals and departures at a stop — GPS-tracked predictions, schedule deviation, vehicle positions, and active alerts |
| onebusaway_get_trip | Real-time status and full stop sequence for an active trip |
| onebusaway_get_vehicles | Real-time positions of all active vehicles for an agency, optionally filtered to one route |
| onebusaway_get_schedule_for_stop | Full-day departure schedule for a stop by route and direction |
| onebusaway_get_schedule_for_route | Full-day schedule for a route — all trips and stop sequences |
| onebusaway_get_alert | Fetch full service alert detail by situation ID — summary, description, reason, affected stops/routes, consequence, and active time windows |
{
"mcpServers": {
"onebusaway-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/onebusaway-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"ONEBUSAWAY_API_KEY": "TEST"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
TEST works on the Puget Sound instance for development. For production use or other instances, register at the relevant agency's developer portal.| Variable | Description | Required |
|---|---|---|
| MCP_TRANSPORT_TYPE | Configuration value read at startup. | Optional |
| MCP_LOG_LEVEL | Configuration value read at startup. | Optional |
| ONEBUSAWAY_API_KEY | Credential the server authenticates with. | Yes |
| ONEBUSAWAY_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| MCP_HTTP_ENDPOINT_PATH | Filesystem location the server is allowed to use. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.