Bangkok boutique planner: live Thailand journeys, prices, FAQs, and enquiry handoff.
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.
Indicative independent USD range from the Jenesis budget calculator. Not a quote. Mid-range to ultra-luxury is what Jenesis plans.
Indicative independent USD range from the Jenesis budget calculator. Not a quote. Mid-range to ultra-luxury is what Jenesis plans.
| Argument | Type | Description |
|---|---|---|
| style* | string | |
| nights* | any | |
| region* | string | |
| travelers* | any | |
| inclusions | array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"nights",
"style",
"travelers",
"region"
],
"properties": {
"style": {
"enum": [
"budget",
"mid-range",
"luxury",
"ultra-luxury"
],
"type": "string"
},
"nights": {
"anyOf": [
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 5
},
{
"type": "number",
"const": 7
},
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 14
},
{
"type": "number",
"const": 21
}
]
},
"region": {
"enum": [
"bangkok",
"islands",
"chiangmai",
"huahin",
"mixed"
],
"type": "string"
},
"travelers": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 6
},
{
"type": "number",
"const": 8
}
]
},
"inclusions": {
"type": "array",
"items": {
"enum": [
"spa",
"cooking-class",
"yacht",
"private-guide",
"airport-transfer"
],
"type": "string"
}
}
}
}Company facts for Jenesis Travel: licence, contact, WhatsApp, enquiry-led model. Call this first. If the user wants a real person, share the WhatsApp URL.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get one published journey, residence, group programme, or package by slug. Use list_journeys if the slug is unknown.
| Argument | Type | Description |
|---|---|---|
| slug* | string | |
| currency | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"minLength": 1
},
"currency": {
"enum": [
"GBP",
"USD",
"AUD",
"EUR",
"THB"
],
"type": "string"
}
}
}Published FAQs from the Jenesis CMS, optionally filtered by pillar or search text.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| limit | integer | |
| pillar | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"pillar": {
"enum": [
"thailand-journeys",
"group-travel",
"general"
],
"type": "string"
}
}
}List published Jenesis journeys, residences, group programmes, and packages (including Phuket Fit). Live CMS data. Enquiry-led — not a booking inventory.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| kind | string | |
| limit | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string"
},
"kind": {
"enum": [
"journey",
"residence",
"group",
"package",
"all"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
}
}
}File a planning enquiry with Jenesis Travel. Call only after the user has stated their own name and email in the conversation and confirmed they want Jenesis to reply. Never invent or substitute contact details: an enquiry carrying a placeholder address cannot be answered and is rejected. If you do not have a real email, ask for it, or share the contact form or WhatsApp instead of calling this tool. One enquiry per email every 4 hours — do not retry if it already succeeded. This does not reserve hotels or take payment.
| Argument | Type | Description |
|---|---|---|
| name* | string | The traveller's own name, exactly as they gave it in the conversation. Do not invent one. |
| email* | string | The traveller's own email address, exactly as they gave it in the conversation. This is the only way Jenesis can reply, so it must be an address they actually read. Never guess one, derive one from their name, or fill in a documentation placeholder such as an example.com address — ask the traveller for it instead. |
| phone | string | |
| budget | string | |
| endDate | string | |
| message | string | |
| comments | string |
| roomType | string |
| groupSize | string |
| startDate | string |
| travelers | string |
| experience | string |
| clientLabel | string |
| enquiryType* | string |
| fitnessLevel | string |
| groupObjective | string |
| groupProgramme | string |
| phuketFitPackage | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"email",
"enquiryType"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "The traveller's own name, exactly as they gave it in the conversation. Do not invent one."
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The traveller's own email address, exactly as they gave it in the conversation. This is the only way Jenesis can reply, so it must be an address they actually read. Never guess one, derive one from their name, or fill in a documentation placeholder such as an example.com address — ask the traveller for it instead."
},
"phone": {
"type": "string"
},
"budget": {
"enum": [
"under-1000",
"1000-2500",
"2500-5000",
"5000-10000",
"10000+"
],
"type": "string"
},
"endDate": {
"type": "string"
},
"message": {
"type": "string",
"maxLength": 2000
},
"comments": {
"type": "string",
"maxLength": 2000
},
"roomType": {
"enum": [
"1-bed-deluxe",
"1-bed-executive",
"2-bed-deluxe",
"2-bed-executive",
"1-bed",
"2-bed",
"3-bed"
],
"type": "string"
},
"groupSize": {
"enum": [
"8-20",
"21-40",
"41-80",
"81-120",
"120+",
"not-sure"
],
"type": "string"
},
"startDate": {
"type": "string"
},
"travelers": {
"enum": [
"1",
"2",
"3-4",
"5-8",
"9+",
"5+"
],
"type": "string"
},
"experience": {
"enum": [
"wellness-retreats",
"boutique-hotels",
"culinary-tours",
"adventure",
"family-holiday",
"destination-wedding",
"cultural-heritage",
"romantic-escapes",
"island-coastal",
"home-away",
"amanta-sathorn",
"riverine-place",
"not-sure"
],
"type": "string"
},
"clientLabel": {
"enum": [
"claude",
"chatgpt",
"grok",
"other"
],
"type": "string"
},
"enquiryType": {
"enum": [
"private",
"group",
"phuket_fit"
],
"type": "string"
},
"fitnessLevel": {
"enum": [
"Beginner",
"Intermediate",
"Advanced"
],
"type": "string"
},
"groupObjective": {
"type": "string",
"maxLength": 2000
},
"groupProgramme": {
"enum": [
"corporate-incentive",
"bangkok-phuket",
"bangkok-pattaya",
"phuket-krabi",
"retreat",
"trade-partner",
"private-group",
"not-sure"
],
"type": "string"
},
"phuketFitPackage": {
"enum": [
"5N/6D Fit Reset",
"6N/7D Fit & Wellness Journey",
"7N/8D Signature Phuket Fit Camp",
"Not sure yet"
],
"type": "string"
}
}
}