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
Server Listing
@cyanheads/onebusaway-mcp-server

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 LocationA
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.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds that it returns IDs, short names, and descriptions, which is useful but does not substantially extend beyond the annotation's safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences plus a usage note; every sentence adds value with no redundancy or filler. Front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present and good annotations, the description adequately covers purpose and return shape. Minor omission: no mention of result limits or pagination, but overall complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents parameters well. The description adds minimal parameter context beyond what the schema provides, maintaining the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Find' and the resource 'transit routes near a location', with optional filtering by name/number. It differentiates from siblings like get_route and search_routes implicitly, but does not explicitly contrast with other find/search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description hints at follow-up usage ('Use routeId values to fetch...'), but provides no explicit guidance on when to prefer this tool over alternatives like onebusaway_search_routes or onebusaway_find_stops.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_find_stopsFind Stops Near LocationA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description adds that results include wheelchair boarding status and served routes. No contradictions; description adds useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with a clear next-step pointer. No wasted words; front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description sufficiently covers tool behavior, return fields, and usage. It does not mention result limits, but overall complete for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by clarifying the query parameter as 'number printed on the stop sign' and radius cap at 1600m. This enhances schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds bus stops near a location and lists the fields returned (ID, name, direction, served routes, wheelchair boarding). It distinguishes from siblings like search_stops by focusing on location-based search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to use the query parameter (optional stop code filter) and how to use results with onebusaway_get_arrivals. However, it does not explicitly exclude alternatives like search_stops.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_alertGet Service Alert DetailA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds detail on return content (fields and structure), which is behavioral beyond annotations. No side effects or destructive actions implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose and output, second explains input source. No redundant information, highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Single parameter with full schema coverage, readOnly annotation present, output schema exists (not shown but indicated). Description sufficiently covers what the tool does and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% with description. Tool description adds context by explaining the parameter's origin (from onebusaway_get_arrivals), which is helpful beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Fetch full detail' and resource 'service alert (situation) by ID'. Enumerates return fields (summary, description, reason, etc.). Distinguishes from siblings by specifying where alert IDs originate (onebusaway_get_arrivals).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context: use after obtaining an ID from onebusaway_get_arrivals. Does not explicitly name alternatives or when-not-to-use, but sibling tools target different entities, making usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_arrivalsGet Real-Time ArrivalsA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is clear. The description adds valuable behavioral details: the meaning of the predicted boolean (schedule-only vs GPS) and the agency-prefixed stop ID format. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with five focused sentences. Each sentence adds value: purpose, return fields, behavioral detail, follow-up suggestion, and ID format. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, key return fields, stop ID format, and defaults. With an output schema present, it does not need to detail every field. Minor gap: no mention of pagination or result limits, but adequate for a read-only data tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds context for stopId (how to discover IDs) and explains the predicted field, but these are minor enhancements beyond the schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves real-time arrivals and departures at a stop. It distinguishes itself from sibling tools like onebusaway_get_stop by focusing on dynamic arrival data and explicitly linking to onebusaway_get_trip for follow-up.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (need real-time arrivals) and provides a direct use case for follow-up calls. However, it does not explicitly exclude alternative tools or state prerequisites, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_blockGet Block ScheduleA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds value by explaining the ordered sequence of trips and stop times returned. No contradictions. It doesn't cover rate limits or auth, but for a read-only tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences plus a usage hint, front-loaded with the purpose, no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, an output schema (exists), and simple behavior, the description adequately covers what the tool does, what it returns, and how to get the input. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. The description adds context about the parameter's source (blockId from onebusaway_get_trip) but does not add meaning beyond the schema's own description, which already explains how to obtain the block ID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches the full-day block schedule for a vehicle by block ID, explains what a block is, and distinguishes from sibling tools by specifying how to obtain the blockId from onebusaway_get_trip and tripId from onebusaway_get_arrivals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases ('when will this bus return?', fleet tracking) and a clear workflow: obtain tripId from onebusaway_get_arrivals, then onebusaway_get_trip for blockId, then this tool. It implicitly excludes other uses by focusing on block schedule retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_routeGet Route DetailsA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description does not need to address safety. It adds value by specifying the ID format with an example, but does not detail other behavioral traits like return structure (handled by output schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose and returns, second explains ID format. Every sentence is essential and front-loaded, no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description fully addresses how to get a route ID and what fields are returned, leaving no gaps for a simple fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the routeId parameter with 100% description, including its format and discovery tools. The description restates the format and provides an example, offering marginal added value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch details for a specific route by ID' and lists returned fields (short name, description, agency, etc.), directly distinguishing it from sibling tools like onebusaway_find_routes (discovery) and onebusaway_get_schedule_for_route (schedule).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use onebusaway_find_routes or onebusaway_search_routes to discover IDs, providing clear guidance on when to use this tool (after obtaining an ID) and when not to (for discovery).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_schedule_for_routeGet Route ScheduleA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description aligns with that by describing a read-only query returning schedule data. The description adds context about the scope (full-day) and default date, but does not discuss auth requirements or rate limits, which are expected given the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first efficiently defines the tool's function and scope, and the second provides a clear alternative. No unnecessary words, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, read-only, with output schema), the description covers the essential context: what the schedule includes, the default date, and a pointer to live predictions. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters documented. The description adds value by pointing users to onebusaway_find_routes or onebusaway_search_routes for routeId discovery, which is not in the schema. It also clarifies the date's default behavior, though that is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get schedule' and resource 'route', specifying it returns full-day schedule with all trips, stop sequences, and departure times. It also distinguishes from sibling tool onebusaway_get_arrivals for live predictions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with onebusaway_get_arrivals for live predictions, providing a when-not-to-use guideline. It also mentions the default date behavior. However, it does not explicitly state when other sibling tools like onebusaway_get_trip might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_schedule_for_stopGet Stop ScheduleA
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).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds behavioral context: the schedule covers a full day, groups by route/direction, and defaults to today. It does not mention other behaviors like authorization or caching, but the transparency is adequate for this straightforward read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a distinct purpose: stating the main function, adding context, and providing an alternative. No wasted words, front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 parameters, output schema present), the description covers all necessary aspects: what it does, when to use, and an alternative. No gaps identified for a read-only schedule retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description does not add new parameter-level information beyond what the schema already provides (date defaults, stop ID format). The description's mention of 'full-day departure schedule' is more about output behavior than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool returns a full-day departure schedule for a stop, listing departures by route and direction. Distinguishes from sibling tool onebusaway_get_arrivals by specifying this is for planning rather than real-time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('planning or when real-time data isn't needed') and when not ('use onebusaway_get_arrivals instead for live predictions'), providing a clear alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_stopGet Stop DetailsA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, no contradiction. Description adds transparency by specifying it's a fetch operation, listing return data, and explaining ID format. Beyond annotations, it provides useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action ('Fetch details...'), no wasted words. Efficient and direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter tool with output schema, description covers purpose, parameter usage, and discovery. No gaps given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). Description adds meaning by explaining ID format with concrete examples and referencing how to discover IDs via sibling tools, going beyond schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Fetch details for a specific stop by ID' and enumerates returned fields (name, coordinates, etc.). It distinguishes from siblings by explicitly referencing ID format and discovery via sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use (when stop ID is known) and references sibling tools for discovery. Lacks explicit exclusion statements, but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_tripGet Trip StatusA
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").
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the readOnlyHint annotation by detailing what information is returned (vehicle position, schedule deviation, current phase, remaining stops). It does not contradict the annotation and provides useful insight into the tool's output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each serving a clear purpose: stating the function, listing outputs, and providing usage guidance. It is front-loaded with the primary action and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Considering the presence of an output schema and annotations, the description adequately covers the tool's purpose, parameters, and usage. It lacks explanation of error cases or when the trip might be inactive, but for a real-time status tool it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters with full coverage. The description adds minor value by suggesting the tripId source, but the schema's descriptions are already sufficient. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the tool returns 'Real-time status and stop sequence for a trip' with concrete fields (vehicle position, schedule deviation, current phase, remaining stops). It also references a sibling tool (onebusaway_get_arrivals) to obtain the tripId, clearly distinguishing this tool from others like onebusaway_get_vehicles or onebusaway_get_arrivals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to 'Use tripId from onebusaway_get_arrivals to look up a specific vehicle's progress', providing a clear usage context. It does not explicitly list when not to use the tool or alternatives, but the mention of obtaining the trip ID from another tool effectively guides the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_get_vehiclesGet Real-Time Vehicle PositionsA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds key behavioral detail: filtering is client-side (all agency vehicles fetched first). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a usage tip, front-loaded with main purpose. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists (declared in context signals) and annotations are present, description covers what the tool does and returns. Adds useful usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds minimal extra context beyond what schema already provides (e.g., examples for agencyId). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns real-time positions of all active vehicles for an agency, with optional route filtering. Distinguishes from sibling tools that focus on routes, stops, alerts, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete use case ("where are all the buses on route X right now?") and directs to use agencyId from onebusaway_list_agencies. Lacks explicit when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_list_agenciesList Transit AgenciesA
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.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds the return fields but does not reveal additional behavioral traits like rate limits or result pagination. The added value is moderate, resulting in a score of 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first clearly states the purpose and return data, the second links to dependent tools. Every word adds value, and the structure is front-loaded with no extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, read-only, output schema exists), the description is fully complete. It covers what the tool does, what it returns, and how its output connects to other tools. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100% (vacuous). With no parameters to document, the description appropriately focuses on the output. The baseline for 0 parameters is 4, and the description effectively adds no parameter-related meaning, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all transit agencies served by the instance and specifies the returned fields (IDs, names, contact info, timezone, geographic coverage center). It distinguishes this from sibling tools like onebusaway_list_routes_for_agency by noting the dependency on agency IDs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that agency IDs from this tool are needed for onebusaway_list_routes_for_agency and onebusaway_get_vehicles, providing useful context for when to use this tool. However, it does not explicitly state when not to use it or name direct alternatives, leaving room for slightly better guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_list_routes_for_agencyList Routes for AgencyA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description aligns. It adds transparency about returned fields (IDs, short names, descriptions) but does not elaborate on authentication, rate limits, or error handling. With annotations covering the safety profile, the added context is sufficient but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no redundant content. The main action and return type are front-loaded, and usage guidance follows efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown), the description sufficiently covers the purpose, parameters, and usage context for a simple list tool with one required parameter. No significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add new meaning beyond what the schema already provides for agencyId; it merely repeats the advice to use list_agencies, which is already in the schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all routes for an agency, specifies return fields (route IDs, short names, descriptions), and differentiates from siblings like onebusaway_find_routes by indicating it is for enumeration before specific searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use for enumerating an agency's full service before searching and provides a cross-reference to onebusaway_list_agencies for obtaining agencyId. This guides when to use over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_search_routesSearch Routes by Name or NumberA
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.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds that it returns matching routes with IDs, which is the output behavior. It does not discuss pagination or the maxCount parameter's effect on behavior, but those are covered in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences convey purpose, output, and use case. No wasted words. The structure is front-loaded with the core action and outcome.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description is complete enough. It explains the search capability, return type, and typical use case. The presence of an output schema (not detailed in description) reduces the need to describe return values. Could briefly mention maxCount, but the schema already does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for both parameters. The tool description does not add significant new meaning beyond the schema; it mentions the query parameter implicitly through examples but does not enhance understanding of maxCount.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it searches routes by name/number and returns IDs. The verb 'search' and resource 'routes' are specific. It identifies the tool's role in the workflow but could more explicitly differentiate from the sibling 'onebusaway_find_routes'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes when to use: to resolve a route short name to an ID for subsequent lookups with 'onebusaway_get_vehicles' or 'onebusaway_get_schedule_for_route'. It lacks explicit 'when not to use' but provides sufficient context via reference to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onebusaway_search_stopsSearch Stops by Name or CodeA
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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds that it returns IDs and coordinates, which is useful behavioral context. No contradictions or missing safety info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded, no filler. Every sentence adds value: action, output, and usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and good annotations, the description covers the essential context. Could mention that query is required, but that is clear from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented in the schema. Description does not add significant new meaning beyond what is in the property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Search for stops by name or code' and describes the output. However, it does not explicitly differentiate from the sibling tool onebusaway_find_stops, so it misses the chance to guide the agent on which search tool to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a use case ('Use to resolve a human-readable stop name or number to a stop ID for arrivals lookups with onebusaway_get_arrivals.') but does not mention when not to use it or alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

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

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.