Honee – cruise · honeefy
Server Details
Find bookable sea and river cruises; ports, ships, cruise lines and an advisor opinion.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool has a distinct action (find=search, show=display, advise=opinion, *_profile/facts/port_info=reference data). However, the cluster of informational tools (cruise_line_profile, ship_profile, port_info, booking_facts, advise) shares a similar 'give me info about X' shape, which could tempt an agent to pick the wrong one.
All snake_case, so formatting is uniform, but the convention is mixed: some are verb_noun (find_cruises, show_offers, advise) and others are bare noun phrases (booking_facts, cruise_line_profile, port_info, ship_profile). Readable but not a single predictable pattern.
7 tools is well-scoped for a cruise-advisory server, and each tool clearly earns its place (search, display, opinion, and three reference lookups).
The surface covers the core cruise consultation lifecycle: search offers, present recommendations, advise on a specific offer, and look up line/ship/port/booking facts. Minor gaps remain (no explicit cabin/fare selection or direct booking tool), but the booking link in results means agents can work around it.
Available Tools
7 toolsadviseAdvisor's opinion on one offerARead-onlyIdempotentInspect
Asks the provider's cruise advisor for a short, honest opinion on ONE offer from find_cruises: overall fit, or which cabin category or fare suits the travellers. Use it ONLY when the user asks about ONE specific offer ('is this right for me', 'which cabin', 'which fare') -- not after every find_cruises and never for a whole list. Quote the opinion as the advisor's. It does NOT search, book or compare several offers; it is limited to a few calls per consultation.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | What the opinion should focus on. | |
| handle | No | Consultation handle returned by a previous call (structuredContent.handle). Pass it on every call so wishes are remembered; omit it on the very first call. | |
| language | No | Language of the answer. Defaults to the provider's language. | |
| cruise_id | Yes | cruise_id of an offer returned by find_cruises. | |
| travellers | No | Optional short description of the travel party, e.g. 'couple, first cruise'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered; the description adds genuinely new behavior: a per-consultation call budget ('limited to a few calls') and the requirement to attribute the output as the advisor's. It stops short of describing how the opinion is returned or how the handle drives follow-up state, which keeps it below 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?
Every sentence carries distinct load: purpose, trigger, exclusion, attribution rule, call budget. The scope constraint ('ONE offer') is front-loaded and there is 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?
There is no output schema, and the description covers what matters most: what the tool returns conceptually, that it must be quoted as the advisor's, and its call-frequency limit. It omits how the returned handle should be threaded into subsequent calls, a small gap against a five-parameter tool with stateful follow-up.
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 the baseline is 3, but the description adds meaning: cruise_id must be an offer produced by find_cruises, focus is implicitly enumerated via 'overall fit, or which cabin category or fare', and the mention of a 'consultation' contextualises the handle parameter's continuity role.
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 ('asks the provider's cruise advisor for a short, honest opinion on ONE offer from find_cruises') and explicitly bounds the subject to a single offer. It is immediately distinguishable from find_cruises (search) and other profile siblings by naming what it is not: a searcher, booker, or comparator.
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?
Gives explicit when-to-use triggers ('is this right for me', 'which cabin', 'which fare') and equally explicit exclusions ('not after every find_cruises', 'never for a whole list'). The agent needs no inference to decide between this and find_cruises.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
booking_factsWho books, who protects the paymentARead-onlyIdempotentInspect
Returns the provider's own statement on booking: who the tour operator is, who acts as agent, how the customer's payment is protected (insolvency cover), how payment and cancellation work -- plus links to the legal pages. Use it when the user asks whether booking here is safe, who they are contracting with, or how payment is protected. It does NOT give legal advice and returns nothing if the provider has not published these facts.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | Consultation handle returned by a previous call (structuredContent.handle). Pass it on every call so wishes are remembered; omit it on the very first call. | |
| language | No | Language of the answer. Defaults to the provider's language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered structurally. The description adds real behavioral context beyond that: the tool may return nothing when facts are unpublished, and it disclaims legal advice. It doesn't say how the facts are sourced or aged, which keeps it short of 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-loaded with the return payload, then usage, then caveats — a sensible ordering with no filler sentences. It is a dense run-on sentence, but every clause carries distinct information, so it stays efficient rather than bloated.
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 takes on the burden of describing returns and does so by enumerating the fact categories the tool surfaces. Combined with usage triggers and the empty-result caveat, an agent has everything needed to call it 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?
Schema description coverage is 100%, and both parameters (handle, language) are documented in the schema itself, including the handle's carry-forward semantics. The description adds nothing about either parameter, so the 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?
Specific verb (returns) plus specific resource (the provider's own statement on booking), with the returned content enumerated: operator identity, agency role, insolvency cover, payment and cancellation terms, legal page links. An agent can distinguish this from ship_profile, cruise_line_profile, and advise 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use triggers are given ('whether booking here is safe, who they are contracting with, or how payment is protected'), plus an explicit exclusion ('does NOT give legal advice') and an edge-case behavior ('returns nothing if the provider has not published these facts'). That is when, when-not, and empty-result handling in one pass.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cruise_line_profileCruise line profileARead-onlyIdempotentInspect
Returns the consulting profile of a cruise line: who it suits, who it suits less, its style and fleet. Use it when the user asks which cruise line fits them or what a line is like. It does NOT return prices, offers or booking conditions.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | Consultation handle returned by a previous call (structuredContent.handle). Pass it on every call so wishes are remembered; omit it on the very first call. | |
| language | No | Language of the answer. Defaults to the provider's language. | |
| cruise_line | Yes | Cruise line name, e.g. 'MSC Cruises'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false and closed-world, so the safety profile is covered. The description adds useful scope information about what the response contains and explicitly what it does not return, though it says nothing about the stateful handle/session continuity that a caller must maintain.
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 tight sentences: purpose and return contents first, then usage trigger, then the exclusion. Every clause earns its place and nothing is padded.
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?
There is no output schema, so the description carries the burden of describing return content, and it does so adequately by naming the profile facets. Combined with a fully documented schema and annotation-covered safety, an agent has everything needed to call this 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?
Schema description coverage is 100%, so handle, language and cruise_line are already fully documented in the schema, including the handle carry-forward rule. The description adds no parameter-level detail beyond that, so the 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 verb and resource (returns the consulting profile of a cruise line) and enumerates the payload (who it suits, style, fleet). It is clearly distinct from sibling ship_profile by operating on a line rather than a ship, but it never names siblings to sharpen the distinction.
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?
Gives an explicit trigger ('when the user asks which cruise line fits them or what a line is like') plus a negative boundary that routes the agent to show_offers/booking_facts by excluding prices, offers and booking conditions. No inference required to pick this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_cruisesFind bookable cruisesARead-onlyIdempotentInspect
Searches the provider's LIVE, bookable sea and river cruise offers for a destination, a travel period and a travel party. Use it whenever the user asks about cruise offers, prices, dates or availability, wants to see, compare or book cruises: prices and availability change several times a day and this tool has the live availability for the traveller's party. Requires adults, period (or from_date/to_date) and destination — if any is missing, unusable or not a region this provider can search, the result lists a question for it and no search runs; ask the user, then call again with the same handle. For river cruises pass cruise_type='river' (a river name such as 'Danube' is recognised too). Sea cruises are shown WITHOUT a flight package by default; pass flight='with' to get the flight packages instead. Returns a summary plus up to 10 offers with cruise_id, ship, cruise line, dates, nights, price with currency (per person; for families the cabin total for the whole party where the provider computes it) and the booking link. Where the provider supports it, availability is checked LIVE for the top offers and each says whether it is confirmed; sold-out ones are removed. The list is a SAMPLE of the provider's matches: the result says how many exist and which cruise lines have sailings -- never conclude that a line is not offered because it is not listed; pass cruise_line to look for it. It does NOT show anything to the user, book, hold or price cabins, know availability beyond what it returns, or search by price alone. If you are recommending cruises, call show_offers ONCE afterward with the cruise_id values of your recommendation (3-5). Never invent offers that are not in the result.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many offers to return as data (3-10, default 10). The result also carries `total` and `links.all` (every match on the provider's search page). | |
| ports | No | Ports, islands or countries that must ALL be on the route (start, a stop or the end), e.g. ['Barbados', 'St. Lucia'] or the port cities ['Bridgetown', 'Castries'] -- an island/country entry matches any of its ports on the route. Names are matched in English; a translated name may find nothing, try the English or the specific port city instead. | |
| adults | No | Number of adults travelling. | |
| flight | No | 'without' (default): cruise only. 'with': the provider's flight packages. | |
| handle | No | Consultation handle returned by a previous call (structuredContent.handle). Pass it on every call so wishes are remembered; omit it on the very first call. | |
| period | No | Travel period as free text, e.g. 'summer 2027', 'October 2027', '2027-06-01 to 2027-06-30'. | |
| to_date | No | Latest departure, ISO date. Alternative to period. | |
| language | No | Language of the answer. Defaults to the provider's language. | |
| from_date | No | Earliest departure, ISO date. Alternative to period. | |
| nights_max | No | Maximum nights. Only if the user names a trip length; below 4 nights asks for short cruises first. | |
| nights_min | No | Minimum nights. Only if the user names a trip length. | |
| cruise_line | No | Cruise line(s) by name, e.g. 'MSC' or 'MSC, AIDA' (comma-separated). The search is filtered AT THE PROVIDER, so use it to look for a line the default list does not show. | |
| cruise_type | No | 'ocean': sea cruises. 'river': river cruises (Danube, Rhine, Moselle, Nile, ...). Omit it to derive it from the destination. | |
| destination | No | Region, country, sea or river in any language, e.g. 'Mediterranean', 'Norwegian fjords', 'Caribbean', 'Danube'. For a river cruise on any river pass 'river cruise'. | |
| children_ages | No | Age of each child at travel time. A child without an age is not searched for. | |
| departure_port | No | A single port that must be on the route (start, stop or end), e.g. 'Barcelona'. For several required ports use `ports` instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover safety (readOnly/idempotent), but the description adds rich behavioral context: prices change several times a day, requiring adults/period/destination or the call fails with a question, handle reuse to remember wishes, river vs sea handling, sample-not-exhaustive results, live availability checks with sold-out removal. These are non-obvious behaviors an agent must know to use the tool correctly.
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 purpose and usage, but the description is a very long run-on paragraph with many clauses. It packs in a lot of useful behavior but could be structured better with breaks or bullet points for readability. Information density is high, but not optimally organized.
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?
Given no output schema, the description fully explains the return shape (summary plus up to 10 offers with cruise_id, ship, line, dates, nights, price, booking link), how total matches are indicated, and the requirement to follow up with show_offers. Everything an agent needs to call and interpret results is present.
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 the schema already documents all 16 parameters thoroughly. The description adds cross-parameter semantics: 'cruise_type=river' recognition of river names, 'flight=with' toggling flight packages, handle reuse across calls, cruise_line used to filter at provider. It doesn't repeat the schema mechanically but adds contextual meaning exceeding baseline.
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 the provider's LIVE, bookable sea and river cruise offers') and names the exact required inputs. It also explicitly lists what the tool is NOT ('does NOT show anything to the user, book, hold or price cabins... or search by price alone'), drawing sharp boundaries against siblings like show_offers.
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?
Explicitly tells when to use it ('whenever the user asks about cruise offers, prices, dates or availability, wants to see, compare or book cruises'), how it routes to a sibling ('call show_offers ONCE afterward with the cruise_id values of your recommendation'), and lists exclusions. This is comprehensive routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port_infoPort factsARead-onlyIdempotentInspect
Returns facts about a cruise port: country, port code, coordinates and how many routes call there. Use it when the user asks about a port of call or departure port. It does NOT provide excursions, sights, weather or transfer advice, and it knows only ports in the provider's catalogue.
| Name | Required | Description | Default |
|---|---|---|---|
| port | Yes | Port name, e.g. 'Barcelona'. | |
| handle | No | Consultation handle returned by a previous call (structuredContent.handle). Pass it on every call so wishes are remembered; omit it on the very first call. | |
| language | No | Language of the answer. Defaults to the provider's language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context by stating it knows only ports in the provider's catalogue, which reinforces the closed-world constraint and tells the agent to expect misses outside that catalogue.
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, no filler. The high-value routing and exclusion information is front-loaded, and the closed-catalogue caveat is placed at the end where it belongs.
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 does the work of naming the returned fields, and annotations cover the safety profile, so an agent knows what it will get. The only omission is behavior when a port is not found in the catalogue or is ambiguous, which is minor for a read-only lookup tool.
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 100%; the port, handle and language parameters are all documented in the schema, including the handle's continuation semantics and the language enum. The description adds no parameter-level detail beyond that, so the baseline of 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 verb+resource ('Returns facts about a cruise port') and enumerates the exact facts returned: country, port code, coordinates, route count. It also distinguishes itself from adjacent content domains (excursions, sights, weather, transfers), so an agent can separate it from siblings like ship_profile or cruise_line_profile.
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?
Gives explicit triggering context ('when the user asks about a port of call or departure port') and a clear when-not list (no excursions, sights, weather, transfer advice). It stops short of naming which sibling tool to use instead for those needs, so it is strong but not fully routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ship_profileShip profileARead-onlyIdempotentInspect
Returns the profile of a cruise ship: cruise line, year built, size, passengers, crew and the consulting description. Use it when the user asks what a ship is like or wants to compare ships. It does NOT return deck plans, cabin numbers, live prices or availability.
| Name | Required | Description | Default |
|---|---|---|---|
| ship | Yes | Ship name, e.g. 'AIDAcosma'. | |
| handle | No | Consultation handle returned by a previous call (structuredContent.handle). Pass it on every call so wishes are remembered; omit it on the very first call. | |
| language | No | Language of the answer. Defaults to the provider's language. | |
| cruise_line | No | Optional cruise line to disambiguate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine value by disclosing the information boundary (no deck plans, cabins, prices, availability) and the field set a caller can expect.
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: purpose plus returned fields first, then usage trigger and exclusions. No filler, and the most decision-relevant information is front-loaded.
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 correctly compensates by listing the fields returned and the data explicitly out of scope. It omits any note on result size, caching, or handling of ambiguous ship names, but nothing needed to invoke the tool correctly 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 100%, so all four parameters (ship, handle, language, cruise_line) are already documented, including the handle's session-memory role and the language enum. The description adds no parameter-level detail beyond the schema, so the 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 verb and resource ('Returns the profile of a cruise ship') and enumerates the returned fields: cruise line, year built, size, passengers, crew, consulting description. The sibling 'cruise_line_profile' is not named, though the ship-vs-line distinction is inferable from the resource noun.
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?
Gives explicit triggers ('when the user asks what a ship is like or wants to compare ships') and a clear negative scope ('does NOT return deck plans, cabin numbers, live prices or availability'), which implicitly routes price/availability questions to booking_facts or show_offers. Alternatives are only implied, not named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_offersShow recommended cruisesARead-onlyIdempotentInspect
Shows the user the cruises you are recommending, as cards with ship photo, route, dates, price and booking link -- drawn by the host, not by you. Call it ONCE, as the LAST step of your answer, with the cruise_id values of a previous find_cruises result that you recommend (3-5, in your recommended order). Never call it before you have decided what to recommend, and never more than once per answer. It does NOT search; an unknown or expired cruise_id is left out and named in the result -- call find_cruises again if that happens.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | Consultation handle returned by a previous call (structuredContent.handle). Pass it on every call so wishes are remembered; omit it on the very first call. | |
| language | No | Language of the answer. Defaults to the provider's language. | |
| cruise_ids | Yes | cruise_id values from a previous find_cruises result, 3-5, in your recommended order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds genuinely new behavior: rendering is done by the host not the agent, invalid/expired ids are silently dropped and named in the result, and there is a strict once-per-answer invocation constraint.
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 action, then the invocation rules, then the failure mode. Every sentence carries operational 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?
With no output schema, the description still tells the agent what the result contains (rendered cards) and what happens on bad input (id omitted and named in the result). An agent has everything needed to call it correctly and interpret the outcome.
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 100%, so the schema already documents handle, language, and cruise_ids. The description restates the cruise_ids constraint (3-5, recommended order) but adds nothing about the handle or language parameters, so it only meets the baseline.
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 ('Shows the user the cruises you are recommending') plus the rendered form (cards with ship photo, route, dates, price, booking link), and explicitly negates the sibling behavior ('It does NOT search'), separating it cleanly from find_cruises.
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?
Highly explicit: call ONCE, as the LAST step, with 3-5 cruise_id values from a previous find_cruises result in recommended order; never before deciding, never more than once per answer. It also names the recovery path (call find_cruises again) when ids are unknown or expired.
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.
7 tool updates
- First observed
advise - First observed
booking_facts - First observed
cruise_line_profile - First observed
find_cruises - First observed
port_info - First observed
ship_profile - First observed
show_offers
Related MCP Connectors
Search cruises, check fares and price history, look up cabins, ships, lines and ports.
Score a river cruise date against daily water levels on the Rhine, Danube, Elbe and Seine.
Find, price, and book tours, day trips, and activities worldwide, with live dates and prices.
Search and book flights and hotels: hundreds of airlines, plus bookable hotel rates.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceQuery cruise sailings, fares, price drops & ship specsMIT
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- FlicenseNot gradedqualityDmaintenanceSearch flights, compare prices, check visas, look up airports, get travel advisories through a single endpoint.-
- AlicenseAqualityDmaintenanceDiscover and book theatre, shows, events, tours and experiences across 700+ cities worldwide on tickadoo® with real-time pricing and booking links.419 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.