Skip to main content
Glama

Spick Me — Swiss public transport

Plan a day out with several stops in Switzerland

plan_day_out
Read-onlyIdempotent

Plan a whole day of public transport with time spent at each stop: the train there, the hours somewhere, the connection on, and the way home — each leg timed from when the previous stay actually ends. This is Spick Me's day-out planner; no plain journey planner answers this in one call.

Use it for "a day trip from Bern to Grindelwald with four hours hiking, then dinner in Interlaken", "visit Thun, Spiez and Interlaken today", or an evening out and back. For a single A-to-B trip, use plan_journey.

Inputs: start is A station or stop name ("Zürich HB", "Bern", "Lausanne, Flon"), an address ("Bahnhofstrasse 1, Winterthur"), a named place ("ETH Zürich", "Kunsthaus"), a coordinate as "geo:47.3769,8.5417", or a place_id returned by find_place ("stop:8503000"). Names are read the way a rider types them; an ambiguous name returns candidates instead of a guess. stops is the list of places in order (1–12), each with stay_minutes (default 120; 0 means pass through without stopping) or leave_at ("HH:MM", move on at that time — a night away works: the next such time), and an optional note. end defaults to start, which makes it a round trip. departure is when the day starts: Swiss local time in ISO 8601, e.g. "2026-09-26T08:00"; an explicit offset or Z is converted. A bare "08:00" means today (tomorrow if it has long passed). Omit for now.

Each leg comes with a picture_url that opens an image of that connection.

Example: {"start": "Bern", "stops": [{"place": "Grindelwald", "stay_minutes": 240, "note": "hike"}, {"place": "Interlaken Ost", "stay_minutes": 90, "note": "dinner"}], "departure": "2026-09-26T08:00"}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNoWhere the day ends; defaults to start.
startYesWhere the day starts.
stopsYesThe places to visit, in order.
departureNoWhen the day starts. Omit for now.
transfer_time_factorNoHow much time to allow for changing trains, as a multiple of the timetable's minimum change times: 1 (default) is the timetable's own; 1.5 for luggage, children or reduced mobility; 0.7 for a fast walker. Between 0.5 and 3.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
backNo
dataYes
legsYes
staysYes
leavingNo
minutes_travellingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (read-only, idempotent, non-destructive, closed-world), and the description adds behavior they cannot: ambiguous place names return candidates rather than a guess, end defaults to start making a round trip, departure defaults to now, and a bare '08:00' is interpreted as today. It also notes each leg carries a picture_url. That is meaningful operational context beyond the structured fields.

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 with purpose, then routing, then input semantics, then an example — a sensible order with no filler sentences. It is on the long side, and the extensive start-format enumeration overlaps schema documentation, but each block carries usable information.

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?

An output schema exists, so return-value explanation is not required, and the description still notes the per-leg picture_url. Combined with defaults, disambiguation behavior, and the worked JSON example, an agent has everything needed to construct a correct call.

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 coverage is 100%, so the baseline is 3, but the description goes further than the schema on several parameters: it enumerates the accepted forms for start (station name, address, named place, 'geo:lat,lon', place_id from find_place), restates the 1–12 stop limit, and clarifies leave_at's night-away semantics. It omits transfer_time_factor, which only the schema documents, so it does not fully compensate.

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 ('Plan a whole day of public transport with time spent at each stop') and unpacks what a day plan contains — outbound train, stay, connection, return — which is a distinct capability from a point-to-point planner. It explicitly contrasts itself with plain journey planners and with the sibling plan_journey, so an agent can separate the two without opening a schema.

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

Usage Guidelines5/5

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

Gives concrete use cases (multi-stop day trip, three towns in a day, evening out and back) and an explicit exclusion: 'For a single A-to-B trip, use plan_journey.' The when-to-use and when-not-to-use conditions are both stated outright.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources