Skip to main content
Glama

train_schedule

Read-onlyIdempotent

Retrieve scheduled SEPTA Regional Rail trains between two stations for a chosen date and departure window, returning direct trips or one-transfer alternatives.

Instructions

Scheduled Regional Rail trains from one station to another on a given day.

Args: from_station: Boarding station, e.g. "Jefferson", "30th Street", "Swarthmore". to_station: Destination station. date: "today", "tomorrow", a weekday name ("saturday" = the next Saturday, or today if it is Saturday), or YYYY-MM-DD. depart_after: Earliest departure, e.g. "05:00" or "7:30 AM". Defaults to now when the date is today, otherwise start of day. For "morning" use 05:00–12:00, "afternoon" 12:00–17:00, "evening" 17:00–23:59. depart_before: Latest departure. Defaults to end of service day. max_results: Cap on trains returned.

Returns direct trains (train number, departure, arrival, line). If there are no direct trains, returns one-transfer itineraries instead. Times are scheduled, not live; for trips in the next hour or so, also call next_trains for delays.

Input Schema

NameRequiredDescriptionDefault
dateNotoday
to_stationYes
max_resultsNo
depart_afterNo
from_stationYes
depart_beforeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Adds real context beyond the readOnly/idempotent annotations: results are scheduled not live, direct trains are preferred, and one-transfer itineraries are returned as a fallback. Return fields (train number, departure, arrival, line) are also named. Minor gap: no mention of what happens when max_results truncates results or when no service exists at all.

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?

Front-loaded purpose sentence followed by tightly organized per-argument documentation; each line adds information. The Args-style formatting is slightly verbose for a description field but not padded with filler.

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?

No output schema exists, yet the description explains the return shape, the fallback behavior, and the freshness limitation, and cross-references the sibling for live data. An agent has everything needed to call this correctly on the first attempt.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry all parameter meaning, and it does: station examples, accepted date formats with the weekday-name resolution rule, time formats with default resolution logic for depart_after and depart_before, and time-of-day bucket guidance. This is exactly the compensating detail required.

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 and resource with scope: 'Scheduled Regional Rail trains from one station to another on a given day.' This clearly separates it from station_departures (single-station) and next_trains (live/near-term) without needing the schema.

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 routes near-term queries to next_trains ('for trips in the next hour or so, also call next_trains for delays'), which is a genuine when-to-use signal. It does not explicitly contrast with station_departures or state when not to use this tool, so it falls short of a 5.

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