Private trips in Vietnam, Thailand and Cambodia by Maya Dalal: products, seasons, prices, places.
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.
Maya's own month-by-month guide (recommended / possible with caveats / not recommended) for destinations in Vietnam, Thailand, Cambodia, Laos, South Korea and Singapore. Give a destination, a month, or both.
Month name or number 1 to 12.
City, region or country, in English, for example "Sapa", "Hoi An", "Gulf of Thailand", "Vietnam".
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http trip-planning https://app.mydailyjourneys.com/api/mcp
Maya's own month-by-month guide (recommended / possible with caveats / not recommended) for destinations in Vietnam, Thailand, Cambodia, Laos, South Korea and Singapore. Give a destination, a month, or both.
| Argument | Type | Description |
|---|---|---|
| month | string | Month name or number 1 to 12. |
| destination | string | City, region or country, in English, for example "Sapa", "Hoi An", "Gulf of Thailand", "Vietnam". |
{
"type": "object",
"properties": {
"month": {
"type": "string",
"description": "Month name or number 1 to 12."
},
"destination": {
"type": "string",
"description": "City, region or country, in English, for example \"Sapa\", \"Hoi An\", \"Gulf of Thailand\", \"Vietnam\"."
}
},
"additionalProperties": false
}Creates an AP2-style CartMandate for one fixed-price product, signed by MDJ (ES256 JWS, public key at https://app.mydailyjourneys.com/.well-known/mdj-ap2-jwks.json). Valid for 30 minutes. Payment is completed on the normal store checkout page in checkout_url, never through this server. Ground services cannot be put in a cart.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | An id from list_products. |
| variant_id | string | Required for products with variants (custom-trip-itinerary-planning). |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "An id from list_products."
},
"variant_id": {
"type": "string",
"description": "Required for products with variants (custom-trip-itinerary-planning)."
}
},
"additionalProperties": false
}A price range for a fully planned and booked MDJ trip, from the ranges MDJ publishes (per person per day, by hotel level, for a couple, everything included except international flights). The final price always comes from a supplier quote for the specific trip.
| Argument | Type | Description |
|---|---|---|
| days* | integer | |
| travelers* | integer | |
| destination | string | Country: Vietnam, Thailand or Cambodia. |
| hotel_level | string | Optional. Without it, all 3 levels are returned. |
{
"type": "object",
"required": [
"days",
"travelers"
],
"properties": {
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1
},
"travelers": {
"type": "integer",
"maximum": 30,
"minimum": 1
},
"destination": {
"type": "string",
"description": "Country: Vietnam, Thailand or Cambodia."
},
"hotel_level": {
"enum": [
"4-star",
"5-star",
"5-star-premium"
],
"type": "string",
"description": "Optional. Without it, all 3 levels are returned."
}
},
"additionalProperties": false
}Who My Daily Journeys (MDJ) is, where it operates, what it sells, how buying works, how to contact Maya, and the human service envelope that sets it apart from booking alone.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The fixed-price MDJ products with their USD prices and store page links (trip kick-off deposit, planning, apps, experience maps). Ground services are not listed: they are priced by quote only.
| Argument | Type | Description |
|---|---|---|
| type | string | Optional filter by product type. |
{
"type": "object",
"properties": {
"type": {
"enum": [
"deposit",
"planning",
"app",
"map",
"guide"
],
"type": "string",
"description": "Optional filter by product type."
}
},
"additionalProperties": false
}Places from Maya's city maps (attractions, hidden gems, local experiences, cafes, restaurants, nightlife, shopping) with a Google Maps link. Returns at most 10 places per call, plus the link to the full map.
| Argument | Type | Description |
|---|---|---|
| city* | string | For example "Hanoi", "Hoi An", "Bangkok", "Siem Reap", "Luang Prabang", "Seoul". |
| limit | integer | |
| query | string | Optional free text, for example "coffee", "rooftop", "market". |
| category | string | Optional, for example "Cafes", "Restaurants", "Hidden gems", "Attractions". |
{
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"description": "For example \"Hanoi\", \"Hoi An\", \"Bangkok\", \"Siem Reap\", \"Luang Prabang\", \"Seoul\"."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"description": "Optional free text, for example \"coffee\", \"rooftop\", \"market\"."
},
"category": {
"type": "string",
"description": "Optional, for example \"Cafes\", \"Restaurants\", \"Hidden gems\", \"Attractions\"."
}
},
"additionalProperties": false
}Sends the traveler's trip request to Maya as a new lead, exactly like her website questionnaire. Use it only when the traveler asked to be contacted by MDJ and agreed to share these details. Maya or her team reply by email. Set dry_run to true to validate without sending.
| Argument | Type | Description |
|---|---|---|
| email* | string | The traveler's email address. |
| phone | string | Optional, with country code. |
| adults | integer | |
| country | string | Country the traveler lives in. |
| dry_run | boolean | |
| service | string | full_custom: Maya plans and books the whole trip. execute_existing: the traveler already has an itinerary and wants it booked and supported. |
| children | integer | |
| last_name | string | |
| agent_name | string | Name of the AI assistant sending this request. |
| first_name* |
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 10, 2026.
| string |
| description | string | What the traveler wants, in their words. |
| destination* | string |
| hotel_level | string |
| return_date | string |
| trip_length | string | For example "14 days". |
| children_ages | string |
| departure_date | string | YYYY-MM-DD or a month. |
| traveler_consent* | boolean | Must be true: the traveler asked to be contacted by MDJ. |
{
"type": "object",
"required": [
"first_name",
"email",
"destination",
"traveler_consent"
],
"properties": {
"email": {
"type": "string",
"description": "The traveler's email address."
},
"phone": {
"type": "string",
"description": "Optional, with country code."
},
"adults": {
"type": "integer",
"maximum": 40,
"minimum": 1
},
"country": {
"type": "string",
"description": "Country the traveler lives in."
},
"dry_run": {
"type": "boolean"
},
"service": {
"enum": [
"full_custom",
"execute_existing",
"not_sure"
],
"type": "string",
"description": "full_custom: Maya plans and books the whole trip. execute_existing: the traveler already has an itinerary and wants it booked and supported."
},
"children": {
"type": "integer",
"maximum": 20,
"minimum": 0
},
"last_name": {
"type": "string"
},
"agent_name": {
"type": "string",
"description": "Name of the AI assistant sending this request."
},
"first_name": {
"type": "string"
},
"description": {
"type": "string",
"description": "What the traveler wants, in their words."
},
"destination": {
"type": "string"
},
"hotel_level": {
"enum": [
"4-star",
"5-star",
"5-star-premium",
"not sure"
],
"type": "string"
},
"return_date": {
"type": "string"
},
"trip_length": {
"type": "string",
"description": "For example \"14 days\"."
},
"children_ages": {
"type": "string"
},
"departure_date": {
"type": "string",
"description": "YYYY-MM-DD or a month."
},
"traveler_consent": {
"type": "boolean",
"description": "Must be true: the traveler asked to be contacted by MDJ."
}
},
"additionalProperties": false
}