Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

The Charter Desk

REMOTE · THECHARTERDESK.COM

Live prices, free weeks and deals on 9,000+ charter yachts from 800+ operators in 50 countries.

67 Trust /100

Last scanned (5 hours ago)

Scores higher than 53% of remote servers

Reachable. Last reached 5 Nov 2026.

Category E-commerce

Recent critical change

Authorization (2 Nov 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability71
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3068 tokens (~438/item across 7 items; 5 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
  • Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 5 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities73
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
  • Supports UI / widget rendering.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 0
    • “best_deals” reworded the description of “charter_types” cosmetic
    • “best_deals” reworded the description of “place” cosmetic
    • “best_deals” reworded the description of “yacht_types” cosmetic
    • “search_yachts” reworded the description of “charter_types” cosmetic
    • “search_yachts” reworded the description of “place” cosmetic
    • “search_yachts” reworded the description of “yacht_types” cosmetic

    6 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 4 Nov 26 +1
    • “best_deals” reworded the description of “charter_types” cosmetic
    • “best_deals” reworded the description of “yacht_types” cosmetic
    • “price_range” reworded the description of “place” cosmetic
    • “search_yachts” reworded the description of “charter_types” cosmetic
    • “search_yachts” reworded the description of “yacht_types” cosmetic

    5 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 3 Nov 26 +1
    • Schema quality: 504 → 438 ▲ functional
    • First check of Capabilities: pass functional
    • New resource “answer-card” functional
    • “best_deals” reworded the description of “charter_types” cosmetic
    • “best_deals” reworded the description of “place” cosmetic
    • “best_deals” reworded the description of “yacht_types” cosmetic
    • “search_yachts” reworded the description of “charter_types” cosmetic
    • “search_yachts” reworded the description of “place” cosmetic
    • “search_yachts” reworded the description of “yacht_types” cosmetic
  • 2 Nov 26 −6
    • Authorization: partial → fail ▼ critical
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “request_quote” rewrote its description, which is the text the model reads security
    • Tool “best_deals” rewrote its description, which is the text the model reads security
    • Tool “get_yacht” rewrote its description, which is the text the model reads security
    • Tool “price_range” rewrote its description, which is the text the model reads security
    • Tool “search_yachts” rewrote its description, which is the text the model reads security
    • Tool “request_quote” is now declared destructive security
    • Schema quality: 627 → 504 ▲ functional
    • “best_deals” reworded the description of “limit” cosmetic
    • “best_deals” reworded the description of “place” cosmetic
    • “best_deals” reworded the description of “sort” cosmetic
    • “get_yacht” reworded the description of “limit” cosmetic
    • “request_quote” reworded the description of “session” cosmetic
    • “search_yachts” reworded the description of “limit” cosmetic
    • “search_yachts” reworded the description of “place” cosmetic
    • “search_yachts” reworded the description of “sort” cosmetic
    • “best_deals” reworded the description of “charter_types” cosmetic
    • “best_deals” reworded the description of “yacht_types” cosmetic
    • “price_range” reworded the description of “place” cosmetic
    • “price_range” reworded the description of “type” cosmetic
    • “search_yachts” reworded the description of “charter_types” cosmetic
    • “search_yachts” reworded the description of “yacht_types” cosmetic
    • “best_deals” dropped the optional parameter “beamMax” cosmetic
    • “best_deals” dropped the optional parameter “beamMin” cosmetic
    • “best_deals” dropped the optional parameter “draftMax” cosmetic
    • “best_deals” dropped the optional parameter “draftMin” cosmetic
    • “best_deals” dropped the optional parameter “email” cosmetic
    • “best_deals” dropped the optional parameter “fuelMax” cosmetic
    • “best_deals” dropped the optional parameter “fuelMin” cosmetic
    • “best_deals” dropped the optional parameter “name” cosmetic
    • “best_deals” dropped the optional parameter “phone” cosmetic
    • “best_deals” dropped the optional parameter “session” cosmetic
    • “best_deals” dropped the optional parameter “waterMax” cosmetic
    • “best_deals” dropped the optional parameter “waterMin” cosmetic
    • “best_deals” dropped the optional parameter “yearMax” cosmetic
    • “best_deals” dropped the optional parameter “yearMin” cosmetic
    • “get_yacht” dropped the optional parameter “email” cosmetic
    • “get_yacht” dropped the optional parameter “name” cosmetic
    • “get_yacht” dropped the optional parameter “phone” cosmetic
    • “get_yacht” dropped the optional parameter “session” cosmetic
    • “price_range” dropped the optional parameter “email” cosmetic
    • “price_range” dropped the optional parameter “name” cosmetic
    • “price_range” dropped the optional parameter “phone” cosmetic
    • “price_range” dropped the optional parameter “session” cosmetic
    • “search_yachts” dropped the optional parameter “beamMax” cosmetic
    • “search_yachts” dropped the optional parameter “beamMin” cosmetic
    • “search_yachts” dropped the optional parameter “draftMax” cosmetic
    • “search_yachts” dropped the optional parameter “draftMin” cosmetic
    • “search_yachts” dropped the optional parameter “email” cosmetic
    • “search_yachts” dropped the optional parameter “fuelMax” cosmetic
    • “search_yachts” dropped the optional parameter “fuelMin” cosmetic
    • “search_yachts” dropped the optional parameter “name” cosmetic
    • “search_yachts” dropped the optional parameter “phone” cosmetic
    • “search_yachts” dropped the optional parameter “session” cosmetic
    • “search_yachts” dropped the optional parameter “waterMax” cosmetic
    • “search_yachts” dropped the optional parameter “waterMin” cosmetic
    • “search_yachts” dropped the optional parameter “yearMax” cosmetic
    • “search_yachts” dropped the optional parameter “yearMin” cosmetic
  • 1 Nov 26 0
    • Stability: unverified → 0.03 ▲ functional
    • “best_deals” reworded the description of “charter_types” cosmetic
    • “best_deals” reworded the description of “yacht_types” cosmetic
    • “search_yachts” reworded the description of “charter_types” cosmetic
    • “search_yachts” reworded the description of “yacht_types” cosmetic
  • 31 Oct 26 71

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://thecharterdesk.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=thecharterdesk.com CN=YE2,O=Let's Encrypt,C=US 1 Nov 2026 30 Jan 2027 ECDSA 256 ECDSA-SHA384 6473f4f75f2d31d2f87e68733124543a23f
SANs: thecharterdesk.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of thecharterdesk.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
thecharterdesk.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy default-src 'none'; frame-ancestors 'none'
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(self), microphone=(self), geolocation=(), interest-cohort=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://thecharterdesk.com/mcp Verified 200
http (plaintext) http://thecharterdesk.com/mcp HTTPS enforced 308 https://thecharterdesk.com/mcp
MCP tools · 5 exposed · ~2,707 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
best_deals ~930

Use it when the person asks for deals, specials, discounts or last-minute offers. It answers discounted departures of this site's yachts, read from the live inventory: only a discount the source itself states (a special, or a price under its list price), never a computed gap; by default from tomorrow to 30 days ahead, leaving out a departure the yacht's calendar shows taken. One row per yacht: its page link (the id get_yacht and request_quote take), a photo and its departures, each with its dates, every route it leaves on, nights, price, list price, mandatory extras and saving, in the order asked. Narrow with the same typed filters as search_yachts. When none match, the rows are the nearest deals and nearest says what was widened. Paged: total and cursor. For given days whatever the price, call search_yachts.

NameTypeReqDescription
basestring–The exact base it leaves from, in words.
berthsMaxnumber–Berths at most (on this site 0 to 80).
berthsMinnumber–Berths at least (on this site 0 to 80).
cabinsMaxnumber–Cabins at most (on this site 0 to 20).
cabinsMinnumber–Cabins at least (on this site 0 to 20).
charter_typesarray–Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 47); bareboat (Bareboat, 7891); cabin-charter (Cabin charter, 98); crewed (Crewed, 1333); day-charter (Day charter,…
cursorstring–The cursor a previous answer returned, for its next page.
fromstring–Earliest departure, YYYY-MM-DD.
headsMaxnumber–Heads at most (on this site 0 to 23).
headsMinnumber–Heads at least (on this site 0 to 23).
lengthMaxnumber–Length at most ft (on this site 13.35 to 180.45).
lengthMinnumber–Length at least ft (on this site 13.35 to 180.45).
limitnumber–Rows per page: at most 10 when browsing, 20 once the person is signed in.
partynumber–How many people.
placestring–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 Isla…
priceMaxnumber–The most to pay, in the site currency: the price plus the mandatory extras.
priceMinnumber–The least to pay, in the site currency: the price plus the mandatory extras.
sortstring–saving (default, biggest first), departure (soonest first), price (cheapest first), or length (length, biggest first), cabins (cabins, biggest first), berths (berths, biggest first), heads (heads, bi…
textstring–Words in its name or model, e.g. a builder or a model name.
tostring–Latest departure, YYYY-MM-DD.
yacht_typesarray–Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 2886); gulets (Gulets, 143); houseboats (Houseboats, 1362); motorboats (Motorboats, 699); sailboats (Sailboats, 4161).
NameTypeReqDescription
browsingboolean–true: answered without sign-in, so fewer rows and the first pages only.
checkedAtstring|null–When the offers were read, ISO time.
cursorstring|null–Pass as cursor for the next page; null on the last.
fromstring–The window's first day.
nearestobject–Only when nothing matched exactly: these rows are the nearest match.
nextstring–When browsing: how to get a quote or more rows.
notAppliedarray–What could not narrow the deals.
rowsarrayyesOne page of deals, one row per item with its departures.
throughstring–Its last day.
totalnumberyesHow many rows match in all.

No examples provided.

get_yacht ~258

Use it once the person names or picks one yacht from a search_yachts or best_deals answer: pass its page link, exactly as that answer returned it, as id. It answers the yacht's facts and terms as the source states them (packages, included, required and optional extras, deposit, check-in days and times, stay limits, equipment, the operator's descriptions) and its availability: with from / to, that stay's status and price and, when it is not free, the nearest free stays; without dates, its free stays, soonest first. A field left out is one the source does not state. To compare several, call search_yachts.

NameTypeReqDescription
cursorstring–The cursor a previous answer returned, for its next page.
fromstring–Check-in day, YYYY-MM-DD.
idstringyesThe yacht's page link (an absolute URL on this site), exactly as a search or best_deals returned it.
limitnumber–Rows per page: at most 10 when browsing, 20 once the person is signed in.
partynumber–How many people.
tostring–Check-out day, YYYY-MM-DD.
NameTypeReqDescription
availabilityobject–With dates: that stay and, when not free, the nearest free stays; without: its free stays, soonest first.
browsingboolean–true: answered without sign-in, so fewer rows and the first pages only.
checkedAtstring|null–When the source was read, ISO time.
descriptionstring–Its description.
equipmentarray–Named equipment in groups.
factsarray–The facts its page shows, labelled.
hrefstringyesIts page on this site, absolute URL.
itemstringyesIts name.
kindstring–Its type.
nextstring–When browsing: how to get a quote or more rows.
operatorDescriptionsarray–The operator's own texts and documents.
packagesarray–The ways it is sold, the default first, each with its included, required and optional extras.
placestring–Where it is.
termsobject–Deposit, licence, stay limits, check-in days and times, as stated.

No examples provided.

price_range ~216

Use it when the person asks what a stay costs and has no exact days or yacht yet. Pass the place they named (in words, or a place value an invalid_place answer listed), the month and the party, and one type if they gave it. It answers the range of open departures there (p25, median and p75, in minor units of the currency), how many items it is from, the cheapest published one that fits and when the figures were built; seasonNote says in words how another month compares. An unknown place answers with the places that have figures. For yachts free on their days, call search_yachts.

NameTypeReqDescription
monthstringyesYYYY-MM.
partynumberyesHow many people.
placestringyesWhere, in words (a region, a country or an area inside one), or a place value as an unknown_place answer lists them.
typestring–Optional: one Yacht Types value id, the same ids yacht_types takes. Leave out for any.
NameTypeReqDescription
browsingboolean–true: answered without sign-in, so fewer rows and the first pages only.
cheapestobject|null–The cheapest published item that fits.
currencystringyesISO 4217.
extrasMedianMinornumber|null–The usual mandatory extras, minor units.
itemsnumberyesHow many items the figures are from.
lastMinuteSharePctnumber|null–Share of soon departures discounted.
monthstring–The month the figures are for, YYYY-MM.
nextstring–When browsing: how to get a quote or more rows.
noneFitPartyboolean–true: no item there takes the party.
placestring–The place answered, in the site's words (e.g. Italy).
placeIdstring–That place's value (e.g. country:italy), to pass back as place.
rangeobject|null–p25, p50 (median), p75 in minor units of the currency (e.g. cents); null when too few items.
seasonHintobject|null–Another month against this one: pct cheaper there (negative: dearer).
seasonNotestring–The season hint in words, to tell the person.
thinboolean–true: few items, a rough figure.

No examples provided.

request_quote ~337

Use it only after the person chose one or more yachts from a search_yachts, best_deals or get_yacht answer, gave their days and party, and said yes to a written quote: ask them before you call it. Pass the page links exactly as those answers returned them, the days, the party and anything they want the desk to know, in their words. The desk sends a formal quote in writing, with every cost on it, to the person's own email or phone; this answer only says it was received and where the quote goes. Nothing is booked or paid: the person confirms the booking with the desk.

NameTypeReqDescription
emailstring–The person's own email, as they gave it: the quote is sent there. This, phone or session is needed.
fromstring–Check-in day, YYYY-MM-DD.
itemsarrayyesThe yacht page links to quote (absolute URLs on this site), exactly as a search, best_deals or get returned them. At most 20.
namestring–Optional: the person's name, as they gave it.
notesstring–What the person wants the desk to know, in their words (at most 2000 characters).
partynumber–How many people.
phonestring–The person's own phone, international form (+ and country code), as they gave it. This, email or session is needed.
sessionstring–The session an earlier request_quote answer returned. Pass it instead of email or phone.
tostring–Check-out day, YYYY-MM-DD.
NameTypeReqDescription
enquiryRefstring–The request's reference, returned once.
nextStepstringyesWhere the written quote goes, in words to tell the person.
sessionstring–Only on the call that created the contact: pass it from then on.
sessionExpiresAtstring–When that session stops working, ISO time.
statusstringyesreceived: the desk has the request; already_received: this session asked the same in the last day.

No examples provided.

search_yachts ~966

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.

NameTypeReqDescription
basestring–The exact base it leaves from, in words.
berthsMaxnumber–Berths at most (on this site 0 to 80).
berthsMinnumber–Berths at least (on this site 0 to 80).
cabinsMaxnumber–Cabins at most (on this site 0 to 20).
cabinsMinnumber–Cabins at least (on this site 0 to 20).
charter_typesarray–Charter Types: any of these value ids (one or more): all-inclusive (All-inclusive, 47); bareboat (Bareboat, 7891); cabin-charter (Cabin charter, 98); crewed (Crewed, 1333); day-charter (Day charter,…
cursorstring–The cursor a previous answer returned, for its next page.
discountOnlyboolean–true: only those with a discount the source states.
fromstring–Check-in day, YYYY-MM-DD.
headsMaxnumber–Heads at most (on this site 0 to 23).
headsMinnumber–Heads at least (on this site 0 to 23).
lengthMaxnumber–Length at most ft (on this site 13.35 to 180.45).
lengthMinnumber–Length at least ft (on this site 13.35 to 180.45).
limitnumber–Rows per page: at most 10 when browsing, 20 once the person is signed in.
partynumber–How many people.
placestring–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 Isla…
priceMaxnumber–The most to pay, in the site currency: the price plus the mandatory extras.
priceMinnumber–The least to pay, in the site currency: the price plus the mandatory extras.
sortstring–price (default, cheapest first), discount (biggest first), or length (length, biggest first), cabins (cabins, biggest first), berths (berths, biggest first), heads (heads, biggest first).
textstring–Words in its name or model, e.g. a builder or a model name.
tostring–Check-out day, YYYY-MM-DD.
yacht_typesarray–Yacht Types: any of these value ids (one or more): catamarans (Catamarans, 2886); gulets (Gulets, 143); houseboats (Houseboats, 1362); motorboats (Motorboats, 699); sailboats (Sailboats, 4161).
NameTypeReqDescription
browsingboolean–true: answered without sign-in, so fewer rows and the first pages only.
checkedboolean–true: dates were given, so every row is free for them.
checkedAtstring|null–When the source was read, ISO time.
cursorstring|null–Pass as cursor for the next page; null on the last.
itemsarrayyesOne page of matches.
leftOutUnpricednumber–Matches left out under priceMin / priceMax because no price is known.
nearestobject–Only when nothing matched exactly: these rows are the nearest match.
nextstring–When browsing: how to get a quote or more rows.
notAppliedarray–What the person asked for that could not narrow the search.
totalnumberyesHow many rows match in all.
uncheckedarray–What was said but could not be checked.

No examples provided.

Install

How do I install the The Charter Desk MCP server?

The Charter Desk is a hosted endpoint at https://thecharterdesk.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · thecharterdesk.com

# add to Claude Code
claude mcp add --transport http com-thecharterdesk-yacht-charter 'https://thecharterdesk.com/mcp'
Common questions

What is the The Charter Desk MCP server?

The Charter Desk is an MCP server listed in the public MCP registry as com.thecharterdesk/yacht-charter. Live prices, free weeks and deals on 9,000+ charter yachts from 800+ operators in 50 countries. This page covers its hosted endpoint (https://thecharterdesk.com/mcp).

Is the The Charter Desk MCP server safe to use?

The Charter Desk scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the The Charter Desk MCP server expose?

The Charter Desk exposes 5 tools: search_yachts, get_yacht, price_range, best_deals, request_quote. Their descriptions and schemas cost roughly 2,707 tokens of context every time the server is loaded.

Does the The Charter Desk MCP server require authentication?

No. We connected to The Charter Desk without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the The Charter Desk MCP server still maintained?

The Charter Desk is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.