Model Context Protocol server providing live OneBusAway transit data access via tools for transit queries, stop information, arrivals, routes, trips, and vehicle tracking
22 tools with consistent verb-noun naming (get_, search_, find_) and clear descriptions (avg ~80 chars). All tools are READ_ONLY, reducing risk. However, output schemas are not documented in the provided source, only input schemas are visible. Parameter descriptions are present but minimal (10-30 chars typical). No error handling guidance, no recovery patterns, and no tool annotations (readOnlyHint, etc.). Tools follow a predictable pattern but lack depth for production LLM optimization.
Find transit stops near a geographic location
List all transit agencies available in the system
Get details for a specific transit agency by ID
Get detailed arrival and departure information for a specific trip at a stop
Get upcoming arrivals at stops near a geographic location
Get upcoming arrivals at a specific stop
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Get details for a specific transit agency') but do not specify the response structure, field names, or types. LLMs cannot plan downstream tool calls or extract required data without knowing what fields to expect.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2025-06-18+ | v2 |
Get the current server time
Get detailed information about a specific transit route by ID
Get all routes served by a specific transit agency
Get transit routes near a geographic location
Get detailed information about a specific transit stop by ID
Get an overview of a stop including nearby stops and routes
Get the schedule for a specific stop
Get all stops served by a specific transit agency
Get all stops served by a specific transit route
Get detailed information about a specific trip
Get the current trip information for a specific vehicle
Get active trips near a geographic location
Get all active trips for a specific transit route
Get all active vehicles for a specific transit agency
Search for transit routes by name or query string
Search for transit stops by name or query string
Parameter descriptions are minimal (10-30 chars). Examples: 'The unique identifier of the transit agency' (48 chars) is adequate, but many lack context on format, constraints, or dependencies. No enum constraints visible for parameters that should have them (e.g., optional boolean flags like 'include_schedule' lack guidance on default behavior).
No error handling guidance. Tools do not document what happens on invalid input (e.g., non-existent stop_id, out-of-range radius). No recovery patterns or actionable error messages visible. LLMs cannot self-correct or know whether to retry.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint metadata. While all 22 tools are READ_ONLY (low risk), explicit annotations would improve agent planning and safety.
Pagination and result limits not documented. Tools like search_stops, search_routes, get_stops_for_agency, and get_trips_for_route accept max_results or may return large datasets, but no guidance on default limits, pagination cursors, or total counts. Large unbound results risk context window exhaustion.