Skip to main content
Glama

Which cruise line is cheapest for this trip

compare_cruise_lines
Read-only

Side-by-side cruise lines for the same kind of cruise (a region, departure port or port visited, plus dates): each line's number of sailings, ships, median and lowest price per person per night in one cabin grade, and its cheapest sailing with book_url. Answers "Alaska in July: Princess or NCL?".

Input Schema

NameRequiredDescriptionDefault
lineNoCruise line, e.g. "Royal Caribbean", "NCL", "Princess", "Viking"
shipNoShip name or part of it
tierNoluxury includes ultra-luxury; ultra-luxury is the top of the market only: Regent, Silversea, Seabourn, Explora Journeys (all-suite, all-inclusive)
cabinNoCabin grade to price. Omit to quote balcony where sold, else the next grade.
monthNoDeparture month, YYYY-MM
regionNoWhere the cruise goes: a region (caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, more) or a named place it calls at (greek-islands, norwegian-fjords, canada-new-england, canary-islands, british-isles, baltic, iceland, adriatic, japan, hawaii, panama-canal, bermuda, galapagos, tahiti, arctic, antarctica, danube, rhine, douro), or any port, island, country or state we sail to ("Santorini", "Maui", "Greece", "Juneau"). cruise_options lists the regions and named places with counts.
calls_atNoA port the ship must visit, e.g. "Juneau", "Santorini", "Cozumel"
depart_toNoLatest departure date, YYYY-MM-DD
from_portNoDeparture port, e.g. "Seattle" or "Barcelona"; several comma-separated: "Miami,Fort Lauderdale"
nights_maxNo
nights_minNo
depart_fromNoEarliest departure date, YYYY-MM-DD

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / region / description
      Previous value: -"Where the cruise goes: a region (caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, more) or a named place it calls at (greek-islands, norwegian-fjords, canada-new-england, canary-islands, british-isles, baltic, iceland, adriatic, japan, hawaii, panama-canal, bermuda, galapagos, tahiti, arctic, antarctica, danube, rhine, douro). cruise_options lists every value with its count."New value: +"Where the cruise goes: a region (caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, more) or a named place it calls at (greek-islands, norwegian-fjords, canada-new-england, canary-islands, british-isles, baltic, iceland, adriatic, japan, hawaii, panama-canal, bermuda, galapagos, tahiti, arctic, antarctica, danube, rhine, douro), or any port, island, country or state we sail to (\"Santorini\", \"Maui\", \"Greece\", \"Juneau\"). cruise_options lists the regions and named places with counts."
  2. Changed3 schema fields changed
    • changedInput schema / properties / region / description
      Previous value: -"Where the cruise goes: caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, hawaii, bermuda, panama-canal, south-america, antarctica, australia, ... (every region with sailings on sale)"New value: +"Where the cruise goes: a region (caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, more) or a named place it calls at (greek-islands, norwegian-fjords, canada-new-england, canary-islands, british-isles, baltic, iceland, adriatic, japan, hawaii, panama-canal, bermuda, galapagos, tahiti, arctic, antarctica, danube, rhine, douro). cruise_options lists every value with its count."
    • addedInput schema / properties / tier / description
      Added value: +"luxury includes ultra-luxury; ultra-luxury is the top of the market only: Regent, Silversea, Seabourn, Explora Journeys (all-suite, all-inclusive)"
    • changedInput schema / properties / tier / enum
      Previous value: -[
      -  "contemporary",
      -  "premium",
      -  "luxury",
      -  "river"
      -]New value: +[
      +  "contemporary",
      +  "premium",
      +  "luxury",
      +  "ultra-luxury",
      +  "river"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / region / description
      Previous value: -"Where the cruise goes: caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, hawaii, bermuda, panama-canal, south-america, antarctica, australia, ... (cruise_options lists them all with counts)"New value: +"Where the cruise goes: caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, hawaii, bermuda, panama-canal, south-america, antarctica, australia, ... (every region with sailings on sale)"
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only cover readOnlyHint and openWorldHint; the description adds real value by disclosing the returned aggregates (sailings, ships, median/lowest price per person per night, cheapest sailing with book_url) even though no output schema exists. It does not mention rate limits or auth, but for a read-only query tool that is a minor gap.

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 tightly packed sentences, front-loaded with the core purpose and output shape, then anchored with an example question. No filler and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, no-required, no-output-schema tool, the description compensates well by describing the return payload and comparison scope. Minor omissions remain (how many lines it compares, any result cap), but the essentials for correct invocation are present.

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 already high (83%), so the baseline is 3, but the description synthesizes the filter parameters into a meaningful scope definition ('a region, departure port or port visited, plus dates') and notes the comparison runs at 'one cabin grade', adding interpretation beyond the raw field list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (side-by-side compare) and resource (cruise lines) and enumerates exactly what it returns per line: sailings, ships, median/lowest price per person per night, cheapest sailing with book_url. It clearly reads as a multi-line comparison rather than a single-lookup tool, though it never names a sibling (e.g. search_cruises) to differentiate explicitly.

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 framing 'Answers "Alaska in July: Princess or NCL?"' gives concrete context for when this tool applies, and the parenthetical '(a region, departure port or port visited, plus dates)' signals the required scope of a comparison. There is no explicit when-not guidance or named alternative, so it stops 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources