Fantasize cruise finder
Server Details
Find the best-value cruise: 23 lines, ~30k sailings priced nightly, low/high vs usual, book link.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: search returns individual sailings, compare aggregates by cruise line, get_cruise details one sailing, cruise_options provides filter values, last_minute_cruise_deals is a narrow daily report, port_guide covers port-level info, and report_problem/request_trip_help handle feedback and human assistance. No two tools overlap in a way that would cause misselection.
All names use snake_case, but the set mixes verb_noun patterns (search_cruises, get_cruise, compare_cruise_lines, report_problem, request_trip_help) with noun phrases (cruise_options, port_guide, last_minute_cruise_deals). This is still readable but not a predictable uniform convention.
8 tools is well-scoped for a cruise discovery service. Each tool covers a distinct need (search, compare, details, options, deals, port guide, help, feedback) without redundancy.
The surface thoroughly covers search, comparison, single-sailing details, filter metadata, last-minute deals, port guidance, human help, and problem reporting. Minor gaps include no direct booking tool (book_url is external), no ship-level lookup, and no saved-search or price-alert capability, but core workflows are well supported.
Available Tools
8 toolscompare_cruise_linesWhich cruise line is cheapest for this tripARead-onlyInspect
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?".
| Name | Required | Description | Default |
|---|---|---|---|
| line | No | Cruise line, e.g. "Royal Caribbean", "NCL", "Princess", "Viking" | |
| ship | No | Ship name or part of it | |
| tier | No | ||
| cabin | No | Cabin grade to price. Omit to quote balcony where sold, else the next grade. | |
| month | No | Departure month, YYYY-MM | |
| region | No | 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) | |
| calls_at | No | A port the ship must visit, e.g. "Juneau", "Santorini", "Cozumel" | |
| depart_to | No | Latest departure date, YYYY-MM-DD | |
| from_port | No | Departure port, e.g. "Seattle" or "Barcelona"; several comma-separated: "Miami,Fort Lauderdale" | |
| nights_max | No | ||
| nights_min | No | ||
| depart_from | No | Earliest departure date, YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond that: the comparison is scoped to comparable cruises, prices are per person per night, and figures include median vs lowest plus a bookable sailing. Pagination, result caps and the zero-filter behavior are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and its output, then a concrete example. Dense but every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter, zero-required tool with no output schema, the description covers output shape and filter intent well, but omits what happens with no filters supplied, any result limits, and how the comparison groups lines. Adequate but with clear gaps an agent would hit in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% with 12 parameters, and the description adds meaning the schema alone doesn't: filters define "the same kind of cruise" (region, departure port or port visited, plus dates), and pricing is quoted in a single cabin grade. It doesn't clarify how line/ship/tier interact or that all params are optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation (side-by-side comparison of cruise lines for equivalent itineraries) and enumerates exactly what comes back: sailing/ship counts, median and lowest price per person per night, and the cheapest sailing with a book_url. This clearly separates it from siblings like search_cruises and cruise_options, which enumerate sailings rather than compare lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The example question ("Alaska in July: Princess or NCL?") implies the use case but the description never states when to pick this over cruise_options or search_cruises, nor any prerequisite (e.g. at least one filter required). Usage is inferable rather than explicit.
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 searchedARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
get_cruiseOne sailing in fullBRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Or a fantasize.net /cruise/ link, or a Cruisebound sailing link | |
| cabin | No | Cabin grade to price. Omit to quote balcony where sold, else the next grade. | |
| sailing_id | No | A Fantasize sailing id, as returned in search results |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| region | No | ||
| from_port | No | Departure port, e.g. "Seattle" or "Barcelona"; several comma-separated: "Miami,Fort Lauderdale" |
TDQS
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.
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.
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.
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.
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.
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 portARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| port | Yes | e.g. "Juneau", "Cozumel", "Santorini" |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| detail | No | What was wrong, in a sentence or two | |
| search | No | The search arguments that produced the problem | |
| sailing_id | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| what | Yes | The trip they want help with, e.g. "Alaska in July 2027 from Seattle, balcony, two adults, first cruise" | |
| when | No | Dates or month, e.g. "July 2027" | |
| Yes | The person's own email address, given with their consent | ||
| budget | No | e.g. "about $3,000 for two" | |
| from_city | No | Where they travel from | |
| travelers | No | e.g. "2 adults, 1 child aged 9" | |
| sailing_ids | No | Fantasize sailing ids they looked at (up to 6) |
TDQS
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.
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.
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.
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.
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.
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 pricesARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | 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. | |
| line | No | Cruise line, e.g. "Royal Caribbean", "NCL", "Princess", "Viking" | |
| ship | No | Ship name or part of it | |
| sort | No | best_value | |
| tier | No | ||
| cabin | No | Cabin grade to price. Omit to quote balcony where sold, else the next grade. | |
| limit | No | ||
| month | No | Departure month, YYYY-MM | |
| region | No | 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) | |
| calls_at | No | A port the ship must visit, e.g. "Juneau", "Santorini", "Cozumel" | |
| depart_to | No | Latest departure date, YYYY-MM-DD | |
| from_port | No | Departure port, e.g. "Seattle" or "Barcelona"; several comma-separated: "Miami,Fort Lauderdale" | |
| nights_max | No | ||
| nights_min | No | ||
| depart_from | No | Earliest departure date, YYYY-MM-DD | |
| only_below_usual | No | Only fares measurably below their usual price | |
| max_price_per_night | No | Budget per person per night, USD | |
| max_price_per_person | No | Budget per person for the whole cruise, USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: nightly re-pricing, default best_value ranking ('furthest below its usual price'), a 25-result cap, and the fare-vs-usual classification. It doesn't mention pagination or latency, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the two input modes then moves to results, so the agent reads the important routing fact first. Dense but every clause carries information; only the long enumeration of returned fields borders on over-stuffing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers input modes, searchable dimensions, default ranking, result cap, and full return shape for a complex 18-param tool with no output schema. Nothing needed to invoke or interpret results is missing given the annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 72%, above the 80% baseline region, and the schema documents most params well (date formats, comma-separated ports, region list). The description restates the searchable axes but adds little syntax-level meaning beyond the schema; the q-override hint is the main value-add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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'), defines searchable dimensions, and describes the return payload (per-person/per-night pricing, cabin grades, value rating, ports, book_url). An agent can distinguish this as the primary search/rank tool against siblings like get_cruise (single detail) and last_minute_cruise_deals (narrowed subset).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the tool's role (search across all sailings, natural-language or structured input) and notes that explicit args override what q says, but never states when to prefer compare_cruise_lines, cruise_options, or last_minute_cruise_deals. No exclusions or alternative-selection guidance, so the agent must infer routing from sibling names alone.
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 tool update
- Added
request_trip_help
4 tool updates
- Changed
compare_cruise_lines1 field changed- changed
Input schema / properties / region / descriptionPrevious 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)"
- Changed
get_cruise1 field changed- changed
Input schema / properties / sailing_id / descriptionPrevious value: -"From search_cruises"New value: +"A Fantasize sailing id, as returned in search results"
- Changed
report_problem1 field changed- changed
Input schema / properties / search / descriptionPrevious value: -"The search_cruises arguments that produced the problem"New value: +"The search arguments that produced the problem"
- Changed
search_cruises1 field changed- changed
Input schema / properties / region / descriptionPrevious 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)"
1 tool update
- Changed
search_cruises1 field changed- added
Input schema / properties / qAdded 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" +}
1 tool update
- Added
report_problem
6 tool updates
- First observed
compare_cruise_lines - First observed
cruise_options - First observed
get_cruise - First observed
last_minute_cruise_deals - First observed
port_guide - First observed
search_cruises
Related MCP Connectors
Search cruises, check fares and price history, look up cabins, ships, lines and ports.
Cruise sailings, itineraries, weekly fare history, port capacity and the Cruise Price Index.
Find bookable sea and river cruises; ports, ships, cruise lines and an advisor opinion.
Score a river cruise date against daily water levels on the Rhine, Danube, Elbe and Seine.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceQuery cruise sailings, fares, price drops & ship specsMIT- AlicenseNot gradedqualityBmaintenanceEnables 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

siloah-travel-mcpofficial
AlicenseNot gradedqualityFmaintenanceSearch 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.3MIT- AlicenseAqualityAmaintenanceTravel award search: compare cash vs points on hotels, flights & cars, cents-per-point, and book319MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.