Skip to main content
Glama

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/onebusaway-mcp-server
GitHub Stars
1

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 15 of 15 tools scored. Lowest: 3.6/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct query type: location-based find, name-based search, specific entity retrieval, and listings. Overlapping purposes like find_routes vs search_routes are clearly differentiated by search criteria.

Naming Consistency5/5

All tools follow the onebusaway_ prefix with consistent verb_noun pattern: get_ for single entities, get_schedule_for_ for schedules, list_ for enumerations, find_ for location, search_ for name. Naming is predictable and logical.

Tool Count5/5

15 tools cover the full spectrum of transit queries (agencies, routes, stops, trips, blocks, alerts, vehicles, schedules) without bloat. Each tool serves a clear purpose within the domain.

Completeness5/5

The tool set provides comprehensive read-only coverage for a transit system: agency listings, route/stop discovery by various criteria, schedules, real-time arrivals, vehicle positions, trip status, and alerts. No obvious gaps for common use cases.

Available Tools

15 tools
onebusaway_find_routesFind Routes Near Location
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the search center, in [-90, 90].
lonYesLongitude of the search center, in [-180, 180].
queryNoFilter by route name or number (e.g. "44" or "Link Light Rail").
radiusNoSearch radius in meters. Must be positive; capped at 1600m. Defaults to 500m. Ignored when latSpan and lonSpan are both set.
latSpanNoOptional bounding-box height in degrees, as an alternative to radius. Takes effect only when lonSpan is also set, in which case radius is ignored.
lonSpanNoOptional bounding-box width in degrees, as an alternative to radius. Takes effect only when latSpan is also set, in which case radius is ignored.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of routes returned.
queryNoRoute name/number filter applied to the search, if any.
noticeNoGuidance when no routes matched — e.g. try a larger radius or different query.
routesYesRoutes found near the specified location.
limitExceededYesTrue if more routes exist beyond the returned set; narrow the radius or set latSpan/lonSpan to see all.
onebusaway_find_stopsFind Stops Near Location
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the search center, in [-90, 90].
lonYesLongitude of the search center, in [-180, 180].
queryNoOptional stop code filter (the number printed on the stop sign, e.g. "75403"). When provided, returns only stops matching this code within the radius.
radiusNoSearch radius in meters. Must be positive; capped at 1600m, beyond which results degrade. Defaults to 300m.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of stops returned.
queryNoStop code filter applied to the search, if any.
stopsYesStops within the search radius.
noticeNoGuidance when results are empty or truncated — e.g. how to narrow the radius or verify the stop code.
limitExceededYesTrue if more stops exist beyond the returned set; narrow the radius to see all.
onebusaway_get_alertGet Service Alert Detail
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
situationIdYesSituation/alert ID from onebusaway_get_arrivals (situations[].id or arrivals[].situationIds[]).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesSituation ID.
urlYesURL for more information about this alert, or null.
reasonYesReason code from TPEG: equipmentReason, environmentReason, personnelReason, miscellaneousReason, securityAlert. Null when not provided.
affectsYesStops, routes, trips, or agencies affected by this alert.
summaryYesShort summary of the service alert.
severityYesSeverity level as reported by the agency, or null.
descriptionYesLonger description of the alert, or null.
consequencesYesOperational consequences of this alert.
activeWindowsYesTime windows when this alert is active.
consequenceMessageYesHuman-readable consequence description (e.g. "Detour in effect"), or null.
onebusaway_get_arrivalsGet Real-Time Arrivals
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stopIdYesAgency-prefixed stop ID (e.g. "1_75403" for Metro Transit stop 75403). Use onebusaway_find_stops or onebusaway_search_stops to discover IDs.
minutesAfterNoInclude arrivals expected within the next N minutes. Defaults to 35.
minutesBeforeNoInclude arrivals that departed up to this many minutes ago. Defaults to 5.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of arrivals in the time window.
noticeNoGuidance when no arrivals were found — e.g. try expanding the time window or check for service alerts.
stopIdYesThe queried stop ID.
arrivalsYesArrivals and departures at this stop within the requested time window.
stopNameYesStop name.
situationsYesActive service alerts referenced by arrivals at this stop.
currentTimeYesServer time as Unix milliseconds, for computing countdown timers.
queriedStopYesStop ID queried.
windowMinutesYesTime window used for the arrivals query.
onebusaway_get_blockGet Block Schedule
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
blockIdYesBlock ID from a trip record. Obtain a tripId from onebusaway_get_arrivals, then call onebusaway_get_trip to get the blockId.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tripsYesAll trips in this block in order.
blockIdYesBlock ID.
activeServiceIdsYesService calendar IDs active for this block today.
inactiveServiceIdsYesService calendar IDs not active for this block today.
onebusaway_get_routeGet Route Details
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
routeIdYesAgency-prefixed route ID (e.g. "1_100259"). Use onebusaway_find_routes or onebusaway_search_routes to discover IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesAgency-prefixed route ID.
urlYesAgency schedule page URL, or null.
typeYesGTFS route type: 0=tram, 1=subway, 2=rail, 3=bus, 4=ferry, 5=cable_car.
colorYesRoute brand color hex (without #), or null.
agencyIdYesAgency ID that operates this route.
longNameYesFull route name.
shortNameYesThe number or short name displayed on vehicles (e.g. "44").
agencyNameYesAgency name that operates this route.
descriptionYesRoute description.
onebusaway_get_schedule_for_routeGet Route Schedule
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoISO 8601 date (e.g. "2026-05-23"). Defaults to today.
routeIdYesAgency-prefixed route ID (e.g. "1_100259"). Use onebusaway_find_routes or onebusaway_search_routes to discover IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNoDate parameter used for the schedule request, if specified.
tripsYesAll trips for this route on this date, with their stop sequences.
noticeNoGuidance when no trips were found — e.g. no service on weekends or holiday schedule in effect.
routeIdYesThe queried route ID.
tripCountYesNumber of trips for this route on this date.
queriedRouteYesRoute ID queried.
serviceDateMsYesService date as Unix milliseconds.
routeShortNameYesRoute short name.
onebusaway_get_schedule_for_stopGet Stop Schedule
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoISO 8601 date (e.g. "2026-05-23"). Defaults to today in the agency's timezone.
stopIdYesAgency-prefixed stop ID (e.g. "1_75403"). Use onebusaway_find_stops or onebusaway_search_stops to discover IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNoDate parameter used for the schedule request, if specified.
noticeNoGuidance when no routes were found — e.g. no service on weekends or holiday schedule in effect.
routesYesAll routes with departures from this stop on this date.
stopIdYesThe queried stop ID.
stopNameYesStop name.
routeCountYesNumber of routes with departures from this stop on this date.
queriedStopYesStop ID queried.
serviceDateMsYesService date as Unix milliseconds (start of service day).
onebusaway_get_stopGet Stop Details
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
stopIdYesAgency-prefixed stop ID (e.g. "1_75403" for Metro Transit stop 75403, "40_100239" for Sound Transit). Use onebusaway_find_stops or onebusaway_search_stops to discover IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesAgency-prefixed stop ID.
latYesLatitude of the stop.
lonYesLongitude of the stop.
codeYesThe stop code printed on the sign.
nameYesStop name.
routeIdsYesIDs of routes that serve this stop. Use with onebusaway_get_arrivals or onebusaway_get_schedule_for_stop.
directionYesCompass direction of travel at this stop (e.g. "NW").
wheelchairBoardingYesWheelchair boarding status.
onebusaway_get_tripGet Trip Status
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tripIdYesTrip ID from an arrivals response or schedule lookup.
serviceDateMsNoService date as Unix milliseconds (midnight local time). Only needed for trips from a previous service day. Omit to use today.
includeScheduleNoWhether to include the full stop sequence with times. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesReal-time status of the trip.
tripIdYesThe queried trip ID.
blockIdYesBlock ID grouping this trip with the others the same vehicle runs back-to-back. Pass to onebusaway_get_block for the full block schedule. Null when the trip has no block.
scheduleYesFull stop sequence with times, or null if includeSchedule=false.
situationsYesActive situation IDs affecting this trip.
tripHeadsignYesDestination sign text.
routeShortNameYesRoute short name (e.g. "44").
onebusaway_get_vehiclesGet Real-Time Vehicle Positions
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
routeIdNoOptional agency-prefixed route ID to filter results to one route. Filtering is client-side — all agency vehicles are fetched first.
agencyIdYesAgency ID (e.g. "1" for Metro Transit, "40" for Sound Transit). Use onebusaway_list_agencies to discover IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of vehicles returned after any route filter.
noticeNoGuidance when no vehicles were found — e.g. the route may not be currently active, or the agency may not have real-time data.
routeIdNoRoute ID filter applied client-side, if any.
agencyIdYesAgency ID queried.
vehiclesYesActive vehicles for the agency, optionally filtered by route.
limitExceededYesTrue if the upstream capped the vehicle list — some vehicles were omitted. This endpoint has no pagination to retrieve them.
onebusaway_list_agenciesList Transit Agencies
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of transit agencies returned.
noticeNoGuidance when no agencies were returned.
agenciesYesAll agencies served by this OneBusAway instance.
limitExceededYesTrue if the upstream capped the agency list — some agencies were omitted. This endpoint has no pagination to retrieve them.
onebusaway_list_routes_for_agencyList Routes for Agency
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
agencyIdYesAgency ID (e.g. "1" for Metro Transit, "40" for Sound Transit). Use onebusaway_list_agencies to discover IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of routes returned for this agency.
noticeNoGuidance when no routes were found — verify the agency ID with onebusaway_list_agencies.
routesYesAll routes operated by this agency.
agencyIdYesAgency ID queried.
limitExceededYesTrue if the upstream capped the route list — some routes were omitted. This endpoint has no pagination to retrieve them.
onebusaway_search_routesSearch Routes by Name or Number
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesRoute name or number (e.g. "44", "Link", or "RapidRide").
maxCountNoMaximum number of results to return. A positive integer, at most 100. Defaults to 10.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of routes returned.
queryYesRoute name/number query sent to the API.
noticeNoGuidance when no routes matched — e.g. try onebusaway_find_routes with coordinates, or onebusaway_list_routes_for_agency.
routesYesRoutes matching the search query.
limitExceededYesTrue if more routes match than were returned; raise maxCount or refine the query to see all.
onebusaway_search_stopsSearch Stops by Name or Code
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesStop name fragment or stop code (e.g. "University Way" or "75403").
maxCountNoMaximum number of results to return. A positive integer, at most 100. Defaults to 10.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of stops returned.
queryYesSearch query sent to the API.
stopsYesStops matching the search query.
noticeNoGuidance when no stops matched — e.g. try a different name fragment or use onebusaway_find_stops with coordinates.
limitExceededYesTrue if more stops match than were returned; raise maxCount or refine the query to see all.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.