Skip to main content
Glama

Server Details

Search 14,000+ charter boats with live prices, plus marinas, anchorages, routes and itineraries.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
dkremsa/charter-boats-mcp
GitHub Stars
0

TDQS

Score is being calculated.

Available Tools

11 tools
get_boat_detailsGet Boat Details
Read-only
Inspect

Get full details of a specific boat: security deposit, cancellation policy, amenities, fees, seasonal prices, check-in/out times, location details — and the dates it is actually free (priced date ranges plus bookable slots for the year ahead). Use when the user asks about a specific boat, and whenever a boat came back in named_matches and they want to know when it IS available. With dates, stay_price states Due now, Paid at pickup and Total first, then the charter, its discounts and the deposits.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBoat id from search_boats results (including named_matches) — copy it verbatim.
guestsNoOptional: the party the stay is priced for; without it, the boat's capacity.
date_toNoOptional check-out date YYYY-MM-DD — see date_from.
date_fromNoOptional check-in date YYYY-MM-DD of the stay you are quoting. With date_to, `fees` are the ones that apply to that stay, and `url` opens the boat on those dates when they are one of `bookable_slots`. Pass both whenever you quote a price for specific dates.
get_boat_standoutsWhat Stands Out About a Boat
Read-only
Inspect

What stands out about ONE boat for one week, measured against similar boats: its pros and its cons, each with how it compares ("47.9 ft (better than 99%)", "€2000 security deposit (typical €1700)", "Rare kit: [0.8%] Cool Box" — n% of those boats have it). Use when the guest asks what is special about a boat, what the catch is, why it is cheap or dear, or how it compares with others. It measures build year, length, cabins, bathrooms, guests, the security deposit and kit — and, with date_from, check-in and check-out times, the changeover day and the open weeks left; any of those it does not list is ordinary among the boats in compared_with, so do not sell it as an edge or a catch. Other fees are not compared. Kit is measured two ways and both hold: get_boat_details gives each item its [n%] across the whole fleet, this tool what is rare among boats like it. note says whether an absence means "ordinary" or that nothing could be compared.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBoat id from search_boats or get_boat_details — copy it verbatim.
fallbackNoOptional, default true: with nothing past the cut-off on a side, name the one thing that beats (or trails) most of them. false returns only what clears the cut-off.
date_fromNoOptional check-in date YYYY-MM-DD of the week the guest is looking at: the boats are then compared on that week's prices, and its schedule and open weeks are judged. Pass it whenever the guest has dates.
compare_byNoWhich boats count as similar. price (default): the same type priced within ±5% — what else the same money buys. guests: the same type taking the same number of guests — use when the question is value for a party size ("is it cheap for 10 people?"). length: the same type within ±2.5% of its length — use when comparing boats of one size. On guests and length the all-in day rate (the figure the search card prints) is compared too.
cutoff_pctNoOptional, default 10, at most 50: a pro beats all but this share of the similar boats, a con trails all but it, rare kit is on fewer than it. Raise it for more, weaker lines.
get_location_detailsGet Marina/Location Details
Read-only
Inspect

Get full details of a marina, anchorage or bay by ID: description, amenities, contact, boat count and cheapest day rate, PLUS what only we know from tracked AIS traffic — how busy it is in each month of the year, how boats use it (share of overnight visits, typical day-stop length, what time it fills up), whether it is a hidden gem, the places boats actually sail to from there, most-travelled first with the share of the tracked trips each one takes and an estimated passage time, and the nearest bookable base for a spot with no fleet of its own. Use when the user is viewing or asks about a specific place, asks when it is quiet, or asks where to go next from one. Busyness compares a place to its own peak month, never to another place.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLocation id from search_locations results — copy it verbatim.
get_poi_detailsGet Point of Interest Details
Read-only
Inspect

Get full details of a point of interest by ID: description, opening hours, address, contact, nearby marinas, special offers. Use when user is viewing or asks about a specific POI. POIs carry NO rating or review count — do not claim one or ask the guest to check it.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPOI id from search_pois results — copy it verbatim.
get_trip_detailsGet Trip/Itinerary Details
Read-only
Inspect

Get full details of a sailing itinerary/trip by ID: day-by-day stops, distances, activities, highlights, notes. Use when user is viewing or asks about a specific trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTrip id from search_trips results — copy it verbatim.
search_boatsSearch Charter Boats
Read-only
Inspect

Search charter boats by location, name, type, dates, capacity, budget. The response total_matching is the FULL count of matching boats — results are the top limit of those, so phrase counts from it ("8 of 48 available") and re-call with a higher limit when the guest wants more.

Pass the guest's dates as they gave them. Each boat sets its own changeover day (checkinout_days) and its own minimum stay (min_charter_days), so the week a boat can actually be sold may not start on the day asked for — price_summary always names the real week, and it is the one sentence to quote, as it stands: the boat page's own Total for the stay it names, for the guests given (else the boat's max guests), all in (charter, every required fee charged now or at pickup, the 45 EUR platform fee; refundable deposits never), and the discount applied (the percent the site's card shows); a stay other than a week names its dates and length ("for Jun 19–22 (3 nights), 4 guests"); with no dates it is the boat's lowest week ("From", at max guests, precomputed). list_price holds the same figures — total (the stay's), per_day (that total per day for the boat; from when no dates were given), party (the guests it is priced for), original_per_day and discount_pct when a discount applies. For Due now, Paid at pickup and each deposit by name call get_boat_details with the dates. No total here includes an optional extra — price_summary, list_price and the total_max screen all leave out a skipper where skippered is 'optional', a hostess, a cook — so for a total with one, call get_boat_details with the dates and add the fee it lists under fees.optional; until then say the figure is without it, never a typical or estimated rate, and call no budget met or exceeded on one. When boats is short, alternatives holds the closest boats, and each one's relaxed names what it loosened: dates (the week either side), place (a nearby base), model (another model of the same make), name (a boat carrying one word of the name). Say which — they are not what was asked for, and they count toward no total. List them AFTER the matches, in their own list, under a one-line heading naming what was loosened ("Close alternatives — the week either side"): never mixed into the same list. That heading is what splits the two on every card surface, so without it an alternative is rendered exactly like a match. alternative_inventory tells you which kind of "no" you are giving: total_boats 0 means this coast does not have that boat, while total_boats high with available_nearby_or_within_7_days 0 means it is the week, not the place. If a plain marina search has neither matches nor alternatives, listed_unavailable may carry published boats visibly listed at that exact marina. They are not bookable results: quote no price, explain the supplied reason, and offer an availability alert. A search with NO dates and NO price cap lists every published boat that matches, so boats can end with entries we hold no prices for: from unpriced_start_index onward every one carries bookable_as_searched: false and a not_offered_because saying so — they count as matches, but cannot be booked or quoted, so name them, link them and offer an alert without ever stating a price.

When you searched a boat by NAME, named_matches lists published boats carrying that name that this search could not offer — wrong dates, wrong place, or no prices loaded. Everything bookable AS SEARCHED is in boats; nothing in named_matches is — though one whose only reason is the place or the dates may still be sellable, which is what its not_offered_because tells you. Never say a named boat does not exist while it is in that list: name it, give its reason, and use get_boat_details for the dates it IS free. name_not_found means the opposite and is certain — that name is in no published boat anywhere.

alert_query + alert_horizon feed availability_alert. Both are absent when this search cannot be expressed on the website (search_url_unavailable says so) — then there is no link to give and no alert to set: say so rather than linking charter.boats/search, which would show boats this answer excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order. Default: best_value (best value, available boats first). Use deals for biggest discounts first.
limitNo
cabinsNoMinimum number of guest cabins (crew cabins are not counted)
guestsNoNumber of guests
searchNoBoat NAME only ("Papillon", "Ziphius") — the name an operator gave one hull, matched as a WHOLE WORD, so send the name the guest said and not a shortening of it. NEVER a make or a model: both go in `makemodel`, a model on its own included ("Oceanis 46").
date_toNoEnd date YYYY-MM-DD
featuresNoEquipment/amenity filters — boats must have ALL listed. Namespaced slugs ("dinghy:hypalon") are subtypes that already imply the parent — do not also list the parent. Map user phrasing to slugs: "ac"/"a/c"/"air con"/"aircon"/"klima" → air_conditioning, "heater"/"cabin heating"/"webasto" → heating, "warm water"/"boiler"/"water heater" → hot_water, "genset"/"power generator" → generator, "power inverter"/"12v to 220v" → inverter, "solar power"/"solar" → solar_panels, "water maker"/"desalinator" → watermaker, "wi-fi"/"internet"/"wireless internet"/"4g" → wifi, "cockpit shower"/"outdoor shower"/"transom shower" → deck_shower, "refrigerator"/"icebox" → fridge, "ice chest"/"cool box" → cooler, "deep freeze" → freezer, "icemaker" → ice_maker, "stove"/"cooker"/"hob"/"kitchen" → oven, "micro wave" → microwave, "dish washer" → dishwasher, "washer"/"dryer"/"laundry" → washing_machine, "coffee maker"/"espresso machine"/"nespresso" → coffee_machine, "electric wc"/"electric heads" → electric_toilet, "wc"/"restroom"/"bathroom" → toilet, "television"/"screen" → tv, "speakers"/"stereo"/"music" → sound_system, "auto pilot" → autopilot, "gps"/"chart plotter"/"plotter"/"navigation" → chartplotter, "ais transponder" → ais, "bowthruster" → bow_thruster, "electric anchor winch" → electric_windlass, "tender"/"zodiac" → dinghy, "dinghy davits" → davits, "outboard motor" → outboard, "shade"/"canopy"/"sun awning" → bimini, "spray hood" → sprayhood, "teak cockpit" → teak_deck, "passerelle" → gangway, "fly bridge" → flybridge, "swim platform"/"diving platform" → bathing_platform, "hot tub"/"whirlpool"/"swimming pool" → jacuzzi, "gyro stabilizer"/"seakeeper" → stabilizers, "child safety net"/"lifeline net" → railing_net, "lazyjack"/"lazybag"/"stack pack" → lazy_bag, "code zero" → gennaker, "e-winch" → electric_winch, "snorkel"/"masks and fins" → snorkeling_gear, "scuba gear"/"dive gear" → diving_equipment, "paddleboard"/"paddle board" → sup, "canoe" → kayak, "fishing equipment"/"rods" → fishing_gear, "towables"/"wakeboard"/"water skis"/"tubes" → water_toys, "underwater scooter" → seabob, "efoil"/"electric foil"/"fliteboard"/"wing foil" → e_foil, "windsurfing"/"windsurf board" → windsurf, "bicycle"/"e-bike"/"electric bike" → bikes, "waverunner"/"pwc" → jet_ski, "barbecue"/"grill" → bbq, "hard bottom dinghy"/"rigid dinghy"/"rib tender"/"hard bottom" → dinghy:hard_bottom, "hypalon dinghy"/"hypalon tender" → dinghy:hypalon, "console dinghy"/"console tender" → dinghy:console, "large dinghy"/"big tender" → dinghy:large, "electric outboard"/"torqeedo" → outboard:electric, "15hp outboard"/"powerful outboard"/"planing outboard" → outboard:hp_15_plus, "smart tv" → tv:smart, "satellite tv"/"sat tv" → tv:satellite, "bluetooth"/"bluetooth speakers"/"bluetooth sound system" → sound_system:bluetooth, "fridge on flybridge"/"flybridge fridge" → fridge:flybridge.
locationNoDestination name (fuzzy matched)
year_minNoMinimum build year
boat_typeNo
date_fromNoStart date YYYY-MM-DD
makemodelNoMake and/or model, plain text, exactly as the guest said it: "Bali 4.2", "Fountaine Pajot", "FP 41", "Lagoon", "Oceanis 46". Make alone is fine and so is a MODEL alone. Do not split it, do not add punctuation, do not expand acronyms.
price_maxNoMax price per day for the boat in EUR, all fees in — a boat's WEEKLY list figure: a week's grand total (charter, every required fee now or at pickup, the 45 EUR platform fee, our discounts; deposits never) at max guests ÷ its days; a dated row's `list_price.per_day` is its own stay's and may differ. Use ONLY for an explicit per-day cap; for a whole-trip/weekly budget use total_max instead.
price_minNoMin price per day for the boat in EUR, all fees in — a boat's WEEKLY list figure: a week's grand total (charter, every required fee now or at pickup, the 45 EUR platform fee, our discounts; deposits never) at max guests ÷ its days. A dated row's `list_price.per_day` is its own stay's and may differ
total_maxNoMax grand total for the stay in EUR (the charter, every required fee now or at pickup and the flat 45 EUR platform fee; deposits never included): screened on the total `price_summary` states (`list_price.total`: the boat page's Total for the stay it names, for the `guests` given, else max guests); a month-wide range on `per_day` × days at max guests. Use this whenever the guest gives a total or per-week budget, e.g. "under €5000 for the week". Needs dates to apply.
length_minNoMinimum boat length in feet
search_contentSearch Sailing Knowledge Base
Read-only
Inspect

Search articles and Q&A on charter.boats. Use for questions about booking process, costs, licenses, cancellation, deposits, check-in, packing, etc. For developer questions about our API (endpoints, keys, params), use type=api to search the API docs at docs.charter.boats.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesShort keyword query (2-4 words)
typeNoboth
limitNo
search_locationsSearch Sailing Destinations
Read-only
Inspect

Find marinas, harbours and anchorages three ways: by NAME (q), by POPULARITY within an area (region/country/city — ranked on observed AIS vessel traffic for a month), or by REACH from a place you already have (from + within_nm) — where boats are actually recorded sailing to from there, with measured passage times. Use from for "where can I sail from X", "what is a day sail from X", "somewhere quieter nearby". Provide q, or an area, or from.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoName search (min 2 chars). Optional when an area filter is given.
cityNo
fromNoOrigin location id (or slug) to sail FROM — take it from an earlier search_locations or get_location_details result. Returns places boats were tracked sailing to from there.
sortNoDefault popularity = real vessel traffic for the month; boats = charter fleet size; rating = Google rating
typeNoKind of place — e.g. anchorage for "quiet bays"; spot = an unclassified stop (beach, spit, headland)
limitNo
monthNoMonth to rank popularity for (default: current month)
regionNoSailing region as the guest says it: Dalmatia, Istria, Kvarner, the Ionian, the Saronic, the Cyclades, the Dodecanese, the Sporades
countryNoCountry name or 2-letter code
within_nmNoHow far, in nautical miles, for a "from" search. Default 35. Pick the ring by time — a charter boat makes about 6 knots, plus 30 minutes to leave and arrive, so: 10nm ≈ 2.2h, 20nm ≈ 3.8h, 35nm ≈ 6.3h, 55nm ≈ 9.7h, 100nm ≈ 17.2h. A full charter day of sailing is roughly 6-8h, which makes 35nm a comfortable day sail and 55nm a long one.
search_poisFind Nearby Points of Interest
Read-only
Inspect

Find restaurants, fuel, groceries, attractions near a location, or search by POI name. POIs carry no ratings — rank and describe them by what they are and how close they are.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch POI by name
limitNo
categoryNo
locationNoLocation name (fuzzy). Required unless q is provided.
location_idNo
search_routesFind Sailing Routes
Read-only
Inspect

Find sailing passages between destinations with distance and difficulty.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch route by title
fromNoPlace the passage starts or ends at, as the guest says it ("Sivota", "Nydri, Greece", "Dalmatia"). Resolved to a real place; if it resolves to nothing you get `from_unresolved` and no passages, never passages somewhere else.
limitNo
difficultyNo
location_idNo
search_tripsFind Sailing Itineraries
Read-only
Inspect

Find existing curated sailing itineraries by location, name, duration, activities.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch itinerary by title
limitNo
locationNoPlace the itinerary passes through, as the guest says it ("Split", "Nydri, Greece", "Dalmatia", "Croatia"). Resolved to a real place; if it resolves to nothing you get `location_unresolved` and no itineraries, never itineraries somewhere else.
max_daysNo
min_daysNo
boat_typeNo
activitiesNoComma-separated activities
location_idNo

Tool Schema Changelog

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

  1. 11 tool updates
    • First observedget_boat_details
    • First observedget_boat_standouts
    • First observedget_location_details
    • First observedget_poi_details
    • First observedget_trip_details
    • First observedsearch_boats
    • First observedsearch_content
    • First observedsearch_locations
    • First observedsearch_pois
    • First observedsearch_routes
    • First observedsearch_trips

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Vacation rental software. A signed stay offer on the host's own domain. Agents discover a host domain, verify an Ed25519-signed offer (VRP), and send the guest to that domain to book and pay the host. Do not compare hosts or prices. HemmaBo + VRP, 6 runtime tools: 2 HemmaBo tools, 2 host onboarding tools, and 2 VRP verification tools. Not an OTA. Not a marketplace.
    7
    6
    145 npm
    3
    Apache 2.0
  • 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
  • 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.