Skip to main content
Glama

Search Ferry Trips

search_ferry_trips
Read-only

Search ferry trips as an ordered chain of 1 to 5 legs. Takes human-readable location names (e.g. city or port name) for each leg, not port codes — no need to call get_ports first. Availability flags (cabin, vehicles, pets, e-ticket) are reported per segment.

  • One leg: a plain one-way search.

  • Two legs where leg 2 reverses leg 1 (e.g. leg 1 Piraeus→Mykonos, leg 2 Mykonos→Piraeus): a round trip.

  • Up to 5 legs otherwise (e.g. A to B, then B to C, then C to D): an island-hopping chain.

Legs after the first must depart from the location the previous leg arrived at, and must be in chronological order (a later leg may share the same date as an earlier one, but may not precede it).

The response returns each leg's available options independently (legs[].options) — options are never filtered against another leg's options. Consecutive legs must leave enough time between one leg's arrival and the next leg's departure to be a valid connection; this is not pre-filtered server-side or reflected in this output, so do not assume every combination of options across legs is a valid connection — the widget the user interacts with enforces this.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
legsYesAn ordered chain of sailing legs. A one-way search is a single leg. A round trip is 2 legs where leg 2 reverses leg 1 (e.g. leg 1 Piraeus→Mykonos, leg 2 Mykonos→Piraeus). An island-hopping chain is up to 5 legs, e.g. A→B, then B→C, then C→D. Each leg after the first must depart from the location the previous leg arrived at.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
legsYesOne entry per requested leg, in chronological order. For a one-way search this has 1 entry. For a round trip (2 legs where leg 2 reverses leg 1) index 0 is outbound and index 1 is the return. For a longer island-hopping chain there are 2-5 entries, one per leg.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds significant behavioral detail beyond that: availability flags per segment, that legs[].options are independent and not filtered against each other, that connection validity is not pre-filtered server-side, and that the widget enforces it. These are non-obvious behaviors that the agent must know to interpret results correctly. No contradiction with annotations.

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?

The description is longer than average but every section earns its place. It front-loads the core purpose and then uses bullet points to clarify leg patterns. The connection-validity caveat is important and placed at the end. It is structured and readable, not verbose or repetitive. Slight deduction for length, but justified by the tool's complexity.

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?

Given the complexity of multi-leg searches, the description covers all critical operational details: leg ordering, human-readable location names, independent option reporting, and the lack of server-side connection filtering. It also clarifies that the widget enforces connections, which prevents the agent from over-promising. With an output schema present, the description needn't detail return fields. Nothing an agent needs to call this 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 coverage is 100% for the only parameter (legs), and the schema itself provides detailed descriptions with examples. The description adds further semantics by explaining the leg chain patterns (one-way, round-trip, island-hop), reinforcing that locations are human-readable rather than port codes, and clarifying the chronological ordering constraint. This adds value beyond the schema, so a 4 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 opens with a specific verb and resource: 'Search ferry trips as an ordered chain of 1 to 5 legs.' It clearly distinguishes itself from sibling tools by specifying human-readable location names instead of port codes and by covering multi-leg chains (one-way, round-trip, island-hop). This goes beyond a generic statement and fully differentiates it from tools like get_direct_connections_for_ports and search_trips.

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 provides strong usage context: it explains when to use it (one-way, round-trip, multi-leg) and explicitly states that there's no need to call get_ports first. It also describes the constraints on leg ordering. It does not explicitly name alternative tools or say 'use X instead,' but the context is clear enough for an agent to decide. A small deduction for not explicitly excluding cases better served by a sibling.

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