Skip to main content
Glama

Get STPT vehicle positions

get_vehicles
Read-onlyIdempotent

Retrieve current STPT vehicle positions with timestamps and staleness flags, optionally filtered by line, to track transit vehicles and assess data freshness.

Instructions

Get current STPT vehicle positions, optionally filtered by line. Each vehicle includes its upstream observation timestamp and staleness flag.

Input Schema

NameRequiredDescriptionDefault
lineNoOptional line filter.
limitNoMaximum number of vehicles.

Output Schema

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

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

A4/5.0
Behavior4/5

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

Annotations already establish this as a safe, read-only, idempotent operation, so the description doesn't need to cover safety. It adds useful behavioral context by disclosing that each vehicle carries an upstream observation timestamp and staleness flag, which tells the agent how to interpret data freshness. It does not mention pagination or limit behavior, but that is a minor gap given the annotations and 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 concise sentences, front-loaded with the purpose and followed by the optional filter and data-quality note. No filler or redundancy.

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 tool is simple: two optional parameters, full schema coverage, annotations covering safety and openness, and an output schema that documents return values. The description is complete enough for correct invocation. It could be improved by noting when to prefer this over get_arrivals or other siblings, but that is outside the core completeness of this definition.

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 both the 'line' filter and 'limit' cap are already documented in the schema. The description only restates the optional line filter and adds no syntax, format, or default details beyond the schema. Baseline 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 states a specific verb ('Get') and resource ('current STPT vehicle positions'), making it immediately distinguishable from siblings like search_stops, list_routes, and get_arrivals. No tautology or ambiguity.

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?

It implies usage through 'current' positions and an optional line filter, but gives no explicit when-to-use/when-not guidance, no alternatives among the sibling tools, and no prerequisites. The reader must infer the role of this tool from the resource name alone.

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