Skip to main content
Glama

List STPT routes

list_routes
Read-onlyIdempotent

Lists STPT transit routes from a bundled GTFS snapshot and filters them by vehicle mode, helping users browse available tram, bus, trolleybus, vaporetto, metropolitan, and express services.

Instructions

List STPT tram, trolleybus, bus, metropolitan, express, and vaporetto routes from the bundled GTFS-derived network snapshot.

Input Schema

NameRequiredDescriptionDefault
modeNoOptional mode filter.

Output Schema

NameRequiredDescriptionDefault
countYes
errorNoStructured failure, if any.
routesNo
statusYesOverall result status.
provenanceNoSource and freshness metadata.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.3.7
    • addedOutput schema / $defs / Freshness
      Added value: +{
      +  "enum": [
      +    "fresh",
      +    "stale",
      +    "unverified"
      +  ],
      +  "title": "Freshness",
      +  "type": "string"
      +}
    • changedOutput schema / $defs / Provenance / properties / data_age_seconds / description
      Previous value: -"Age of the source/cache entry when returned."New value: +"Age of the upstream observation when returned, in seconds. Null when the age cannot be measured."
    • addedOutput schema / $defs / Provenance / properties / freshness
      Added value: +{
      +  "$ref": "#/$defs/Freshness",
      +  "default": "unverified",
      +  "description": "fresh: an upstream observation time was checked against this server's clock and is within tolerance. stale: the check failed (old, clock-skewed, or frozen data) or a cache entry past its TTL is served. unverified: the data carries no upstream clock reference (schedules, the network snapshot, alerts), so it cannot be confirmed as current."
      +}
    • changedOutput schema / $defs / Provenance / properties / is_stale / description
      Previous value: -"True when the stale cache policy supplied the data."New value: +"True when stale data is being returned, whether from cache or upstream."
    • changedOutput schema / $defs / Provenance / properties / observed_at / description
      Previous value: -"Upstream observation timestamp. Live arrivals expose no timestamp, so this is the fetch time; schedules describe future service and leave it null; vehicles use their upstream timestamp."New value: +"Upstream observation timestamp in UTC. Live arrivals derive it from the feed's own display times and remaining minutes; it is null when the feed carries no clock reference or is rejected as stale. Schedules describe future service and leave it null; vehicles use their upstream timestamp."
  2. First observedv0.2.0

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds one genuinely useful fact beyond that: results come from a static bundled GTFS-derived snapshot rather than live data. It says nothing about result size, ordering, or pagination.

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

Conciseness4/5

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

A single front-loaded sentence with the resource and data source in the opening clause. It is terse and free of filler, though the mode list it adds is both redundant with the schema and inaccurate.

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

Completeness3/5

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

An output schema exists, so return-value explanation is not required, and there are no required parameters. What is missing is any guidance on filtering semantics or on the static-vs-live distinction's implications, plus the inaccurate mode list, leaving the definition only minimally sufficient.

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

Parameters2/5

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

Schema coverage is 100% for the single optional `mode` parameter, which sets a baseline of 3, but the description names modes ("metropolitan, express") that are not valid values in the VehicleMode enum (tram, trolleybus, bus, vaporetto, unknown). This misleads the agent rather than adding meaning, so it scores below baseline.

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?

States a specific verb and resource ("List STPT ... routes") and scopes it to the bundled GTFS-derived snapshot, which clearly separates it from siblings like search_stops or get_vehicles. It does not explicitly name an alternative, so it stops short of full sibling differentiation.

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

Usage Guidelines2/5

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

No statement of when to call this versus search_stops, get_stop, or get_service_status, and no guidance on when the mode filter should be applied. The agent must infer usage entirely from the name and the mode enumeration.

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