Skip to main content
Glama

timetable

Retrieve planned train times at any station for a chosen date, helping plan future journeys with filters for time, origin, and destination.

Instructions

Booked train times at a station for any date the timetable covers (usually months ahead). Use for future trips; for right now prefer live_departures.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoOnly trains later calling here.
dateNoYYYY-MM-DD, 'today' or 'tomorrow'.
rowsNo
timeNoStart time HH:MM (24h). Default: now today, else the whole day.
boardNodepartures
stationYesStation name or CRS code.
from_stationNoOnly trains earlier calling here.
window_minutesNo
include_calling_pointsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYes
boardYes
filterNo
sourceYes
stationYes
messagesNoStation/network alerts.
servicesYes
platform_availableNoFalse if the live feed publishes no platforms for this station.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden, and it does add meaningful context: 'booked' signals this is the planned timetable rather than real-time, and the horizon ('usually months ahead') is disclosed. However, it does not say how out-of-coverage dates are handled, whether live disruption is reflected, or what the response shape implies, so the behavioral disclosure remains partial.

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 short sentences with zero filler. Purpose and scope are front-loaded first, and the usage caveat follows immediately; every word earns its place.

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 values need no explanation. The description handles the primary use case well, but for a 9-parameter tool it leaves unaddressed the arrivals board, row/window controls, and calling-point behavior, relying on the schema to carry those details.

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 56%, so the description is expected to partially compensate. It reinforces the two core parameters ('at a station' for station, 'any date the timetable covers' for date) and adds the horizon semantics. But rows, window_minutes, include_calling_points, and board have no schema descriptions and the description offers nothing for them, so the gap persists.

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 opens with a specific verb and resource ('Booked train times at a station') and clarifies the temporal scope ('any date the timetable covers, usually months ahead'). It explicitly differentiates from the closest sibling by pointing to live_departures for real-time queries, so an agent can tell them apart without opening schemas.

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 gives clear when-to-use guidance ('for future trips') and an explicit when-not-to with a named alternative ('for right now prefer live_departures'). It does not, however, address other overlapping siblings such as live_arrivals (given the board=arrivals option) or plan_journey, leaving some routing to inference.

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