Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted 3 min ago
teppi

Server definition

Hash
sha256:2bdfc98827bcf34be5e6f58cfb3bd1103074aca7758340c4d0bf31d8e6f0e1e9
What it is
What a remote MCP server returned when asked what it offers: 16 tools

The blob, as servednamed by its sha256

{ "instructions": "OneBusAway MCP server — real-time transit data for Puget Sound (King County Metro, Sound Transit, Pierce Transit, Community Transit, and more) and other OneBusAway instances.\n- Stop IDs use agency-prefixed format: {agencyId}_{localId} (e.g. \"1_75403\" for Metro Transit stop 75403)\n- To get arrivals: use onebusaway_find_stops or onebusaway_search_stops to resolve a location/name to a stopId, then call onebusaway_get_arrivals\n- For \"where is the 44?\": use onebusaway_search_routes to get routeId, then onebusaway_get_vehicles\n- For \"what's happening at this stop?\": call onebusaway_get_stop_context — stop details, arrivals, and full detail for every alert on the stop, from one upstream request\n- For one service alert by ID: get a situationId from onebusaway_get_arrivals (situations[].id), then call onebusaway_get_alert\n- For a vehicle's full day schedule: get a tripId from onebusaway_get_arrivals, call onebusaway_get_trip to find the blockId, then call onebusaway_get_block\n- OneBusAway does not include trip planning — direct users to Google Maps or Transit app for routing", "tools": [ { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "lat": { "description": "Latitude of the search center, in [-90, 90].", "maximum": 90, "minimum": -90, "type": "number" }, "latSpan": { "description": "Optional bounding-box height in degrees, as an alternative to radius. Takes effect only when lonSpan is also set, in which case radius is ignored.", "exclusiveMinimum": 0, "type": "number" }, "lon": { "description": "Longitude of the search center, in [-180, 180].", "maximum": 180, "minimum": -180, "type": "number" }, "lonSpan": { "description": "Optional bounding-box width in degrees, as an alternative to radius. Takes effect only when latSpan is also set, in which case radius is ignored.", "exclusiveMinimum": 0, "type": "number" }, "query": { "description": "Filter by route name or number (e.g. \"44\" or \"Link Light Rail\").", "type": "string" }, "radius": { "default": 500, "description": "Search radius in meters. Must be positive; capped at 1600m. Defaults to 500m. Ignored when latSpan and lonSpan are both set.", "exclusiveMinimum": 0, "maximum": 1600, "type": "number" } }, "required": [ "lat", "lon" ], "type": "object" }, "name": "onebusaway_find_routes", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "routes", "limitExceeded", "count" ] }, { "required": [ "error" ] } ], "properties": { "count": { "description": "Number of routes returned.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "limitExceeded": { "description": "True if more routes exist beyond the returned set; narrow the radius or set latSpan/lonSpan to see all.", "type": "boolean" }, "notice": { "description": "Guidance when no routes matched — e.g. try a larger radius or different query.", "type": "string" }, "query": { "description": "Route name/number filter applied to the search, if any.", "type": "string" }, "routes": { "description": "Routes found near the specified location.", "items": { "additionalProperties": false, "description": "A transit route with agency and type information.", "properties": { "agencyId": { "description": "Agency ID that operates this route.", "type": "string" }, "agencyName": { "description": "Agency name that operates this route.", "type": "string" }, "color": { "description": "Route brand color hex (without #), or null.", "type": [ "string", "null" ] }, "description": { "description": "Route description.", "type": "string" }, "id": { "description": "Agency-prefixed route ID (e.g. \"1_100259\"). Use with onebusaway_get_schedule_for_route or onebusaway_get_vehicles.", "type": "string" }, "longName": { "description": "Full route name.", "type": "string" }, "shortName": { "description": "The number or short name displayed on vehicles (e.g. \"44\").", "type": "string" }, "type": { "description": "GTFS route type: 0=tram, 1=subway, 2=rail, 3=bus, 4=ferry, 5=cable_car.", "type": "number" }, "url": { "description": "Agency schedule page URL, or null.", "type": [ "string", "null" ] } }, "required": [ "id", "shortName", "longName", "description", "agencyId", "agencyName", "type", "color", "url" ], "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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\").", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "lat": { "description": "Latitude of the search center, in [-90, 90].", "maximum": 90, "minimum": -90, "type": "number" }, "lon": { "description": "Longitude of the search center, in [-180, 180].", "maximum": 180, "minimum": -180, "type": "number" }, "query": { "description": "Optional stop code filter (the number printed on the stop sign, e.g. \"75403\"). When provided, returns only stops matching this code within the radius.", "type": "string" }, "radius": { "default": 300, "description": "Search radius in meters. Must be positive; capped at 1600m, beyond which results degrade. Defaults to 300m.", "exclusiveMinimum": 0, "maximum": 1600, "type": "number" } }, "required": [ "lat", "lon" ], "type": "object" }, "name": "onebusaway_find_stops", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "stops", "limitExceeded", "count" ] }, { "required": [ "error" ] } ], "properties": { "count": { "description": "Number of stops returned.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "limitExceeded": { "description": "True if more stops exist beyond the returned set; narrow the radius to see all.", "type": "boolean" }, "notice": { "description": "Guidance when results are empty or truncated — e.g. how to narrow the radius or verify the stop code.", "type": "string" }, "query": { "description": "Stop code filter applied to the search, if any.", "type": "string" }, "stops": { "description": "Stops within the search radius.", "items": { "additionalProperties": false, "description": "A transit stop with location and route information.", "properties": { "code": { "description": "The stop code printed on the sign.", "type": "string" }, "direction": { "description": "Compass direction of travel at this stop (e.g. \"NW\").", "type": "string" }, "id": { "description": "Agency-prefixed stop ID (e.g. \"1_75403\"). Use with onebusaway_get_arrivals.", "type": "string" }, "lat": { "description": "Latitude of the stop.", "type": "number" }, "lon": { "description": "Longitude of the stop.", "type": "number" }, "name": { "description": "Stop name.", "type": "string" }, "routeIds": { "description": "IDs of routes that serve this stop.", "items": { "type": "string" }, "type": "array" }, "wheelchairBoarding": { "description": "Wheelchair boarding status.", "enum": [ "ACCESSIBLE", "NOT_ACCESSIBLE", "UNKNOWN" ], "type": "string" } }, "required": [ "id", "code", "name", "lat", "lon", "direction", "routeIds", "wheelchairBoarding" ], "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "situationId": { "description": "Situation/alert ID from onebusaway_get_arrivals (situations[].id or arrivals[].situationIds[]).", "minLength": 1, "type": "string" } }, "required": [ "situationId" ], "type": "object" }, "name": "onebusaway_get_alert", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "id", "summary", "description", "reason", "severity", "consequenceMessage", "affects", "consequences", "activeWindows", "url" ] }, { "required": [ "error" ] } ], "properties": { "activeWindows": { "description": "Time windows when this alert is active.", "items": { "additionalProperties": false, "description": "A time window during which this alert is active.", "properties": { "from": { "description": "Start of active window as Unix milliseconds, if known.", "type": "number" }, "to": { "description": "End of active window as Unix milliseconds, if known.", "type": "number" } }, "type": "object" }, "type": "array" }, "affects": { "description": "Stops, routes, trips, or agencies affected by this alert.", "items": { "additionalProperties": false, "description": "An entity affected by this alert.", "properties": { "agencyId": { "description": "Affected agency ID, if scoped to an agency.", "type": "string" }, "routeId": { "description": "Affected route ID, if scoped to a route.", "type": "string" }, "stopId": { "description": "Affected stop ID, if scoped to a stop.", "type": "string" }, "tripId": { "description": "Affected trip ID, if scoped to a trip.", "type": "string" } }, "type": "object" }, "type": "array" }, "consequenceMessage": { "description": "Human-readable consequence description (e.g. \"Detour in effect\"), or null.", "type": [ "string", "null" ] }, "consequences": { "description": "Operational consequences of this alert.", "items": { "additionalProperties": false, "description": "A consequence of this alert.", "properties": { "condition": { "description": "Consequence condition (e.g. \"detour\", \"reducedService\").", "type": "string" }, "diversionStopIds": { "description": "Stop IDs on the diversion path, when condition is \"detour\".", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "type": "array" }, "description": { "description": "Longer description of the alert, or null.", "type": [ "string", "null" ] }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `situation_not_found`: Situation ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "situation_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "id": { "description": "Situation ID.", "type": "string" }, "reason": { "description": "Reason code from TPEG: equipmentReason, environmentReason, personnelReason, miscellaneousReason, securityAlert. Null when not provided.", "type": [ "string", "null" ] }, "severity": { "description": "Severity level as reported by the agency, or null.", "type": [ "string", "null" ] }, "summary": { "description": "Short summary of the service alert.", "type": "string" }, "url": { "description": "URL for more information about this alert, or null.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "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\").", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "minutesAfter": { "default": 35, "description": "Include arrivals expected within the next N minutes — an integer from 0 to 240. Defaults to 35. For a longer horizon, use onebusaway_get_schedule_for_stop.", "maximum": 240, "minimum": 0, "type": "integer" }, "minutesBefore": { "default": 5, "description": "Include arrivals that departed up to this many minutes ago — an integer from 0 to 60. Defaults to 5.", "maximum": 60, "minimum": 0, "type": "integer" }, "stopId": { "description": "Agency-prefixed stop ID (e.g. \"1_75403\" for Metro Transit stop 75403). Use onebusaway_find_stops or onebusaway_search_stops to discover IDs.", "minLength": 1, "type": "string" } }, "required": [ "stopId" ], "type": "object" }, "name": "onebusaway_get_arrivals", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "stopId", "stopName", "currentTime", "arrivals", "situations", "queriedStop", "count", "windowMinutes" ] }, { "required": [ "error" ] } ], "properties": { "arrivals": { "description": "Arrivals and departures at this stop within the requested time window.", "items": { "additionalProperties": false, "description": "A single arrival or departure at this stop.", "properties": { "predicted": { "description": "True if GPS-tracked real-time data is available; false if schedule-only.", "type": "boolean" }, "predictedArrivalTime": { "description": "Predicted arrival time as Unix milliseconds. Null when predicted=false.", "type": [ "number", "null" ] }, "routeId": { "description": "Route ID for follow-up route calls.", "type": "string" }, "routeShortName": { "description": "Route short name (e.g. \"44\").", "type": "string" }, "scheduleDeviation": { "description": "Seconds late (positive) or early (negative). Only meaningful when predicted=true.", "type": "number" }, "scheduledArrivalTime": { "description": "Scheduled arrival time as Unix milliseconds.", "type": "number" }, "situationIds": { "description": "IDs of active service alerts affecting this arrival.", "items": { "type": "string" }, "type": "array" }, "stopsAway": { "description": "Number of stops until this stop, or null if unknown.", "type": [ "number", "null" ] }, "tripHeadsign": { "description": "Destination sign text (e.g. \"Downtown Seattle\").", "type": "string" }, "tripId": { "description": "Trip ID for follow-up onebusaway_get_trip calls.", "type": "string" }, "vehicleId": { "description": "Vehicle ID if known, or null.", "type": [ "string", "null" ] }, "vehiclePosition": { "anyOf": [ { "additionalProperties": false, "properties": { "lat": { "description": "Vehicle latitude.", "type": "number" }, "lon": { "description": "Vehicle longitude.", "type": "number" } }, "required": [ "lat", "lon" ], "type": "object" }, { "type": "null" } ], "description": "Current vehicle position if available, or null." } }, "required": [ "routeShortName", "tripHeadsign", "predicted", "predictedArrivalTime", "scheduledArrivalTime", "scheduleDeviation", "vehicleId", "vehiclePosition", "stopsAway", "tripId", "routeId", "situationIds" ], "type": "object" }, "type": "array" }, "count": { "description": "Number of arrivals in the time window.", "type": "number" }, "currentTime": { "description": "Server time as Unix milliseconds, for computing countdown timers.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `stop_not_found`: Stop ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "stop_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "notice": { "description": "Guidance when no arrivals were found — widen minutesAfter, or check onebusaway_get_schedule_for_stop for scheduled service.", "type": "string" }, "queriedStop": { "description": "Stop ID queried.", "type": "string" }, "situations": { "description": "Active service alerts at this stop — those attached to the stop itself and those referenced by its arrivals, each listed once.", "items": { "additionalProperties": false, "description": "A single active service alert.", "properties": { "description": { "description": "Longer description of the service alert, or null.", "type": [ "string", "null" ] }, "id": { "description": "Situation ID.", "type": "string" }, "summary": { "description": "Short summary of the service alert.", "type": "string" } }, "required": [ "id", "summary", "description" ], "type": "object" }, "type": "array" }, "stopId": { "description": "The queried stop ID.", "type": "string" }, "stopName": { "description": "Stop name.", "type": "string" }, "windowMinutes": { "additionalProperties": false, "description": "Time window used for the arrivals query.", "properties": { "after": { "description": "Minutes after current time included.", "type": "number" }, "before": { "description": "Minutes before current time included.", "type": "number" } }, "required": [ "before", "after" ], "type": "object" } }, "type": "object" } }, { "description": "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 as blockId in onebusaway_get_trip responses; obtain a tripId from onebusaway_get_arrivals first.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "blockId": { "description": "Block ID from a trip record. Obtain a tripId from onebusaway_get_arrivals, then call onebusaway_get_trip to get the blockId.", "minLength": 1, "type": "string" } }, "required": [ "blockId" ], "type": "object" }, "name": "onebusaway_get_block", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "blockId", "activeServiceIds", "inactiveServiceIds", "trips" ] }, { "required": [ "error" ] } ], "properties": { "activeServiceIds": { "description": "Service calendar IDs active for this block today.", "items": { "type": "string" }, "type": "array" }, "blockId": { "description": "Block ID.", "type": "string" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `block_not_found`: Block ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "block_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "inactiveServiceIds": { "description": "Service calendar IDs not active for this block today.", "items": { "type": "string" }, "type": "array" }, "trips": { "description": "All trips in this block in order.", "items": { "additionalProperties": false, "description": "A trip in this vehicle block.", "properties": { "accumulatedSlackTime": { "description": "Accumulated layover/slack time (seconds) before this trip starts.", "type": "number" }, "blockStopTimes": { "description": "Ordered stop times for this trip.", "items": { "additionalProperties": false, "description": "A scheduled stop time within this trip.", "properties": { "arrivalTime": { "description": "Scheduled arrival time as seconds from midnight (GTFS format).", "type": "number" }, "departureTime": { "description": "Scheduled departure time as seconds from midnight (GTFS format).", "type": "number" }, "dropOffType": { "description": "GTFS drop-off type (0=regular, 1=no dropoff, 2=phone agency, 3=coordinate with driver).", "type": "number" }, "pickupType": { "description": "GTFS pickup type (0=regular, 1=no pickup, 2=phone agency, 3=coordinate with driver).", "type": "number" }, "stopId": { "description": "Stop ID.", "type": "string" } }, "required": [ "stopId", "arrivalTime", "departureTime" ], "type": "object" }, "type": "array" }, "distanceAlongBlock": { "description": "Cumulative distance (meters) from block start to the first stop of this trip.", "type": "number" }, "tripId": { "description": "Trip ID for follow-up onebusaway_get_trip calls.", "type": "string" } }, "required": [ "tripId", "distanceAlongBlock", "accumulatedSlackTime", "blockStopTimes" ], "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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\").", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "routeId": { "description": "Agency-prefixed route ID (e.g. \"1_100259\"). Use onebusaway_find_routes or onebusaway_search_routes to discover IDs.", "minLength": 1, "type": "string" } }, "required": [ "routeId" ], "type": "object" }, "name": "onebusaway_get_route", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "id", "shortName", "longName", "description", "agencyId", "agencyName", "type", "color", "url" ] }, { "required": [ "error" ] } ], "properties": { "agencyId": { "description": "Agency ID that operates this route.", "type": "string" }, "agencyName": { "description": "Agency name that operates this route.", "type": "string" }, "color": { "description": "Route brand color hex (without #), or null.", "type": [ "string", "null" ] }, "description": { "description": "Route description.", "type": "string" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `route_not_found`: Route ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "route_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "id": { "description": "Agency-prefixed route ID.", "type": "string" }, "longName": { "description": "Full route name.", "type": "string" }, "shortName": { "description": "The number or short name displayed on vehicles (e.g. \"44\").", "type": "string" }, "type": { "description": "GTFS route type: 0=tram, 1=subway, 2=rail, 3=bus, 4=ferry, 5=cable_car.", "type": "number" }, "url": { "description": "Agency schedule page URL, or null.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "date": { "anyOf": [ { "const": "", "type": "string" }, { "description": "A real calendar date in YYYY-MM-DD form (e.g. \"2026-05-23\").", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "type": "string" } ], "description": "Service date as YYYY-MM-DD (e.g. \"2026-05-23\"). Must be a real calendar date. Omit or leave blank for today." }, "routeId": { "description": "Agency-prefixed route ID (e.g. \"1_100259\"). Use onebusaway_find_routes or onebusaway_search_routes to discover IDs.", "minLength": 1, "type": "string" } }, "required": [ "routeId" ], "type": "object" }, "name": "onebusaway_get_schedule_for_route", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "routeId", "routeShortName", "serviceDateMs", "trips", "queriedRoute", "tripCount" ] }, { "required": [ "error" ] } ], "properties": { "date": { "description": "Date parameter used for the schedule request, if specified.", "type": "string" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `route_not_found`: Route ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "route_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "notice": { "description": "Guidance when no trips were found — e.g. no service on weekends or holiday schedule in effect.", "type": "string" }, "queriedRoute": { "description": "Route ID queried.", "type": "string" }, "routeId": { "description": "The queried route ID.", "type": "string" }, "routeShortName": { "description": "Route short name.", "type": "string" }, "serviceDateMs": { "description": "Service date as Unix milliseconds.", "type": "number" }, "tripCount": { "description": "Number of trips for this route on this date.", "type": "number" }, "trips": { "description": "All trips for this route on this date, with their stop sequences.", "items": { "additionalProperties": false, "description": "A single trip with its scheduled stop sequence.", "properties": { "serviceId": { "description": "Service calendar ID.", "type": "string" }, "stops": { "description": "Stop sequence for this trip.", "items": { "additionalProperties": false, "description": "A stop time along this trip.", "properties": { "arrivalTime": { "description": "Scheduled arrival time as seconds from midnight (GTFS format).", "type": "number" }, "departureTime": { "description": "Scheduled departure time as seconds from midnight (GTFS format).", "type": "number" }, "stopId": { "description": "Stop ID.", "type": "string" }, "stopName": { "description": "Stop name.", "type": "string" } }, "required": [ "stopId", "stopName", "arrivalTime", "departureTime" ], "type": "object" }, "type": "array" }, "tripHeadsign": { "description": "Destination sign text.", "type": "string" }, "tripId": { "description": "Trip ID for follow-up onebusaway_get_trip calls.", "type": "string" } }, "required": [ "tripId", "tripHeadsign", "serviceId", "stops" ], "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "date": { "anyOf": [ { "const": "", "type": "string" }, { "description": "A real calendar date in YYYY-MM-DD form (e.g. \"2026-05-23\").", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "type": "string" } ], "description": "Service date as YYYY-MM-DD (e.g. \"2026-05-23\"). Must be a real calendar date. Omit or leave blank for today in the agency's timezone." }, "stopId": { "description": "Agency-prefixed stop ID (e.g. \"1_75403\"). Use onebusaway_find_stops or onebusaway_search_stops to discover IDs.", "minLength": 1, "type": "string" } }, "required": [ "stopId" ], "type": "object" }, "name": "onebusaway_get_schedule_for_stop", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "stopId", "stopName", "serviceDateMs", "routes", "queriedStop", "routeCount" ] }, { "required": [ "error" ] } ], "properties": { "date": { "description": "Date parameter used for the schedule request, if specified.", "type": "string" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `stop_not_found`: Stop ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "stop_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "notice": { "description": "Guidance when no routes were found — e.g. no service on weekends or holiday schedule in effect.", "type": "string" }, "queriedStop": { "description": "Stop ID queried.", "type": "string" }, "routeCount": { "description": "Number of routes with departures from this stop on this date.", "type": "number" }, "routes": { "description": "All routes with departures from this stop on this date.", "items": { "additionalProperties": false, "description": "A route with its scheduled departures from this stop.", "properties": { "directions": { "description": "Service directions for this route at this stop.", "items": { "additionalProperties": false, "description": "A service direction at this stop.", "properties": { "departures": { "description": "All departures for this direction.", "items": { "additionalProperties": false, "description": "A single scheduled departure.", "properties": { "scheduledDepartureTime": { "description": "Scheduled departure time as Unix milliseconds.", "type": "number" }, "tripId": { "description": "Trip ID for follow-up onebusaway_get_trip calls.", "type": "string" } }, "required": [ "scheduledDepartureTime", "tripId" ], "type": "object" }, "type": "array" }, "tripHeadsign": { "description": "Destination sign text.", "type": "string" } }, "required": [ "tripHeadsign", "departures" ], "type": "object" }, "type": "array" }, "routeId": { "description": "Route ID for follow-up onebusaway_get_route or onebusaway_get_schedule_for_route calls.", "type": "string" }, "routeShortName": { "description": "Route short name.", "type": "string" } }, "required": [ "routeId", "routeShortName", "directions" ], "type": "object" }, "type": "array" }, "serviceDateMs": { "description": "Service date as Unix milliseconds (start of service day).", "type": "number" }, "stopId": { "description": "The queried stop ID.", "type": "string" }, "stopName": { "description": "Stop name.", "type": "string" } }, "type": "object" } }, { "description": "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).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "stopId": { "description": "Agency-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.", "minLength": 1, "type": "string" } }, "required": [ "stopId" ], "type": "object" }, "name": "onebusaway_get_stop", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "id", "code", "name", "lat", "lon", "direction", "routeIds", "wheelchairBoarding" ] }, { "required": [ "error" ] } ], "properties": { "code": { "description": "The stop code printed on the sign.", "type": "string" }, "direction": { "description": "Compass direction of travel at this stop (e.g. \"NW\").", "type": "string" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `stop_not_found`: Stop ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "stop_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "id": { "description": "Agency-prefixed stop ID.", "type": "string" }, "lat": { "description": "Latitude of the stop.", "type": "number" }, "lon": { "description": "Longitude of the stop.", "type": "number" }, "name": { "description": "Stop name.", "type": "string" }, "routeIds": { "description": "IDs of routes that serve this stop. Use with onebusaway_get_arrivals or onebusaway_get_schedule_for_stop.", "items": { "type": "string" }, "type": "array" }, "wheelchairBoarding": { "description": "Wheelchair boarding status.", "enum": [ "ACCESSIBLE", "NOT_ACCESSIBLE", "UNKNOWN" ], "type": "string" } }, "type": "object" } }, { "description": "Everything happening at a stop in one call: the stop's details, its real-time arrivals, and full detail for every service alert on the stop or on any arrival in the window. Returns what onebusaway_get_stop, onebusaway_get_arrivals, and one onebusaway_get_alert call per alert would, from a single upstream request — arrivals in the onebusaway_get_arrivals shape, alerts in the onebusaway_get_alert shape. The stop omits its served-route list; use onebusaway_get_stop for routeIds. Stop IDs use agency-prefixed format: {agencyId}_{localId} (e.g. \"1_75403\").", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "minutesAfter": { "default": 35, "description": "Include arrivals expected within the next N minutes — an integer from 0 to 240. Defaults to 35. For a longer horizon, use onebusaway_get_schedule_for_stop.", "maximum": 240, "minimum": 0, "type": "integer" }, "minutesBefore": { "default": 5, "description": "Include arrivals that departed up to this many minutes ago — an integer from 0 to 60. Defaults to 5.", "maximum": 60, "minimum": 0, "type": "integer" }, "stopId": { "description": "Agency-prefixed stop ID (e.g. \"1_75403\" for Metro Transit stop 75403). Use onebusaway_find_stops or onebusaway_search_stops to discover IDs.", "minLength": 1, "type": "string" } }, "required": [ "stopId" ], "type": "object" }, "name": "onebusaway_get_stop_context", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "stop", "currentTime", "arrivals", "alerts", "queriedStop", "windowMinutes" ] }, { "required": [ "error" ] } ], "properties": { "alerts": { "description": "Service alerts on this stop or on any arrival in the window, each listed once — including alerts whose affected arrivals fall outside the window.", "items": { "additionalProperties": false, "description": "One service alert, in full detail.", "properties": { "activeWindows": { "description": "Time windows when this alert is active.", "items": { "additionalProperties": false, "description": "A time window during which this alert is active.", "properties": { "from": { "description": "Start of active window as Unix milliseconds, if known.", "type": "number" }, "to": { "description": "End of active window as Unix milliseconds, if known.", "type": "number" } }, "type": "object" }, "type": "array" }, "affects": { "description": "Stops, routes, trips, or agencies affected by this alert.", "items": { "additionalProperties": false, "description": "An entity affected by this alert.", "properties": { "agencyId": { "description": "Affected agency ID, if scoped to an agency.", "type": "string" }, "routeId": { "description": "Affected route ID, if scoped to a route.", "type": "string" }, "stopId": { "description": "Affected stop ID, if scoped to a stop.", "type": "string" }, "tripId": { "description": "Affected trip ID, if scoped to a trip.", "type": "string" } }, "type": "object" }, "type": "array" }, "consequenceMessage": { "description": "Human-readable consequence description (e.g. \"Detour in effect\"), or null.", "type": [ "string", "null" ] }, "consequences": { "description": "Operational consequences of this alert.", "items": { "additionalProperties": false, "description": "A consequence of this alert.", "properties": { "condition": { "description": "Consequence condition (e.g. \"detour\", \"reducedService\").", "type": "string" }, "diversionStopIds": { "description": "Stop IDs on the diversion path, when condition is \"detour\".", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "type": "array" }, "description": { "description": "Longer description of the alert, or null.", "type": [ "string", "null" ] }, "id": { "description": "Situation ID.", "type": "string" }, "reason": { "description": "Reason code from TPEG: equipmentReason, environmentReason, personnelReason, miscellaneousReason, securityAlert. Null when not provided.", "type": [ "string", "null" ] }, "severity": { "description": "Severity level as reported by the agency, or null.", "type": [ "string", "null" ] }, "summary": { "description": "Short summary of the service alert.", "type": "string" }, "url": { "description": "URL for more information about this alert, or null.", "type": [ "string", "null" ] } }, "required": [ "id", "summary", "description", "reason", "severity", "consequenceMessage", "affects", "consequences", "activeWindows", "url" ], "type": "object" }, "type": "array" }, "arrivals": { "description": "Arrivals and departures at this stop within the requested time window.", "items": { "additionalProperties": false, "description": "A single arrival or departure at this stop.", "properties": { "predicted": { "description": "True if GPS-tracked real-time data is available; false if schedule-only.", "type": "boolean" }, "predictedArrivalTime": { "description": "Predicted arrival time as Unix milliseconds. Null when predicted=false.", "type": [ "number", "null" ] }, "routeId": { "description": "Route ID for follow-up route calls.", "type": "string" }, "routeShortName": { "description": "Route short name (e.g. \"44\").", "type": "string" }, "scheduleDeviation": { "description": "Seconds late (positive) or early (negative). Only meaningful when predicted=true.", "type": "number" }, "scheduledArrivalTime": { "description": "Scheduled arrival time as Unix milliseconds.", "type": "number" }, "situationIds": { "description": "IDs of active service alerts affecting this arrival.", "items": { "type": "string" }, "type": "array" }, "stopsAway": { "description": "Number of stops until this stop, or null if unknown.", "type": [ "number", "null" ] }, "tripHeadsign": { "description": "Destination sign text (e.g. \"Downtown Seattle\").", "type": "string" }, "tripId": { "description": "Trip ID for follow-up onebusaway_get_trip calls.", "type": "string" }, "vehicleId": { "description": "Vehicle ID if known, or null.", "type": [ "string", "null" ] }, "vehiclePosition": { "anyOf": [ { "additionalProperties": false, "properties": { "lat": { "description": "Vehicle latitude.", "type": "number" }, "lon": { "description": "Vehicle longitude.", "type": "number" } }, "required": [ "lat", "lon" ], "type": "object" }, { "type": "null" } ], "description": "Current vehicle position if available, or null." } }, "required": [ "routeShortName", "tripHeadsign", "predicted", "predictedArrivalTime", "scheduledArrivalTime", "scheduleDeviation", "vehicleId", "vehiclePosition", "stopsAway", "tripId", "routeId", "situationIds" ], "type": "object" }, "type": "array" }, "currentTime": { "description": "Server time as Unix milliseconds, for computing countdown timers.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `stop_not_found`: Stop ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "stop_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "notice": { "description": "What the response is missing and where to get it — no arrivals in the window, stop details absent, or referenced alerts absent.", "type": "string" }, "queriedStop": { "description": "Stop ID queried.", "type": "string" }, "stop": { "anyOf": [ { "additionalProperties": false, "properties": { "code": { "description": "The stop code printed on the sign.", "type": "string" }, "direction": { "description": "Compass direction of travel at this stop (e.g. \"NW\").", "type": "string" }, "id": { "description": "Agency-prefixed stop ID.", "type": "string" }, "lat": { "description": "Latitude of the stop.", "type": "number" }, "lon": { "description": "Longitude of the stop.", "type": "number" }, "name": { "description": "Stop name.", "type": "string" }, "wheelchairBoarding": { "description": "Wheelchair boarding status.", "enum": [ "ACCESSIBLE", "NOT_ACCESSIBLE", "UNKNOWN" ], "type": "string" } }, "required": [ "id", "code", "name", "lat", "lon", "direction", "wheelchairBoarding" ], "type": "object" }, { "type": "null" } ], "description": "The queried stop, without its served-route list (use onebusaway_get_stop for routeIds). Null when the upstream response omitted the stop." }, "windowMinutes": { "additionalProperties": false, "description": "Time window used for the arrivals query.", "properties": { "after": { "description": "Minutes after current time included.", "type": "number" }, "before": { "description": "Minutes before current time included.", "type": "number" } }, "required": [ "before", "after" ], "type": "object" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "includeSchedule": { "default": true, "description": "Whether to include the full stop sequence with times. Defaults to true.", "type": "boolean" }, "serviceDateMs": { "description": "Service date as Unix milliseconds (midnight local time) — a non-negative integer. Only needed for trips from a previous service day. Omit to use today.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "tripId": { "description": "Trip ID from an arrivals response or schedule lookup.", "minLength": 1, "type": "string" } }, "required": [ "tripId" ], "type": "object" }, "name": "onebusaway_get_trip", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "tripId", "routeShortName", "tripHeadsign", "blockId", "status", "schedule", "situations" ] }, { "required": [ "error" ] } ], "properties": { "blockId": { "description": "Block 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.", "type": [ "string", "null" ] }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `trip_not_found`: Trip ID not found or not active for the service date. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "trip_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "routeShortName": { "description": "Route short name (e.g. \"44\").", "type": "string" }, "schedule": { "anyOf": [ { "items": { "additionalProperties": false, "description": "A scheduled stop time along this trip.", "properties": { "arrivalTime": { "description": "Scheduled arrival time as seconds from midnight (GTFS format).", "type": "number" }, "departureTime": { "description": "Scheduled departure time as seconds from midnight (GTFS format).", "type": "number" }, "distanceAlongTripMeters": { "description": "Distance along the trip to this stop, in meters.", "type": "number" }, "stopId": { "description": "Stop ID.", "type": "string" }, "stopName": { "description": "Stop name.", "type": "string" } }, "required": [ "stopId", "stopName", "arrivalTime", "departureTime", "distanceAlongTripMeters" ], "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Full stop sequence with times, or null if includeSchedule=false." }, "situations": { "description": "Active situation IDs affecting this trip.", "items": { "type": "string" }, "type": "array" }, "status": { "additionalProperties": false, "description": "Real-time status of the trip.", "properties": { "closestStop": { "description": "Stop ID of the closest stop, or null.", "type": [ "string", "null" ] }, "lastUpdateTime": { "description": "Timestamp of the last real-time update as Unix milliseconds.", "type": "number" }, "nextStop": { "description": "Stop ID of the next stop, or null.", "type": [ "string", "null" ] }, "phase": { "description": "Current journey phase (e.g. \"in_progress\", \"layover_before\", \"layover_during\").", "type": "string" }, "position": { "anyOf": [ { "additionalProperties": false, "properties": { "lat": { "description": "Vehicle latitude.", "type": "number" }, "lon": { "description": "Vehicle longitude.", "type": "number" } }, "required": [ "lat", "lon" ], "type": "object" }, { "type": "null" } ], "description": "Current vehicle position if available, or null." }, "predicted": { "description": "True if GPS-tracked real-time data is available.", "type": "boolean" }, "scheduleDeviation": { "description": "Seconds late (positive) or early (negative).", "type": "number" }, "vehicleId": { "description": "Vehicle ID if known, or null.", "type": [ "string", "null" ] } }, "required": [ "phase", "predicted", "position", "scheduleDeviation", "nextStop", "closestStop", "vehicleId", "lastUpdateTime" ], "type": "object" }, "tripHeadsign": { "description": "Destination sign text.", "type": "string" }, "tripId": { "description": "The queried trip ID.", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "agencyId": { "description": "Agency ID (e.g. \"1\" for Metro Transit, \"40\" for Sound Transit). Use onebusaway_list_agencies to discover IDs.", "minLength": 1, "type": "string" }, "routeId": { "description": "Optional agency-prefixed route ID to filter results to one route. Filtering is client-side — all agency vehicles are fetched first.", "type": "string" } }, "required": [ "agencyId" ], "type": "object" }, "name": "onebusaway_get_vehicles", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "vehicles", "limitExceeded", "agencyId", "count" ] }, { "required": [ "error" ] } ], "properties": { "agencyId": { "description": "Agency ID queried.", "type": "string" }, "count": { "description": "Number of vehicles returned after any route filter.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `agency_not_found`: Agency ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "agency_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "limitExceeded": { "description": "True if the upstream capped the vehicle list — some vehicles were omitted. This endpoint has no pagination to retrieve them.", "type": "boolean" }, "notice": { "description": "Guidance when no vehicles were found — e.g. the route may not be currently active, or the agency may not have real-time data.", "type": "string" }, "routeId": { "description": "Route ID filter applied client-side, if any.", "type": "string" }, "vehicles": { "description": "Active vehicles for the agency, optionally filtered by route.", "items": { "additionalProperties": false, "description": "A real-time vehicle position entry.", "properties": { "lastUpdateTime": { "description": "Timestamp of the last position update as Unix milliseconds.", "type": "number" }, "nextStop": { "description": "Stop ID of the next stop, or null.", "type": [ "string", "null" ] }, "orientation": { "description": "Heading in degrees (0=north, 90=east), or null.", "type": [ "number", "null" ] }, "phase": { "description": "Current journey phase (e.g. \"in_progress\", \"layover_before\").", "type": "string" }, "position": { "additionalProperties": false, "description": "Current GPS position.", "properties": { "lat": { "description": "Vehicle latitude.", "type": "number" }, "lon": { "description": "Vehicle longitude.", "type": "number" } }, "required": [ "lat", "lon" ], "type": "object" }, "predicted": { "description": "True if this vehicle is reporting real-time GPS data.", "type": "boolean" }, "routeId": { "description": "Current route ID, or null.", "type": [ "string", "null" ] }, "routeShortName": { "description": "Route short name, or null.", "type": [ "string", "null" ] }, "scheduleDeviation": { "description": "Seconds late (positive) or early (negative), or null.", "type": [ "number", "null" ] }, "tripHeadsign": { "description": "Destination sign text, or null.", "type": [ "string", "null" ] }, "tripId": { "description": "Current trip ID, or null if not on a trip.", "type": [ "string", "null" ] }, "vehicleId": { "description": "Vehicle ID.", "type": "string" } }, "required": [ "vehicleId", "tripId", "routeId", "routeShortName", "tripHeadsign", "position", "lastUpdateTime", "phase", "scheduleDeviation", "orientation", "nextStop", "predicted" ], "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {}, "type": "object" }, "name": "onebusaway_list_agencies", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "agencies", "limitExceeded", "count" ] }, { "required": [ "error" ] } ], "properties": { "agencies": { "description": "All agencies served by this OneBusAway instance.", "items": { "additionalProperties": false, "description": "A transit agency with coverage information.", "properties": { "coverageCenter": { "additionalProperties": false, "description": "Geographic center of the agency's service area.", "properties": { "lat": { "description": "Latitude of the coverage center.", "type": "number" }, "lon": { "description": "Longitude of the coverage center.", "type": "number" } }, "required": [ "lat", "lon" ], "type": "object" }, "coverageSpan": { "additionalProperties": false, "description": "Geographic extent of the agency's service area.", "properties": { "latSpan": { "description": "Latitude span of the coverage area in degrees.", "type": "number" }, "lonSpan": { "description": "Longitude span of the coverage area in degrees.", "type": "number" } }, "required": [ "latSpan", "lonSpan" ], "type": "object" }, "id": { "description": "Agency ID used in other calls (e.g. \"1\" for Metro Transit).", "type": "string" }, "name": { "description": "Full agency name.", "type": "string" }, "phone": { "description": "Agency phone number, or null if not provided.", "type": [ "string", "null" ] }, "timezone": { "description": "Agency timezone (e.g. \"America/Los_Angeles\").", "type": "string" }, "url": { "description": "Agency website URL.", "type": "string" } }, "required": [ "id", "name", "url", "phone", "timezone", "coverageCenter", "coverageSpan" ], "type": "object" }, "type": "array" }, "count": { "description": "Number of transit agencies returned.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "limitExceeded": { "description": "True if the upstream capped the agency list — some agencies were omitted. This endpoint has no pagination to retrieve them.", "type": "boolean" }, "notice": { "description": "Guidance when no agencies were returned.", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "agencyId": { "description": "Agency ID (e.g. \"1\" for Metro Transit, \"40\" for Sound Transit). Use onebusaway_list_agencies to discover IDs.", "minLength": 1, "type": "string" } }, "required": [ "agencyId" ], "type": "object" }, "name": "onebusaway_list_routes_for_agency", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "routes", "limitExceeded", "agencyId", "count" ] }, { "required": [ "error" ] } ], "properties": { "agencyId": { "description": "Agency ID queried.", "type": "string" }, "count": { "description": "Number of routes returned for this agency.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `agency_not_found`: Agency ID does not exist on this instance. `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "agency_not_found", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "limitExceeded": { "description": "True if the upstream capped the route list — some routes were omitted. This endpoint has no pagination to retrieve them.", "type": "boolean" }, "notice": { "description": "Guidance when no routes were found — verify the agency ID with onebusaway_list_agencies.", "type": "string" }, "routes": { "description": "All routes operated by this agency.", "items": { "additionalProperties": false, "description": "A transit route operated by this agency.", "properties": { "color": { "description": "Route brand color hex (without #), or null.", "type": [ "string", "null" ] }, "description": { "description": "Route description.", "type": "string" }, "id": { "description": "Agency-prefixed route ID. Use with onebusaway_get_schedule_for_route or onebusaway_get_vehicles.", "type": "string" }, "longName": { "description": "Full route name.", "type": "string" }, "shortName": { "description": "The number or short name displayed on vehicles.", "type": "string" }, "type": { "description": "GTFS route type: 0=tram, 1=subway, 2=rail, 3=bus, 4=ferry, 5=cable_car.", "type": "number" }, "url": { "description": "Agency schedule page URL, or null.", "type": [ "string", "null" ] } }, "required": [ "id", "shortName", "longName", "description", "type", "color", "url" ], "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "maxCount": { "default": 10, "description": "Maximum number of results to return. A positive integer, at most 100. Defaults to 10.", "exclusiveMinimum": 0, "maximum": 100, "type": "integer" }, "query": { "description": "Route name or number (e.g. \"44\", \"Link\", or \"RapidRide\").", "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "onebusaway_search_routes", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "routes", "limitExceeded", "query", "count" ] }, { "required": [ "error" ] } ], "properties": { "cap": { "description": "The maxCount limit applied to truncated results.", "type": "number" }, "count": { "description": "Number of routes returned.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `endpoint_unavailable`: The search/route endpoint returns 404 on this OBA instance (e.g. Puget Sound). `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "endpoint_unavailable", "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "limitExceeded": { "description": "True if more routes match than were returned; raise maxCount or refine the query to see all.", "type": "boolean" }, "notice": { "description": "Guidance when no routes matched — e.g. try onebusaway_find_routes with coordinates, or onebusaway_list_routes_for_agency.", "type": "string" }, "query": { "description": "Route name/number query sent to the API.", "type": "string" }, "routes": { "description": "Routes matching the search query.", "items": { "additionalProperties": false, "description": "A transit route with agency and type information.", "properties": { "agencyId": { "description": "Agency ID that operates this route.", "type": "string" }, "agencyName": { "description": "Agency name that operates this route.", "type": "string" }, "description": { "description": "Route description.", "type": "string" }, "id": { "description": "Agency-prefixed route ID (e.g. \"1_100259\"). Use with onebusaway_get_vehicles or onebusaway_get_schedule_for_route.", "type": "string" }, "longName": { "description": "Full route name.", "type": "string" }, "shortName": { "description": "The number or short name displayed on vehicles (e.g. \"44\").", "type": "string" }, "type": { "description": "GTFS route type: 0=tram, 1=subway, 2=rail, 3=bus, 4=ferry, 5=cable_car.", "type": "number" } }, "required": [ "id", "shortName", "longName", "description", "agencyId", "agencyName", "type" ], "type": "object" }, "type": "array" }, "shown": { "description": "Number of routes returned when results were truncated.", "type": "number" }, "truncated": { "description": "True when matching routes exceeded maxCount.", "type": "boolean" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "maxCount": { "default": 10, "description": "Maximum number of results to return. A positive integer, at most 100. Defaults to 10.", "exclusiveMinimum": 0, "maximum": 100, "type": "integer" }, "query": { "description": "Stop name fragment or stop code (e.g. \"University Way\" or \"75403\").", "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "onebusaway_search_stops", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "stops", "limitExceeded", "query", "count" ] }, { "required": [ "error" ] } ], "properties": { "cap": { "description": "The maxCount limit applied to truncated results.", "type": "number" }, "count": { "description": "Number of stops returned.", "type": "number" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `rate_limited`: No upstream request slot opened within the queue wait cap, or OneBusAway returned a rate limit response. Other values are possible when a failure originates below the handler.", "examples": [ "rate_limited" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "limitExceeded": { "description": "True if more stops match than were returned; raise maxCount or refine the query to see all.", "type": "boolean" }, "notice": { "description": "Guidance when no stops matched — e.g. try a different name fragment or use onebusaway_find_stops with coordinates.", "type": "string" }, "query": { "description": "Search query sent to the API.", "type": "string" }, "shown": { "description": "Number of stops returned when results were truncated.", "type": "number" }, "stops": { "description": "Stops matching the search query.", "items": { "additionalProperties": false, "description": "A transit stop with location and route information.", "properties": { "code": { "description": "The stop code printed on the sign.", "type": "string" }, "direction": { "description": "Compass direction of travel at this stop.", "type": "string" }, "id": { "description": "Agency-prefixed stop ID (e.g. \"1_75403\"). Use with onebusaway_get_arrivals.", "type": "string" }, "lat": { "description": "Latitude of the stop.", "type": "number" }, "lon": { "description": "Longitude of the stop.", "type": "number" }, "name": { "description": "Stop name.", "type": "string" }, "routeIds": { "description": "IDs of routes that serve this stop.", "items": { "type": "string" }, "type": "array" }, "wheelchairBoarding": { "description": "Wheelchair boarding status.", "enum": [ "ACCESSIBLE", "NOT_ACCESSIBLE", "UNKNOWN" ], "type": "string" } }, "required": [ "id", "code", "name", "lat", "lon", "direction", "routeIds", "wheelchairBoarding" ], "type": "object" }, "type": "array" }, "truncated": { "description": "True when matching stops exceeded maxCount.", "type": "boolean" } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2bdfc98827bcf34be5e6f58cfb3bd1103074aca7758340c4d0bf31d8e6f0e1e9 | sha256sum