# onebusaway-mcp-server MCP server

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

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cyanheads-onebusaway-mcp-server
- Repository: https://github.com/cyanheads/onebusaway-mcp-server

## Install
- Command: `npx -y @cyanheads/onebusaway-mcp-server`
- Endpoint: https://onebusaway.caseyjhand.com/mcp
- Auth: Not captured

## Setup notes
- Package: Npm @cyanheads/onebusaway-mcp-server v0.1.8
- Environment variable: ONEBUSAWAY_API_KEY (default TEST)
- Environment variable: ONEBUSAWAY_BASE_URL (default https://api.pugetsound.onebusaway.org)
- Environment variable: MCP_LOG_LEVEL (default info)
- Package: Npm @cyanheads/onebusaway-mcp-server v0.1.8
- Environment variable: ONEBUSAWAY_API_KEY (default TEST)
- Environment variable: ONEBUSAWAY_BASE_URL (default https://api.pugetsound.onebusaway.org)
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- Environment variable: MCP_HTTP_PORT (default 3010)
- Environment variable: MCP_HTTP_ENDPOINT_PATH (default /mcp)
- Environment variable: MCP_AUTH_MODE (default none)
- Environment variable: MCP_LOG_LEVEL (default info)
- Remote endpoint: https://onebusaway.caseyjhand.com/mcp

## Tools
- onebusaway_list_agencies (List Transit Agencies) - List all transit agencies served by this OneBusAway instance. Returns agency IDs, names, contact info, timezone, and geographic coverage center. Agency IDs are needed for onebusaway_list_routes_for_agency and onebusaway_get_vehicles. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_find_stops (Find Stops Near Location) - Find bus stops near a location. Returns stops within a radius, each with ID, name, direction, served routes, and wheelchair boarding status. Use stopId values from results to fetch real-time arrivals with onebusaway_get_arrivals. Optionally filter by stop code (the number printed on the stop sign, e.g. "75403"). Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_find_routes (Find Routes Near Location) - Find transit routes near a location, optionally filtered by name or number. Returns routes with IDs, short names, and descriptions. Use routeId values to fetch schedules, vehicles, or stop sequences. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_search_stops (Search Stops by Name or Code) - Search for stops by name or code. Returns matching stops with IDs and coordinates. Use to resolve a human-readable stop name or number to a stop ID for arrivals lookups with onebusaway_get_arrivals. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_search_routes (Search Routes by Name or Number) - Search for routes by name or number. Returns matching routes with IDs. Use to resolve a route short name (e.g. "44") to a route ID for schedule or vehicle lookups with onebusaway_get_vehicles or onebusaway_get_schedule_for_route. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_stop (Get Stop Details) - Fetch details for a specific stop by ID. Returns the stop's name, coordinates, direction, served routes, and wheelchair accessibility. Stop IDs use agency-prefixed format: {agencyId}_{localId} (e.g. "1_75403" for Metro Transit stop 75403). Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_route (Get Route Details) - Fetch details for a specific route by ID. Returns short name, description, agency, route type, and schedule URL. Route IDs use agency-prefixed format: {agencyId}_{localId} (e.g. "1_100259"). Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_list_routes_for_agency (List Routes for Agency) - List all routes operated by an agency. Returns route IDs, short names, and descriptions. Use to enumerate an agency's full service before searching for a specific route. Get agencyId values from onebusaway_list_agencies. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_arrivals (Get Real-Time Arrivals) - Real-time arrivals and departures at a stop. Returns predicted arrival times, schedule deviation (how many seconds late/early), vehicle positions, and any active service alerts. The predicted boolean on each arrival indicates whether GPS tracking backs the estimate — predicted=false means schedule-only. Use tripId from results for follow-up onebusaway_get_trip calls. Stop IDs use agency-prefixed format: {agencyId}_{localId} (e.g. "1_75403"). Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_alert (Get Service Alert Detail) - Fetch full detail for a service alert (situation) by ID. Returns the summary, description, reason (e.g. detour, construction), affected stops and routes, consequence description, and active time windows. Situation IDs appear in onebusaway_get_arrivals responses under situationIds and situations[].id. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_trip (Get Trip Status) - Real-time status and stop sequence for a trip. Returns vehicle position, schedule deviation, current phase, and remaining stops. Use tripId from onebusaway_get_arrivals to look up a specific vehicle's progress. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_block (Get Block Schedule) - Fetch the full-day block schedule for a vehicle by block ID. A block is the ordered sequence of trips a single vehicle makes in one service day. Returns all trips in order with their stop times. Useful for 'when will this bus return?' and fleet tracking. Block IDs appear in onebusaway_get_trip responses under the schedule block field; obtain a tripId from onebusaway_get_arrivals first. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_vehicles (Get Real-Time Vehicle Positions) - Real-time positions of all active vehicles for an agency. Optionally filter to a single route (client-side). Returns GPS coordinates, heading, schedule deviation, and current trip. Useful for "where are all the buses on route X right now?" Use agencyId values from onebusaway_list_agencies. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_schedule_for_stop (Get Stop Schedule) - Full-day departure schedule for a stop. Lists every departure by route and direction for the specified date (defaults to today). Useful for planning or when real-time data isn't needed. For live predictions, use onebusaway_get_arrivals instead. Endpoint: https://onebusaway.caseyjhand.com/mcp
- onebusaway_get_schedule_for_route (Get Route Schedule) - Full-day schedule for a route — all trips, stop sequences, and departure times for the specified date (defaults to today). Returns up to all trips for the route. For live predictions, use onebusaway_get_arrivals at specific stops instead. Endpoint: https://onebusaway.caseyjhand.com/mcp

## Resources
- onebusaway://stop/1_75403 - OneBusAway Stop Stop metadata for Metro Transit stop 75403 (Puget Sound instance). MIME type: application/json
- onebusaway://route/1_100259 - OneBusAway Route Route metadata for Metro Transit route 100259 (Puget Sound instance). MIME type: application/json

## Prompts
Not captured

## Metadata
- Owner: io.github.cyanheads
- Version: 0.1.8
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jun 4, 2026
- Source: https://registry.modelcontextprotocol.io
