Crewed yacht charter search: yachts by region, guests, budget, dates. Proposals via a DMA broker.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check live availability of one yacht for a date range. Requires a verified phone number.
Yacht id from search results
Start date, YYYY-MM-DD
End date, YYYY-MM-DD
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http esther https://mcp.dmayachting.com/mcp
Check live availability of one yacht for a date range. Requires a verified phone number.
| Argument | Type | Description |
|---|---|---|
| id* | string | Yacht id from search results |
| from* | string | Start date, YYYY-MM-DD |
| until* | string | End date, YYYY-MM-DD |
{
"type": "object",
"required": [
"id",
"from",
"until"
],
"properties": {
"id": {
"type": "string",
"description": "Yacht id from search results"
},
"from": {
"type": "string",
"description": "Start date, YYYY-MM-DD"
},
"until": {
"type": "string",
"description": "End date, YYYY-MM-DD"
}
}
}Confirm the email code the client received.
| Argument | Type | Description |
|---|---|---|
| code* | string | Code from the email |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Code from the email"
}
}
}Confirm the code the client received by text message.
| Argument | Type | Description |
|---|---|---|
| code* | string | Code from the text message |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Code from the text message"
}
}
}Erase everything stored about the client. Only call when the client explicitly asks, with confirm set to true.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true |
{
"type": "object",
"required": [
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true"
}
}
}Ask a DMA broker to prepare a proposal for the chosen yachts. The broker follows up by email. Requires a verified email.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Yacht ids the client is interested in |
| note* | string | What the client wants the broker to know: dates, preferences, questions |
{
"type": "object",
"required": [
"ids",
"note"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Yacht ids the client is interested in"
},
"note": {
"type": "string",
"description": "What the client wants the broker to know: dates, preferences, questions"
}
}
}Find charter yachts matching the client's brief. All fields are optional; pass what the client has told you. Returns up to a handful of boats with indicative weekly prices. The first search is free; further searches need a verified email (4 per day) or phone (10 per day).
| Argument | Type | Description |
|---|---|---|
| text | string | Any other free-text wishes |
| toys | array | Must-have water toys and amenities, e.g. jacuzzi, seabob |
| type | string | Yacht style |
| dates | object | Charter dates |
| cabins | integer | Minimum number of cabins |
| crewed | string | Crewed charter or bareboat |
| guests | integer | Number of guests |
| region | string | Cruising area or destination, e.g. Greece, Croatia, BVI, Caribbean |
| currency | string | Currency of the budget |
| year_min | integer | Oldest acceptable build or refit year |
Send a 6-digit code to the client's email address. Verifying an email raises the daily search limit to 4.
| Argument | Type | Description |
|---|---|---|
| email* | string | Client email address |
{
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"description": "Client email address"
}
}
}Send a code by text message to the client's phone. Requires a verified email first. Raises the daily search limit to 10 and enables live availability.
| Argument | Type | Description |
|---|---|---|
| phone* | string | Phone number in E.164 format, e.g. +14155550123 |
{
"type": "object",
"required": [
"phone"
],
"properties": {
"phone": {
"type": "string",
"description": "Phone number in E.164 format, e.g. +14155550123"
}
}
}Full details for one yacht from a previous search: more photos, description, highlights and toys.
| Argument | Type | Description |
|---|---|---|
| id* | string | Yacht id from search results (e_ followed by 12 hex characters) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Yacht id from search results (e_ followed by 12 hex characters)"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| length_max_m | number | Maximum length in metres |
| length_min_m | number | Minimum length in metres |
| budget_max_week | integer | Maximum budget per week |
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Any other free-text wishes"
},
"toys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Must-have water toys and amenities, e.g. jacuzzi, seabob"
},
"type": {
"enum": [
"motor",
"sail",
"catamaran",
"gulet",
"any"
],
"type": "string",
"description": "Yacht style"
},
"dates": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Start date, YYYY-MM-DD"
},
"until": {
"type": "string",
"description": "End date, YYYY-MM-DD"
}
},
"description": "Charter dates"
},
"cabins": {
"type": "integer",
"description": "Minimum number of cabins"
},
"crewed": {
"enum": [
"crewed",
"bareboat",
"any"
],
"type": "string",
"description": "Crewed charter or bareboat"
},
"guests": {
"type": "integer",
"description": "Number of guests"
},
"region": {
"type": "string",
"description": "Cruising area or destination, e.g. Greece, Croatia, BVI, Caribbean"
},
"currency": {
"enum": [
"EUR",
"USD"
],
"type": "string",
"description": "Currency of the budget"
},
"year_min": {
"type": "integer",
"description": "Oldest acceptable build or refit year"
},
"length_max_m": {
"type": "number",
"description": "Maximum length in metres"
},
"length_min_m": {
"type": "number",
"description": "Minimum length in metres"
},
"budget_max_week": {
"type": "integer",
"description": "Maximum budget per week"
}
}
}