Kratons, boutique DMC: bespoke trips in Spain, Portugal, Morocco. Facts, catalog, reviews, requests.
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.
Who Kratons is: legal identity, address, contact channels, countries served, languages, services, pricing policy and how to request a proposal. Read-only.
This tool takes no arguments.
Who Kratons is: legal identity, address, contact channels, countries served, languages, services, pricing policy and how to request a proposal. Read-only.
No arguments.
{
"type": "object",
"properties": {}
}Where a submitted proposal request stands (received, being prepared, proposal sent, confirmed, closed), looked up by the reference returned when it was submitted. Returns the stage, dates and the reply commitment; no personal data.
| Argument | Type | Description |
|---|---|---|
| reference* | string | The reference returned by request_a_proposal, e.g. PR-20260916-U8GB |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"reference"
],
"properties": {
"reference": {
"type": "string",
"pattern": "^PR-\\d{8}-[A-Za-z0-9]{4}$",
"description": "The reference returned by request_a_proposal, e.g. PR-20260916-U8GB"
}
},
"additionalProperties": false
}Aggregate rating (1–5) and the newest traveller reviews of Kratons from Zicasso and Google, each attributed to the platform that published it, with a link to read them all. A source that cannot be read is listed as unavailable — never invented.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Newest reviews to return (default 6, max 20) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Newest reviews to return (default 6, max 20)"
}
},
"additionalProperties": false
}The checklist a traveller or agent should send to Kratons to receive a bespoke proposal, the pricing policy, and how a human advisor follows up. Read-only.
No arguments.
{
"type": "object",
"properties": {}
}Countries and cities where Kratons currently offers tours or tickets, with counts. Read-only.
No arguments.
{
"type": "object",
"properties": {}
}Published sample itineraries Kratons operates, as { itineraries: [...] } (name, destination, duration, category, summary, day-by-day outline) to start a conversation from. Never prices or suppliers — every trip is quoted as one package price by a human advisor.
| Argument | Type | Description |
|---|---|---|
| q | string | Free text on name, summary and tags |
| limit | integer | Max results (default 20, max 50) |
| country | string | Destination filter, e.g. Portugal, Andalusia |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Free text on name, summary and tags"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max results (default 20, max 50)"
},
"country": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Destination filter, e.g. Portugal, Andalusia"
}
},
"additionalProperties": false
}Submit a structured proposal request to Kratons on behalf of a traveller or a travel agent: contact, destinations within Spain/Portugal/Morocco, dates, travellers, total budget, interests. Returns a reference. A human advisor replies by e-mail — there is no automatic booking, no online checkout and no price list. Send idempotencyKey to retry safely.
| Argument | Type | Description |
|---|---|---|
| utm | object | UTM parameters of the landing link, when any |
| trip* | object | |
| source | string | Where this request originated, e.g. "social" when the traveller followed a link in one of Kratons' social posts |
| contact* | object | |
| requester | object | |
| socialPostId | string | The Kratons social post the traveller came from, when the link carried it |
| idempotencyKey | string | Send the same key to retry safely; the same reference comes back |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contact",
"trip"
],
"properties": {
"utm": {
"type": "object",
"properties": {
"medium": {
"type": "string",
"maxLength": 100
},
"source": {
"type": "string",
"maxLength": 100
},
"campaign": {
"type": "string",
"maxLength": 100
}
},
"description": "UTM parameters of the landing link, when any",
"additionalProperties": false
},
"trip": {
"type": "object",
"required": [
"destinations",
"dates",
"travelers"
],
"properties": {
"dates": {
"type": "object",
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"month": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "YYYY-MM when exact dates are not fixed"
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"flexible": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"needs": {
"type": "string",
"maxLength": 2000,
"description": "Mobility or dietary needs"
},
"notes": {
"type": "string",
"maxLength": 4000,
"description": "Anything else the advisor should know"
},
"nights": {
"type": "integer",
"maximum": 90,
"minimum": 1
},
"currency": {
"enum": [
"EUR",
"USD"
],
"type": "string",
"default": "EUR"
},
"occasion": {
"type": "string",
"maxLength": 200,
"description": "Anniversary, birthday, honeymoon…"
},
"interests": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"default": [],
"maxItems": 20,
"description": "Interests and preferred pace"
},
"travelers": {
"type": "object",
"required": [
"adults"
],
"properties": {
"ages": {
"type": "array",
"items": {
"type": "integer",
"maximum": 120,
"minimum": 0
},
"maxItems": 40,
"description": "Ages of children (and adults if relevant)"
},
"adults": {
"type": "integer",
"maximum": 40,
"minimum": 1
},
"children": {
"type": "integer",
"default": 0,
"maximum": 40,
"minimum": 0
}
},
"additionalProperties": false
},
"budgetTotal": {
"type": "number",
"maximum": 5000000,
"minimum": 0,
"description": "Approximate total budget for the WHOLE trip"
},
"destinations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"maxItems": 12,
"minItems": 1,
"description": "Countries, regions or cities within Spain, Portugal and/or Morocco"
},
"hotelPreferences": {
"type": "object",
"properties": {
"level": {
"enum": [
"3_star",
"4_star",
"5_star",
"luxury",
"boutique",
"historic_or_parador",
"mixed"
],
"type": "string",
"description": "Hotel level the traveller expects; 'mixed' when it may vary by city"
},
"names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"maxItems": 10,
"description": "Specific hotels the traveller has in mind, by name"
},
"notes": {
"type": "string",
"maxLength": 500,
"description": "Anything else about accommodation (room types, location, must-haves)"
}
},
"description": "Accommodation preferences by level or by hotel name (2026-09-17)",
"additionalProperties": false
},
"accommodationStyle": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
},
"source": {
"enum": [
"social",
"web",
"agent",
"referral",
"other"
],
"type": "string",
"description": "Where this request originated, e.g. \"social\" when the traveller followed a link in one of Kratons' social posts"
},
"contact": {
"type": "object",
"required": [
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Traveller's (or the person to reply to) full name"
},
"email": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "E-mail address a human advisor will reply to"
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Phone / WhatsApp number with country code"
},
"language": {
"enum": [
"en",
"es"
],
"type": "string",
"description": "Language for the reply (English or Spanish)"
},
"preferredChannel": {
"enum": [
"email",
"phone",
"whatsapp",
"video_call"
],
"type": "string"
}
},
"additionalProperties": false
},
"requester": {
"type": "object",
"default": {
"kind": "ai_agent"
},
"properties": {
"kind": {
"enum": [
"ai_agent",
"travel_agent",
"traveller"
],
"type": "string",
"default": "ai_agent"
},
"agentName": {
"type": "string",
"maxLength": 120,
"description": "Name of the assistant or agency submitting this"
},
"agentVendor": {
"type": "string",
"maxLength": 120,
"description": "Vendor / platform of the assistant (e.g. OpenAI, Anthropic)"
}
},
"additionalProperties": false
},
"socialPostId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{24}$",
"description": "The Kratons social post the traveller came from, when the link carried it"
},
"idempotencyKey": {
"type": "string",
"maxLength": 120,
"description": "Send the same key to retry safely; the same reference comes back"
}
},
"additionalProperties": false
}Tours and tickets Kratons operates, filtered by country, city and free text. Returns { experiences: [...] } with name, type, city, country, category, duration, free-cancellation flag and a summary — never prices or suppliers (Kratons quotes one package price per trip).
| Argument | Type | Description |
|---|---|---|
| q | string | Free-text search on name, description and tags |
| city | string | City name, e.g. Madrid, Lisbon, Marrakech |
| limit | integer | Max results (default 20, max 50) |
| country | string | Country name, e.g. Spain, Portugal, Morocco |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Free-text search on name, description and tags"
},
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "City name, e.g. Madrid, Lisbon, Marrakech"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max results (default 20, max 50)"
},
"country": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Country name, e.g. Spain, Portugal, Morocco"
}
},
"additionalProperties": false
}