Skip to main content
Glama

Search yachts

search_yachts
Read-only

Use it when the person describes the yachts they want: where, when, how many people, a size, a type or a budget. Pass each wish as its typed filter (a list is any of its values; every filter must hold), and from / to whenever they gave exact days. With dates every row is free for that stay and carries its price, list price, discount and when the source was checked (checkedAt); without dates each row has its from-price. priceMin / priceMax count the mandatory extras. Every row links to its page on this site, with a photo: send the person there. notApplied lists the wishes that could not narrow the search. When nothing matches exactly, the rows are the nearest match and nearest says what was widened: tell the person. Paged: total and cursor. For deals or last-minute offers call best_deals; for what a stay costs before any dates, price_range; once they name or pick one, get_yacht.

Input Schema

NameRequiredDescriptionDefault
toNoCheck-out day, YYYY-MM-DD.
baseNoThe exact base it leaves from, in words.
fromNoCheck-in day, YYYY-MM-DD.
sortNoprice (default, cheapest first), discount (biggest first), or length (length, biggest first), cabins (cabins, biggest first), berths (berths, biggest first), heads (heads, biggest first).
textNoWords in its name or model, e.g. a builder or a model name.
limitNoRows per page: at most 10 when browsing, 20 once the person is signed in.
partyNoHow many people.
placeNoWhere, in words or as a place id: a region, country or area, and everything in it, e.g. Mediterranean, Worldwide, Caribbean, North America, Greece, Croatia, Italy, France, Turkey, British Virgin Islands, Spain, Netherlands, Germany, Seychelles, Ireland, Martinique, United Kingdom, Poland, Belgium, Ecuador, Sweden, Portugal, St. Martin, Bahamas, Malta, Canada, French Polynesia, Montenegro, St. Lucia, Thailand, Slovenia, Guadeloupe, Norway, Brazil, Hungary, Belize, Grenada, St. Vincent, Cuba, Panama, Maldives, Mexico, India, United Arab Emirates, Antigua and Barbuda, Tanzania, Cape Verde, Egypt, Mauritius, New Zealand, USA, Switzerland. An unknown place is refused; nothing there answers the nearest place around it.
cursorNoThe cursor a previous answer returned, for its next page.
headsMaxNoHeads at most (on this site 0 to 23).
headsMinNoHeads at least (on this site 0 to 23).
priceMaxNoThe most to pay, in the site currency: the price plus the mandatory extras.
priceMinNoThe least to pay, in the site currency: the price plus the mandatory extras.
berthsMaxNoBerths at most (on this site 0 to 80).
berthsMinNoBerths at least (on this site 0 to 80).
cabinsMaxNoCabins at most (on this site 0 to 20).
cabinsMinNoCabins at least (on this site 0 to 20).
lengthMaxNoLength at most ft (on this site 13.35 to 180.45).
lengthMinNoLength at least ft (on this site 13.35 to 180.45).
yacht_typesNoYacht Types: any of these value ids (one or more): catamarans (Catamarans, 2874); gulets (Gulets, 143); houseboats (Houseboats, 1363); motorboats (Motorboats, 703); sailboats (Sailboats, 4147).
discountOnlyNotrue: only those with a discount the source states.
charter_typesNoCharter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 47); bareboat (Bareboat, 7883); cabin-charter (Cabin charter, 96); crewed (Crewed, 1326); day-charter (Day charter, 221); flotilla (Flotilla, 225); regatta (Regatta, 34); skippered (Skippered, 274).

Output Schema

NameRequiredDescriptionDefault
nextNoWhen browsing: how to get a quote or more rows.
itemsYesOne page of matches.
totalYesHow many rows match in all.
cursorNoPass as cursor for the next page; null on the last.
checkedNotrue: dates were given, so every row is free for them.
nearestNoOnly when nothing matched exactly: these rows are the nearest match.
browsingNotrue: answered without sign-in, so fewer rows and the first pages only.
checkedAtNoWhen the source was read, ISO time.
uncheckedNoWhat was said but could not be checked.
notAppliedNoWhat the person asked for that could not narrow the search.
leftOutUnpricedNoMatches left out under priceMin / priceMax because no price is known.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / charter_types / description
      Previous value: -"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 47); bareboat (Bareboat, 7884); cabin-charter (Cabin charter, 97); crewed (Crewed, 1327); day-charter (Day charter, 221); flotilla (Flotilla, 225); regatta (Regatta, 34); skippered (Skippered, 274)."New value: +"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 47); bareboat (Bareboat, 7883); cabin-charter (Cabin charter, 96); crewed (Crewed, 1326); day-charter (Day charter, 221); flotilla (Flotilla, 225); regatta (Regatta, 34); skippered (Skippered, 274)."
    • changedInput schema / properties / yacht_types / description
      Previous value: -"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 2875); gulets (Gulets, 143); houseboats (Houseboats, 1363); motorboats (Motorboats, 703); sailboats (Sailboats, 4147)."New value: +"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 2874); gulets (Gulets, 143); houseboats (Houseboats, 1363); motorboats (Motorboats, 703); sailboats (Sailboats, 4147)."
  2. Changed23 schema fields changed
    • removedInput schema / properties / beamMax
      Removed value: -{
      -  "description": "Beam at most m (on this site 0.9 to 44).",
      -  "type": "number"
      -}
    • removedInput schema / properties / beamMin
      Removed value: -{
      -  "description": "Beam at least m (on this site 0.9 to 44).",
      -  "type": "number"
      -}
    • changedInput schema / properties / charter_types / description
      Previous value: -"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 68); bareboat (Bareboat, 8796); cabin-charter (Cabin charter, 152); crewed (Crewed, 1702); day-charter (Day charter, 374); flotilla (Flotilla, 257); regatta (Regatta, 34); skippered (Skippered, 245)."New value: +"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 47); bareboat (Bareboat, 7884); cabin-charter (Cabin charter, 97); crewed (Crewed, 1327); day-charter (Day charter, 221); flotilla (Flotilla, 225); regatta (Regatta, 34); skippered (Skippered, 274)."
    • removedInput schema / properties / draftMax
      Removed value: -{
      -  "description": "Draft at most m (on this site 0.3 to 7985).",
      -  "type": "number"
      -}
    • removedInput schema / properties / draftMin
      Removed value: -{
      -  "description": "Draft at least m (on this site 0.3 to 7985).",
      -  "type": "number"
      -}
    • removedInput schema / properties / email
      Removed value: -{
      -  "description": "Optional: the person's own email, as they gave it, for more rows a call. Leave out to browse; the site keeps it to answer their enquiry.",
      -  "type": "string"
      -}
    • removedInput schema / properties / fuelMax
      Removed value: -{
      -  "description": "Fuel tank at most l (on this site 1 to 65000).",
      -  "type": "number"
      -}
    • removedInput schema / properties / fuelMin
      Removed value: -{
      -  "description": "Fuel tank at least l (on this site 1 to 65000).",
      -  "type": "number"
      -}
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page: at most 10 when browsing, 20 with the person's email or phone."New value: +"Rows per page: at most 10 when browsing, 20 once the person is signed in."
    • removedInput schema / properties / name
      Removed value: -{
      -  "description": "Optional: the person's name, as they gave it.",
      -  "type": "string"
      -}
    • removedInput schema / properties / phone
      Removed value: -{
      -  "description": "Optional: the person's own phone, international form (+ and country code), as they gave it, for more rows a call. Leave out to browse.",
      -  "type": "string"
      -}
    • changedInput schema / properties / place / description
      Previous value: -"Where, in words or as a place id: a region, country or area, and everything in it, e.g. Mediterranean, Worldwide, Caribbean, North America, Greece, Croatia, Italy, France, Turkey, Spain, British Virgin Islands, Netherlands, Germany, Seychelles, Poland, Ireland, Martinique, United Kingdom, Belgium, Portugal, Ecuador, French Polynesia, Sweden, St. Martin, Bahamas, Malta, Montenegro, Thailand, Canada, St. Lucia, Slovenia, Norway, Guadeloupe, Brazil, Hungary, Grenada, St. Vincent, Belize, Cuba, Maldives, Mexico, Panama, Cape Verde, United Arab Emirates, Antigua and Barbuda, India, Tanzania, Egypt, Monaco, Estonia, Mauritius, New Zealand, USA, Switzerland, Fiji. An unknown place is refused; nothing there answers the nearest place around it."New value: +"Where, in words or as a place id: a region, country or area, and everything in it, e.g. Mediterranean, Worldwide, Caribbean, North America, Greece, Croatia, Italy, France, Turkey, British Virgin Islands, Spain, Netherlands, Germany, Seychelles, Ireland, Martinique, United Kingdom, Poland, Belgium, Ecuador, Sweden, Portugal, St. Martin, Bahamas, Malta, Canada, French Polynesia, Montenegro, St. Lucia, Thailand, Slovenia, Guadeloupe, Norway, Brazil, Hungary, Belize, Grenada, St. Vincent, Cuba, Panama, Maldives, Mexico, India, United Arab Emirates, Antigua and Barbuda, Tanzania, Cape Verde, Egypt, Mauritius, New Zealand, USA, Switzerland. An unknown place is refused; nothing there answers the nearest place around it."
    • removedInput schema / properties / session
      Removed value: -{
      -  "description": "The session an earlier answer returned. Pass it instead of email or phone from then on.",
      -  "type": "string"
      -}
    • changedInput schema / properties / sort / description
      Previous value: -"price (default, cheapest first), discount (biggest first), or length (length, biggest first), cabins (cabins, biggest first), berths (berths, biggest first), heads (heads, biggest first), beam (beam, biggest first), draft (draft, biggest first), year (year, biggest first), fuel (fuel tank, biggest first), water (water tank, biggest first)."New value: +"price (default, cheapest first), discount (biggest first), or length (length, biggest first), cabins (cabins, biggest first), berths (berths, biggest first), heads (heads, biggest first)."
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "price",
      -  "discount",
      -  "length",
      -  "cabins",
      -  "berths",
      -  "heads",
      -  "beam",
      -  "draft",
      -  "year",
      -  "fuel",
      -  "water"
      -]New value: +[
      +  "price",
      +  "discount",
      +  "length",
      +  "cabins",
      +  "berths",
      +  "heads"
      +]
    • removedInput schema / properties / waterMax
      Removed value: -{
      -  "description": "Water tank at most l (on this site 1 to 60000).",
      -  "type": "number"
      -}
    • removedInput schema / properties / waterMin
      Removed value: -{
      -  "description": "Water tank at least l (on this site 1 to 60000).",
      -  "type": "number"
      -}
    • changedInput schema / properties / yacht_types / description
      Previous value: -"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 3192); gulets (Gulets, 201); houseboats (Houseboats, 1428); motorboats (Motorboats, 1080); sailboats (Sailboats, 4577)."New value: +"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 2875); gulets (Gulets, 143); houseboats (Houseboats, 1363); motorboats (Motorboats, 703); sailboats (Sailboats, 4147)."
    • removedInput schema / properties / yearMax
      Removed value: -{
      -  "description": "Year at most (on this site 0 to 2028).",
      -  "type": "number"
      -}
    • removedInput schema / properties / yearMin
      Removed value: -{
      -  "description": "Year at least (on this site 0 to 2028).",
      -  "type": "number"
      -}
    • changedOutput schema / properties / browsing / description
      Previous value: -"true: answered without a contact, so fewer rows and the first pages only."New value: +"true: answered without sign-in, so fewer rows and the first pages only."
    • removedOutput schema / properties / session
      Removed value: -{
      -  "description": "Only on the call that created the contact: pass it from then on.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / sessionExpiresAt
      Removed value: -{
      -  "description": "When that session stops working, ISO time.",
      -  "type": "string"
      -}
  3. Changed2 schema fields changed
    • changedInput schema / properties / charter_types / description
      Previous value: -"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 68); bareboat (Bareboat, 8795); cabin-charter (Cabin charter, 152); crewed (Crewed, 1702); day-charter (Day charter, 374); flotilla (Flotilla, 257); regatta (Regatta, 34); skippered (Skippered, 245)."New value: +"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 68); bareboat (Bareboat, 8796); cabin-charter (Cabin charter, 152); crewed (Crewed, 1702); day-charter (Day charter, 374); flotilla (Flotilla, 257); regatta (Regatta, 34); skippered (Skippered, 245)."
    • changedInput schema / properties / yacht_types / description
      Previous value: -"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 3192); gulets (Gulets, 201); houseboats (Houseboats, 1428); motorboats (Motorboats, 1080); sailboats (Sailboats, 4576)."New value: +"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 3192); gulets (Gulets, 201); houseboats (Houseboats, 1428); motorboats (Motorboats, 1080); sailboats (Sailboats, 4577)."
  4. Changed3 schema fields changed
    • changedInput schema / properties / charter_types / description
      Previous value: -"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 68); bareboat (Bareboat, 8803); cabin-charter (Cabin charter, 152); crewed (Crewed, 1703); day-charter (Day charter, 374); flotilla (Flotilla, 264); regatta (Regatta, 34); skippered (Skippered, 245)."New value: +"Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 68); bareboat (Bareboat, 8795); cabin-charter (Cabin charter, 152); crewed (Crewed, 1702); day-charter (Day charter, 374); flotilla (Flotilla, 257); regatta (Regatta, 34); skippered (Skippered, 245)."
    • changedInput schema / properties / place / description
      Previous value: -"Where, in words or as a place id: a region, country or area, and everything in it, e.g. Mediterranean, Worldwide, Caribbean, North America, Greece, Croatia, Italy, France, Turkey, Spain, British Virgin Islands, Netherlands, Germany, Seychelles, Poland, Ireland, Martinique, United Kingdom, Belgium, Portugal, Ecuador, French Polynesia, Sweden, St. Martin, Bahamas, Malta, Montenegro, Thailand, St. Lucia, Canada, Slovenia, Norway, Guadeloupe, Brazil, Grenada, Hungary, St. Vincent, Belize, Cuba, Maldives, Mexico, Panama, Cape Verde, United Arab Emirates, Antigua and Barbuda, India, Tanzania, Egypt, Monaco, Estonia, Mauritius, New Zealand, USA, Switzerland, Fiji. An unknown place is refused; nothing there answers the nearest place around it."New value: +"Where, in words or as a place id: a region, country or area, and everything in it, e.g. Mediterranean, Worldwide, Caribbean, North America, Greece, Croatia, Italy, France, Turkey, Spain, British Virgin Islands, Netherlands, Germany, Seychelles, Poland, Ireland, Martinique, United Kingdom, Belgium, Portugal, Ecuador, French Polynesia, Sweden, St. Martin, Bahamas, Malta, Montenegro, Thailand, Canada, St. Lucia, Slovenia, Norway, Guadeloupe, Brazil, Hungary, Grenada, St. Vincent, Belize, Cuba, Maldives, Mexico, Panama, Cape Verde, United Arab Emirates, Antigua and Barbuda, India, Tanzania, Egypt, Monaco, Estonia, Mauritius, New Zealand, USA, Switzerland, Fiji. An unknown place is refused; nothing there answers the nearest place around it."
    • changedInput schema / properties / yacht_types / description
      Previous value: -"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 3191); gulets (Gulets, 201); houseboats (Houseboats, 277); motorboats (Motorboats, 2231); sailboats (Sailboats, 4585)."New value: +"Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 3192); gulets (Gulets, 201); houseboats (Houseboats, 1428); motorboats (Motorboats, 1080); sailboats (Sailboats, 4576)."
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint true, destructiveHint false, openWorldHint false), and the description still adds substantial behavior: with dates each row is free for the stay and carries price, list price, discount and checkedAt; without dates each row has a from-price; rows link to site pages with a photo; results are paged with total and cursor. It also discloses the degraded-match contract (notApplied, nearest) that annotations say nothing about.

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 trigger, then output semantics, then fallback behavior, then sibling routing — a sensible order with almost no filler. It is dense and slightly run-on (several clauses chained with semicolons), which costs a point against the cleanest examples, but no sentence is expendable.

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?

For a 22-parameter, zero-required search tool with an output schema, everything an agent needs is present: when to invoke, how filters compose, what rows contain in both date modes, how pagination and degraded matches are signaled, and where to go next. Return values needn't be spelled out further given the output schema exists.

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; the description earns above that by adding cross-parameter meaning the schema cannot express: list values are OR'd within a filter but every filter is AND'd, and from/to should be sent only for exact days. It also clarifies that priceMin/priceMax include mandatory extras, though that point is duplicated in the schema text.

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

Purpose5/5

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

The description opens with a concrete trigger ('when the person describes the yachts they want') and enumerates the resources it matches on (where, when, party, size, type, budget). It clearly distinguishes itself from the sibling tools it names (best_deals, price_range, get_yacht), so an agent can route 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 Guidelines5/5

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

It gives explicit routing: search here for described wishes, call best_deals for deals/last-minute, price_range for pre-date cost, and get_yacht once one is named or picked. The 'when nothing matches exactly' branch tells the agent how to behave with the widened result rather than calling something else.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources