Skip to main content
Glama

live_buses

Read-onlyIdempotent

Find buses within a chosen radius of a coordinate, with optional line or operator filters and delay data for tracked trips.

Instructions

Buses on the road within radius metres (up to 10000) of a point, nearest first, each linked to the journey it is working (trip_id) and with delay_seconds where tracked. Filter by line (e.g. "52") or operator.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
lineNo
radiusNo
operatorNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent, so the safety profile is covered. The description adds genuinely new behavioral facts: results are ordered nearest-first, each bus links to `trip_id`, `delay_seconds` is present only 'where tracked', and `radius` is capped at 10000 metres. It still says nothing about result limits or rate behavior, keeping it below 5.

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?

A single tightly packed passage that front-loads the core query (buses near a point) before trailing details about radius cap, linkage fields, and filters. Every clause carries information; 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?

With an output schema present and annotations covering the safety profile, the description only needs to add the query semantics, which it does well (ordering, linkage fields, radius cap, filters). The only gap is coordinate format/defaults, a minor omission for a 5-parameter spatial query.

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 description coverage is 0%, so the description carries the burden and mostly delivers: it gives `radius` units (metres) and an upper bound of 10000, an example value for `line` ("52"), and the meaning of `operator` filtering. It leaves `lat`/`lon` conventions (likely WGS84) and the default radius implicit.

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?

States a specific verb+resource with scope and ordering: buses on the road within a radius of a point, nearest first, each linked to its trip and delay. This clearly distinguishes it from siblings like nearby_stops/nearby_stations (stops, not vehicles) and bus_departures (scheduled departures, not live positions).

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?

Usage is only implied: it notes you can filter by `line` or `operator`, which suggests the live-vehicle-lookup context, but it never states when to choose this over `nearby_stops`, `bus_departures`, or `bus_service`, nor any exclusions or prerequisites.

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