Onebusaway MCP Server

Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs.

Remote serverstreamable-http

What is the Onebusaway MCP Server?

Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs.

The short version

  • Declarative tool and resource definitions — single file per primitive, framework handles registration and validation
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Pluggable auth: none, jwt, oauth
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • STDIO and Streamable HTTP transports

What it needs from you

  • Bun v1.3.0 or higher (or Node.js v24+). - An OneBusAway API key. TEST works on the Puget Sound instance for development. For production use or other instances, register at the relevant agency's developer portal.

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
onebusaway_list_agenciesList all transit agencies on this OneBusAway instance with IDs, contact info, and geographic coverage
onebusaway_find_stopsFind bus stops near a lat/lon within a configurable radius, optionally filtered by stop code
onebusaway_search_stopsSearch stops by name or code string to resolve a human-readable name to a stop ID
onebusaway_get_stopFetch details for a specific stop by agency-prefixed ID
onebusaway_find_routesFind transit routes near a lat/lon, optionally filtered by name or number
onebusaway_search_routesSearch routes by name or number to resolve a route short name to a route ID
onebusaway_get_routeFetch details for a specific route by agency-prefixed ID
onebusaway_list_routes_for_agencyList all routes operated by an agency
onebusaway_get_arrivalsReal-time arrivals and departures at a stop — GPS-tracked predictions, schedule deviation, vehicle positions, and active alerts
onebusaway_get_tripReal-time status and full stop sequence for an active trip
onebusaway_get_vehiclesReal-time positions of all active vehicles for an agency, optionally filtered to one route
onebusaway_get_schedule_for_stopFull-day departure schedule for a stop by route and direction
onebusaway_get_schedule_for_routeFull-day schedule for a route — all trips and stop sequences
onebusaway_get_alertFetch full service alert detail by situation ID — summary, description, reason, affected stops/routes, consequence, and active time windows

How to install the Onebusaway MCP Server

{
  "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.

Configuration

  • Bun v1.3.0 or higher (or Node.js v24+). - An OneBusAway API key. TEST works on the Puget Sound instance for development. For production use or other instances, register at the relevant agency's developer portal.
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
ONEBUSAWAY_API_KEYCredential the server authenticates with.Yes
ONEBUSAWAY_BASE_URLEndpoint or connection string the server talks to.Yes
MCP_HTTP_ENDPOINT_PATHFilesystem location the server is allowed to use.Optional

Example prompts to try

  • “Use Onebusaway to onebusaway list agencies.”
  • “Use Onebusaway to onebusaway find stops.”
  • “Use Onebusaway to onebusaway search stops.”

Frequently asked questions

Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs. Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.