Skip to main content
Glama

Server Details

Find the best-value cruise: 23 lines, ~30k sailings priced nightly, low/high vs usual, book link.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
98.5% over 25 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.8/5.0

Scored across 10 tools

Disambiguation4/5

Each tool targets a distinct purpose: price-checking a specific quote (check_price), full sailing detail (get_cruise), broad search (search_cruises), curated deals (last_minute_cruise_deals), line comparison (compare_cruise_lines), and index/port/options reference tools. The only mild overlap is between check_price, get_cruise and search_cruises, all of which surface pricing, but their descriptions clearly delineate the scenarios.

Naming Consistency4/5

Names are consistently snake_case, with clear verb_noun patterns for the action tools (check_price, get_cruise, search_cruises, report_problem, request_trip_help). A few are noun-only (cruise_options, fare_index, port_guide) and one is adjective-heavy (last_minute_cruise_deals), but the set remains predictable and readable.

Tool Count5/5

Ten tools is well-scoped for a cruise discovery/booking assistant: search, detail, comparison, deals, pricing, references, and two support tools. Each tool has a clear reason to exist and none feels redundant.

Completeness4/5

The surface covers discovery (search, options, deals), inspection (get_cruise, port_guide, fare_index, check_price), comparison, plus feedback and human-assist paths. Booking itself is delegated to book_url, and there is no availability/inventory check, but the core planning lifecycle is well covered.

Available Tools

10 tools
check_priceIs this cruise price good?A
Read-only
Inspect

Judge a price someone was quoted or already paid for one sailing: whether it is low, typical or high against that sailing's usual price for the cabin, today's listed fare beside it, the lowest fare read in 120 days, a plain one-paragraph answer to quote, and watch_url where the person can be emailed if the fare drops below their price. Name the sailing by sailing_id, a fantasize.net /cruise/ link, or ship plus depart_date.

NameRequiredDescriptionDefault
urlNoOr a fantasize.net /cruise/ link, or a Cruisebound sailing link
shipNoOr the ship name ("Celebrity Beyond") with depart_date
cabinNoCabin grade to price. Omit to quote balcony where sold, else the next grade.
priceYesThe quoted or paid fare in USD, per person for the whole cruise, taxes and port fees in
sailing_idNoA Fantasize sailing id
depart_dateNoDeparture date YYYY-MM-DD (with ship)
price_is_for_twoNotrue if price is the total for a cabin of two

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only cover the safety profile (readOnlyHint=true, openWorldHint=false); the description goes further by disclosing the actual verdict scale (low/typical/high), the comparison baselines used (cabin's usual price, today's listed fare, 120-day low), and the returned watch_url for fare-drop email. The 120-day lookback window is genuinely useful behavioral context. It does not contradict the read-only annotation, since watch_url is a returned link rather than a mutation this tool performs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, which is good, but everything after it is one long comma-chained run-on mixing inputs, outputs, and defaults. A reader has to re-parse the sentence to separate what goes in from what comes back.

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?

With seven parameters and no output schema, the description carries the return-value burden and does so: verdict, today's fare, 120-day low, a quotable paragraph, and watch_url. The default cabin behavior and price basis are also covered. It is close to complete, though the currency/per-person basis is only in the schema.

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 adds real value by consolidating the three mutually exclusive ways to name a sailing (sailing_id, a fantasize.net /cruise/ link, or ship plus depart_date) into one sentence, which the per-parameter schema descriptions do not state as alternatives.

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?

The description gives a concrete verb and resource ('Judge a price someone was quoted or already paid for one sailing') and scopes it to a single sailing, which implicitly separates it from aggregate siblings like fare_index. It does not name or contrast any sibling tool explicitly, so it lands at 4 rather than 5.

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

Usage Guidelines3/5

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

Usage is implied: you invoke it when a person has a quoted or paid fare in hand. There is no explicit when-not guidance, no prerequisites, and no routing to alternatives such as fare_index or get_cruise, so the agent must infer the boundary between this and its siblings.

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

compare_cruise_linesWhich cruise line is cheapest for this tripA
Read-only
Inspect

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?".

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

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.

cruise_optionsWhat can be searchedA
Read-only
Inspect

The regions, cruise lines (with tier), departure ports and months on sale, each with its count of sailings. These are the values the search filters accept.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe, closed-world read profile is covered. The description adds that each facet carries a count of sailings, which is behavioral-ish context, but gives no detail on response shape or size. Adequate given the low annotation burden but not rich.

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, zero filler, front-loaded with the returned facet list. 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?

With no output schema and no parameters, the description must carry the return-value burden, and it enumerates the facet categories and the count field clearly. It could say a bit more about how tier or months-on-sale are structured, but it is sufficient for an agent to call the tool correctly.

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?

The tool takes zero parameters, so the baseline is 4. The description rightly spends its words on what can be filtered rather than on inputs, and there is no parameter semantics gap to fill.

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?

The description names the specific resources returned (regions, cruise lines with tier, ports, months on sale) and their sailing counts, which is concrete and distinguishable from search_cruises. It lacks an explicit verb like 'list' or 'returns', leaving the action implied, but the resource set is unambiguous.

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

Usage Guidelines3/5

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

'These are the values the search filters accept' implies the tool should be consulted before invoking search_cruises, which is useful context. However, it never explicitly says when to call it versus siblings, nor does it name an alternative or state prerequisites.

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

fare_indexCruise Fare Index: are cruise prices rising or falling?A
Read-only
Inspect

Fantasize's Cruise Fare Index: how the price of the same cruises moves night to night, from our own nightly pricing of every sailing (each sailing compared only with its own earlier price, so new sailings and sell-outs never move it). Returns the overall level and its change, and the same by cruise company (with stock ticker), cruise line, region and months to departure, plus the cruise companies' latest press releases. Name a group (e.g. "Royal Caribbean Group", "Alaska", "3-6 months out") for its daily series.

NameRequiredDescriptionDefault
cutNoOnly this breakdown (default: all)
daysNoHow many days of the series
groupNoA series name for its daily points, e.g. "Carnival Corp", "Celebrity", "Caribbean"

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only supply readOnlyHint=true and openWorldHint=false, but the description adds real behavioral context: the index is computed from Fantasize's own nightly pricing of every sailing and each sailing is compared only with its own earlier price, so new sailings and sell-outs never distort it. It also discloses that press releases are bundled into the return payload. No rate limits or pagination behavior are mentioned, keeping it out of 5 territory.

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?

Three sentences, front-loaded with the definition, then the return shape, then the drill-down instruction. The middle sentence is long and stacks five breakdown dimensions, but every clause carries information the agent needs.

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?

With no output schema and only three optional parameters, the description carries the burden of describing returns and does so thoroughly: overall level and change, the same broken out by company (with ticker), line, region and months to departure, plus press releases. Nothing needed to call this tool 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 already 100%, so the baseline is 3, but the description adds meaning the schema does not: group values map onto the breakdown categories (company, region, lead time) with examples like "Royal Caribbean Group", "Alaska", "3-6 months out", and it notes that the company cut carries a stock ticker. It does not add anything about 'days' or 'cut' beyond the schema.

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?

The description gives a specific verb-adjacent purpose: an index of how the price of the same cruises moves night to night, plus what it returns (overall level and change, plus breakdowns). It is unmistakably an aggregate trend tool rather than a single-cruise lookup, which implicitly separates it from check_price and search_cruises. It never names a sibling explicitly, so it stops short of a 5.

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 title frames the use case (are cruise prices rising or falling?) and the last sentence tells the agent how to drill down: name a group to get its daily series. There are no explicit when-not conditions or named alternatives, so it is clear context without exclusions.

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

get_cruiseOne sailing in fullB
Read-only
Inspect

Everything about one sailing: day-by-day itinerary, current price of each cabin grade with the date it was read (and which have no price listed),each grade against its usual price, the fare's own price history, the same itinerary on other dates with prices, the best thing to do at each port (verified seller and price where we have one, and its booking page), and book_url.

NameRequiredDescriptionDefault
urlNoOr a fantasize.net /cruise/ link, or a Cruisebound sailing link
cabinNoCabin grade to price. Omit to quote balcony where sold, else the next grade.
sailing_idNoA Fantasize sailing id, as returned in search results

TDQS

B3.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds value beyond this by disclosing that prices carry a read date, that some grades may have no listed price, and that port recommendations include verified sellers with booking pages. However, it doesn't clarify the response shape or any rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single long, comma-spliced sentence enumerating many return fields. It is front-loaded with 'Everything about one sailing' but the sprawling list of outputs makes it somewhat hard to parse; tightening would improve it.

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?

For a read-only detail tool with no output schema, the description does a good job enumerating what is returned. However, it omits identification requirements (must supply url or sailing_id), what happens if neither is provided, and any pagination or size caveats.

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 coverage is 100%, so baseline is 3. The cabin enum and its omission-default behavior ('quote balcony where sold, else the next grade') are documented in the schema itself, not the description, so the description adds little parameter-level meaning.

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?

The description names the specific resource (one sailing) and enumerates its contents in detail: itinerary, prices, history, alternatives, ports. It's clearly distinct from search_cruises and compare_cruise_lines, though it doesn't explicitly name a sibling to differentiate.

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

Usage Guidelines2/5

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

No when-to-use guidance or alternatives named. The agent must infer that this is for retrieving full details of a single already-identified sailing versus searching. The schema (url/sailing_id) implies identification-first, but the description doesn't say so.

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

last_minute_cruise_dealsLast-minute cruise deals (next 3 weeks)A
Read-only
Inspect

Today's report of balcony and suite cabins on cruises leaving North American ports within about 21 days, each measured against the book-ahead price for the same ship, grade and length (rebuilt every morning). Filter by departure port or region. Some late fares are dearer than booking ahead; those show a negative percent.

NameRequiredDescriptionDefault
limitNo
regionNo
from_portNoDeparture port, e.g. "Seattle" or "Barcelona"; several comma-separated: "Miami,Fort Lauderdale"

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint=false, but the description adds real behavioral context: data is rebuilt every morning, coverage is limited to North American ports and balcony/suite cabins, and negative percentages mean late fares cost more than booking ahead. It does not mention pagination or result volume, but adds meaningful value beyond the 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?

Front-loaded with the core scope in the first clause and no filler sentences; each sentence carries distinct information (scope, filters, price-delta semantics). Slightly dense but no waste.

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?

With no output schema, the description must convey what comes back; it explains that each entry compares the late fare against the book-ahead price for the same ship, grade and length, and that negative values mean a premium. It does not enumerate full return fields, leaving a modest gap.

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 coverage is only 33% (only from_port is documented). The description mitigates this by explaining that results can be filtered by departure port or region, giving region implicit meaning, but it adds nothing for 'limit' (default 10, max 25) and gives no format hints for region. Baseline 3 given the partial compensation.

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+scope: a daily report of balcony and suite cabins on cruises departing North American ports within ~21 days, benchmarked against book-ahead prices. This distinguishes it from generic siblings like search_cruises or cruise_options by its narrow inventory and price-delta framing.

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

Usage Guidelines3/5

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

'Filter by departure port or region' implies how to narrow results, but there is no explicit when-to-use guidance versus search_cruises or cruise_options, and no stated exclusions. Usage context is implied rather than stated.

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

port_guideBest things to do at a cruise portA
Read-only
Inspect

Fantasize's ranked guide to one cruise port: the most extraordinary things to do, the operator who runs each, the verified seller and price where we have one, a booking page for each, and how many sailings call there.

NameRequiredDescriptionDefault
portYese.g. "Juneau", "Cozumel", "Santorini"

TDQS

A3.5/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint=false. The description adds real value beyond them by disclosing the return contents (ranked activities, operator, verified seller and price, booking page, sailing counts), which matters because there is no output schema.

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?

A single front-loaded sentence that leads with the resource and scope, then lists contents. It is a dense run-on list but every clause describes a distinct part of the response.

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?

With no output schema, the description usefully enumerates what the guide returns, and the single required parameter is fully documented in the schema. Only the absence of usage routing keeps it from being complete.

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?

Only one parameter, and schema coverage is 100% with a concrete example ('Juneau', 'Cozumel', 'Santorini'). The description adds no format or matching semantics beyond the schema, so baseline 3 applies.

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 resource - a ranked guide to one cruise port - and enumerates what it contains (activities, operators, seller/price, booking page, sailings count). This clearly separates it from the cruise-search siblings like get_cruise and search_cruises, though it never names them.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative routing is given. An agent must infer from the siblings alone that this is the port-destination lookup rather than a cruise search.

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

report_problemTell Fantasize something is wrongAInspect

Report a problem you found while using these tools: a price that does not match the booking page (wrong_price), a sailing that cannot be bought (not_for_sale), a wrong route or ports (wrong_itinerary), a book_url that does not open the sailing (broken_link), results that miss or do not fit the request (irrelevant_results, missing_sailings), or duplicates. Include sailing_id when it is about one sailing, and the search you ran when it is about results. Reports carry no personal details; a person at Fantasize reads every report.

NameRequiredDescriptionDefault
kindYes
detailNoWhat was wrong, in a sentence or two
searchNoThe search arguments that produced the problem
sailing_idNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare the safety profile (not read-only, not idempotent, not destructive, closed-world). The description adds real behavioral context beyond that: reports carry no personal details and a human at Fantasize reads every report, telling the agent the submission is human-reviewed and privacy-safe. It does not describe what response or confirmation comes back.

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 verb and the scope lead, the enum-to-meaning list follows, and the param guidance and privacy note close it out. It is dense but every clause carries information (category definitions, param conditions, human review). Slightly long for a single run-on sentence but no filler.

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?

No output schema exists, and none is strictly needed for a fire-and-forget report, but the description covers submission categories, required context, privacy, and the review pipeline. The only gap is what the agent should expect after calling (confirmation, no return value), which is minor.

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?

With only 50% schema description coverage, the description compensates well: it maps nearly every enum value of 'kind' to a plain-language meaning and explains when to populate sailing_id versus the nested search object. Only the 'other' enum value and the detail field's expected content are left implicit.

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 (report a problem found while using these tools) and enumerates the exact problem kinds, which separates it cleanly from the read-only search/inspection siblings. An agent knows immediately this is the feedback channel, not a lookup tool.

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 tells the agent when to use each kind (wrong price vs unbookable sailing vs broken link vs irrelevant results) and gives conditional guidance: include sailing_id when it concerns one sailing, the search arguments when it concerns results. It does not state exclusions or alternatives, but the enumerated categories make the trigger conditions unambiguous.

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

request_trip_helpAsk a Fantasize cruise specialist to help plan a tripAInspect

Sends one email to the person's own address. Their click in that email confirms the request; only then does it reach a Fantasize cruise specialist, who replies to them by email to help plan and book the trip. Free; no account is created and nothing is charged. Takes the trip they want in a sentence or two, and optionally dates, travellers, budget, home city and the sailing ids they looked at.

NameRequiredDescriptionDefault
nameNo
whatYesThe trip they want help with, e.g. "Alaska in July 2027 from Seattle, balcony, two adults, first cruise"
whenNoDates or month, e.g. "July 2027"
emailYesThe person's own email address, given with their consent
budgetNoe.g. "about $3,000 for two"
from_cityNoWhere they travel from
travelersNoe.g. "2 adults, 1 child aged 9"
sailing_idsNoFantasize sailing ids they looked at (up to 6)

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations, which only declare readOnlyHint=false and openWorldHint=true. The description discloses the double opt-in mechanism (an email to the user's own address, their click confirms it), that no account is created and nothing is charged, and that a human specialist replies by email — all material side-effect and privacy context for a non-read-only tool.

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?

Three front-loaded sentences: behavior and confirmation flow first, then cost/consent guarantees, then the accepted inputs. No filler, though the final sentence is a partial restatement of the schema.

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 an 8-parameter, no-output-schema side-effect tool, the description covers the flow, cost, consent, and input expectations well. It is slightly thin on what the caller gets back after the request is sent (e.g. a confirmation response), but nothing critical for correct invocation is missing.

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 88%, so the schema already documents email, what, when, budget, from_city, travelers and sailing_ids. The description adds only a loose summary of the same fields and their optionality, and omits `name` entirely, so it does not meaningfully exceed 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?

States a specific action (send a help request email to a Fantasize cruise specialist) and a specific resource (trip planning request), which is clearly distinct from sibling search/info tools like search_cruises and get_cruise. An agent can tell this is a lead-handoff tool, not a data-retrieval one.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the description explains the confirmation flow and that it's free, which hints at when a user would want it, but it never says when to pick this over search_cruises, compare_cruise_lines, or cruise_options. No exclusions or prerequisites (e.g. 'use only after the user has looked at sailings') are given.

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

search_cruisesFind and rank cruises with today's pricesA
Read-only
Inspect

Accepts the request in plain words (q) or as fields. Searches every sailing Fantasize tracks (23 cruise lines, ~30,000 sailings, priced every night) by region, dates, departure port, ports visited, line, length, cabin and budget. Returns up to 25 sailings with the price per person (taxes and port fees in), per night and for a cabin of two, every cabin grade's price, whether the fare is low, typical or high against that sailing's usual price, the ports of call, and book_url - a link the person opens to book that exact sailing. Default ranking is best_value (furthest below its usual price).

NameRequiredDescriptionDefault
qNoThe person's request in plain words, e.g. "alaska in july from seattle, balcony, under $3000 for two". Read by fixed rules; the answer says how it was understood and which words were not. Any other argument given overrides what q says.
lineNoCruise line, e.g. "Royal Caribbean", "NCL", "Princess", "Viking"
shipNoShip name or part of it
sortNobest_value
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.
limitNo
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
only_below_usualNoOnly fares measurably below their usual price
max_price_per_nightNoBudget per person per night, USD
max_price_per_personNoBudget per person for the whole cruise, USD

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only cover readOnly/openWorld, so the description carries the rest — and it does: data freshness ('priced every night'), result cap ('up to 25 sailings'), exact price semantics (taxes and port fees in, per person, per night, for a cabin of two), the low/typical/high-vs-usual signal, and the default best_value ranking. With no output schema, this return-value disclosure is exactly the missing behavioral context.

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 the action and scope, then the return payload and default ranking; the dense pricing sentence is long but every clause describes a distinct output field that no output schema covers. Slightly overlong but no filler sentences.

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 an 18-parameter, zero-required tool with no output schema, the description covers purpose, scope, input modes, default ranking, and return contents well. Gaps are minor: no mention of pagination beyond the 25 cap, no error/empty-result behavior, and no sibling routing.

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 coverage is 78%, so the schema already documents most filters; the description's list of filterable dimensions largely restates them. It adds marginal value by noting the 'up to 25 sailings' cap (matching limit.maximum), though it doesn't mention the default limit of 10, so it neither compensates for nor extends the schema much.

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 and resource ('Searches every sailing Fantasize tracks ... by region, dates, departure port, ports visited, line, length, cabin and budget') and quantifies scope (23 cruise lines, ~30,000 sailings). An agent can tell this apart from get_cruise (single sailing) or compare_cruise_lines 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 Guidelines3/5

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

Explains the two input modes ('the request in plain words (q) or as fields') and the override precedence, which is useful call-time guidance. However it never names an alternative sibling or states when NOT to use this tool (e.g. use check_price for one fare, cruise_options for browsing regions), so routing is left to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Addedfare_index
  2. 2 tool updates
    • Changedcompare_cruise_lines1 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."
    • Changedsearch_cruises1 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."
  3. 3 tool updates
    • Addedcheck_price
    • Changedcompare_cruise_lines3 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"
        +]
    • Changedsearch_cruises3 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"
        +]
  4. 1 tool update
    • Addedrequest_trip_help
  5. 4 tool updates
    • Changedcompare_cruise_lines1 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)"
    • Changedget_cruise1 field changed
      • changedInput schema / properties / sailing_id / description
        Previous value: -"From search_cruises"New value: +"A Fantasize sailing id, as returned in search results"
    • Changedreport_problem1 field changed
      • changedInput schema / properties / search / description
        Previous value: -"The search_cruises arguments that produced the problem"New value: +"The search arguments that produced the problem"
    • Changedsearch_cruises1 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)"
  6. 1 tool update
    • Changedsearch_cruises1 field changed
      • addedInput schema / properties / q
        Added value: +{
        +  "description": "The person's request in plain words, e.g. \"alaska in july from seattle, balcony, under $3000 for two\". Read by fixed rules; the answer says how it was understood and which words were not. Any other argument given overrides what q says.",
        +  "type": "string"
        +}
  7. 1 tool update
    • Addedreport_problem
  8. 6 tool updates
    • First observedcompare_cruise_lines
    • First observedcruise_options
    • First observedget_cruise
    • First observedlast_minute_cruise_deals
    • First observedport_guide
    • First observedsearch_cruises

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to search upcoming sailings by ship, line, port, region, date, length and fare, view day-by-day itineraries, track each sailing's weekly fare history, measure monthly ship capacity and berths at a port, and read the weekly Cruise Price Index. All tools are read-only and return structured JSON behind OAuth sign-in or an API key.
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Search 70,000+ cruise voyages, 678 ships, and 62 cruise lines worldwide. No API key needed, no installation required — just paste the URL. Includes RAG-powered knowledge search for ship dining, facilities, cabins, and port guides. 30 languages supported.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources