Skip to main content
Glama

Stockholm Archipelago Trail

plan_route

Read-only

Plan a multimodal A→B route between two trail sections (islands), or between an island and a mainland ferry hub (Strömkajen, Vaxholm, Årsta, Stavsnäs …): walk → ferry → walk, with departure/arrival times, walking distances and pier names. Use this when the user wants to travel from one island to another, out to an island from the mainland, or home from an island (or asks how to get between two places on the trail). From/to take the same identifiers as fetch (sat:section:…, slug or uid). Same section for both returns a walk-only route. Do not use for a round trip to a single island (use day_trip) or for multi-day trips (use multi_day). If the user has not named the two islands, pick two neighbouring stages with search first and then call this tool. IMPORTANT: every call to this tool renders a card in the conversation. Call it at most ONCE per answer, for the single option you recommend. Never use it to compare or probe alternatives. The card already shows ferry times, piers and walking times — do not restate them in your reply; add only advice, caveats and next steps.

Input Schema

NameRequiredDescriptionDefault
toYesDestination: a section reference (e.g. 'moja') or a mainland ferry hub (e.g. 'arsta').
dateNoTravel date, YYYYMMDD (Europe/Stockholm), e.g. 20260905. Defaults to today.
fromYesStart: a section reference (satId, slug or uid, e.g. 'uto') or a mainland ferry hub (e.g. 'stromkajen', 'vaxholm', 'arsta').
langNoLanguage of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language.
timeNoEarliest departure, HHMM (24h). Defaults to 0900.

Output Schema

NameRequiredDescriptionDefault
toYes
dateYesYYYYMMDD.
fromYes
timeNoEarliest departure "HHMM".
routeYesGeometry-free route result. kind "ok" carries bestAny/bestBoatOnly with walk legs (distances, pier names) and ferry legs (departure/arrival, line, booking). kind "walk-only" is a same-island walk. Other kinds describe why no route was found.
toTitleNo
fromTitleNo
permalinkNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description contributes a genuinely non-obvious side effect: every call renders a card in the conversation, so it must be called at most once per answer and never used to compare options. It does not cover auth, throttling, or failure behavior, and since an output schema exists, return-value detail is rightly omitted.

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?

Content is front-loaded: purpose first, then usage, then exclusions, then call-volume constraints. It is long, and the parenthetical identifier list plus the closing instruction about not restating card contents could be tightened, but nearly every sentence carries information an agent needs to behave correctly.

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?

Complete for a 5-parameter tool with full schema coverage and an output schema: purpose, alternatives, prerequisite search step, identifier conventions, the identical-from/to edge case, and the one-call-per-answer constraint are all stated. Nothing an agent needs to invoke it correctly is missing.

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 description coverage is 100%, so the baseline is 3; the description adds value by stating that from/to accept the same identifier forms as fetch (sat:section:…, slug or uid) — a cross-tool convention the schema only hints at. It also documents an edge case: passing the same section for both yields a walk-only route. Date and time defaults are left to the schema.

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 gives a specific verb (plan) and a precisely scoped resource: a multimodal walk → ferry → walk route between two trail sections or between an island and a named mainland ferry hub. It enumerates the outputs (departure/arrival times, walking distances, pier names) and distinguishes itself from day_trip and multi_day by name, so an agent can select it without opening any 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?

Explicit when-to-use cases are listed (island→island, mainland→island, island→home), plus explicit when-not-to-use cases routing to day_trip for round trips and multi_day for multi-day trips. It even prescribes a prerequisite workflow: if the two islands aren't named, pick neighbouring stages with search first, then call this tool.

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