public
Kratons, boutique DMC: bespoke trips in Spain, Portugal, Morocco. Facts, catalog, reviews, requests.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"public": {
"url": "https://api.kratons.com/api/mcp"
}
}
}Puntos de conexión remotos
https://api.kratons.com/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟢get_company_facts
Who Kratons is: legal identity, address, contact channels, countries served, languages, services, pricing policy and how to request a proposal. Read-only.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"brand": {
"type": "string"
},
"legalName": {
"type": "string"
},
"taxId": {
"type": "string",
"description": "Spanish NIF / CIF"
},
"iata": {
"type": "string",
"description": "IATA accreditation number"
},
"foundedYear": {
"type": "integer"
},
"basedIn": {
"type": "string"
},
"description": {
"type": "object",
"properties": {
"short": {
"type": "string"
},
"long": {
"type": "string"
}
},
"required": [
"short",
"long"
],
"additionalProperties": false
},
"address": {
"type": "object",
"properties": {
"lines": {
"type": "array",
"items": {
"type": "string"
}
},
"streetAddress": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"locality": {
"type": "string"
},
"region": {
"type": "string"
},
"countryName": {
"type": "string"
},
"countryCode": {
"type": "string"
}
},
"required": [
"lines",
"streetAddress",
"postalCode",
"locality",
"region",
"countryName",
"countryCode"
],
"additionalProperties": true
},
"contact": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"phones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"number": {
"type": "string"
},
"e164": {
"type": "string"
},
"country": {
"type": "string"
}
},
"required": [
"label",
"number",
"e164",
"country"
],
"additionalProperties": true
}
},
"channels": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"email",
"phones",
"channels"
],
"additionalProperties": true
},
"web": {
"type": "object",
"properties": {
"home": {
"type": "string"
},
"homeEs": {
"type": "string"
},
"logo": {
"type": "string"
},
"sameAs": {
"type": "array",
"items": {
"type": "string"
}
},
"pages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"key",
"title",
"url",
"description"
],
"additionalProperties": true
}
}
},
"required": [
"home",
"homeEs",
"logo",
"sameAs",
"pages"
],
"additionalProperties": true
},
"areaServed": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"code": {
"type": "string"
}
},
"required": [
"name",
"code"
],
"additionalProperties": true
}
},
"languages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"code": {
"type": "string"
}
},
"required": [
"name",
"code"
],
"additionalProperties": true
}
},
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"positioning": {
"type": "array",
"items": {
"type": "string"
}
},
"pricingPolicy": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"rules": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"summary",
"rules"
],
"additionalProperties": true
},
"proposalRequest": {
"type": "object",
"properties": {
"how": {
"type": "string"
},
"checklist": {
"type": "array",
"items": {
"type": "string"
}
},
"afterwards": {
"type": "string"
}
},
"required": [
"how",
"checklist",
"afterwards"
],
"additionalProperties": true
},
"agentStatement": {
"type": "string"
},
"api": {
"type": "object",
"properties": {
"baseUrl": {
"type": "string"
},
"endpoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"contentType": {
"type": "string"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST"
]
}
},
"required": [
"path",
"title",
"description",
"contentType"
],
"additionalProperties": true
}
},
"mcpPath": {
"type": "string"
}
},
"required": [
"baseUrl",
"endpoints",
"mcpPath"
],
"additionalProperties": true
}
},
"required": [
"brand",
"legalName",
"taxId",
"iata",
"foundedYear",
"basedIn",
"description",
"address",
"contact",
"web",
"areaServed",
"languages",
"services",
"positioning",
"pricingPolicy",
"proposalRequest",
"agentStatement",
"api"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_destinations
Countries and cities where Kratons currently offers tours or tickets, with counts. Read-only.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"experienceCount": {
"type": "integer"
},
"cities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"experienceCount": {
"type": "integer"
}
},
"required": [
"city",
"experienceCount"
],
"additionalProperties": false
}
}
},
"required": [
"country",
"experienceCount",
"cities"
],
"additionalProperties": false
}
},
"generatedAt": {
"type": "string",
"description": "ISO timestamp of the underlying query (cached for an hour)"
}
},
"required": [
"countries",
"generatedAt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_experiences(country, city, q, limit)
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).
Esquema de entrada
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Country name, e.g. Spain, Portugal, Morocco"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "City name, e.g. Madrid, Lisbon, Marrakech"
},
"q": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Free-text search on name, description and tags"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max results (default 20, max 50)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"experiences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"Tour",
"Ticket"
]
},
"city": {
"type": [
"string",
"null"
]
},
"country": {
"$ref": "#/properties/experiences/items/properties/city"
},
"category": {
"anyOf": [
{
"type": "string",
"enum": [
"private",
"small_group",
"group"
]
},
{
"type": "null"
}
]
},
"durationMinutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"freeCancellation": {
"type": "boolean"
},
"summary": {
"type": "string"
}
},
"required": [
"id",
"name",
"type",
"city",
"country",
"category",
"durationMinutes",
"freeCancellation",
"summary"
],
"additionalProperties": false
},
"description": "Never prices or suppliers — one package price per trip, quoted by a human"
}
},
"required": [
"experiences"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_sample_itineraries(country, q, limit)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Destination filter, e.g. Portugal, Andalusia"
},
"q": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Free text on name, summary and tags"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max results (default 20, max 50)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"itineraries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"destination": {
"type": [
"string",
"null"
]
},
"durationDays": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"category": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"summary": {
"$ref": "#/properties/itineraries/items/properties/destination"
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "integer",
"description": "1-based day number"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"kind",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"day",
"items"
],
"additionalProperties": false
}
},
"pricing": {
"type": "string",
"description": "The pricing note: one package price per trip, no public price list"
}
},
"required": [
"id",
"name",
"destination",
"durationDays",
"category",
"tags",
"summary",
"days",
"pricing"
],
"additionalProperties": false
}
}
},
"required": [
"itineraries"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_reviews(limit)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Newest reviews to return (default 6, max 20)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"ratingValue": {
"type": [
"number",
"null"
],
"description": "Weighted average over the available sources, 1–5"
},
"bestRating": {
"type": "number",
"const": 5
},
"reviewCount": {
"type": "integer"
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": [
"Zicasso",
"Google"
]
},
"available": {
"type": "boolean",
"description": "false when the platform could not be read; `error` says why"
},
"rating": {
"type": [
"number",
"null"
],
"description": "Average on the 1–5 scale"
},
"bestRating": {
"type": "number",
"const": 5
},
"reviewCount": {
"type": "integer"
},
"url": {
"type": [
"string",
"null"
]
},
"error": {
"type": "string"
}
},
"required": [
"source",
"available",
"rating",
"bestRating",
"reviewCount",
"url"
],
"additionalProperties": false
}
},
"reviews": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": [
"Zicasso",
"Google"
]
},
"reviewer": {
"type": "string",
"description": "As published by the platform"
},
"rating": {
"type": "number"
},
"title": {
"$ref": "#/properties/sources/items/properties/url"
},
"excerpt": {
"type": "string"
},
"date": {
"$ref": "#/properties/sources/items/properties/url"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"$ref": "#/properties/sources/items/properties/url"
}
},
"required": [
"source",
"reviewer",
"rating",
"title",
"excerpt",
"date",
"countries",
"url"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
},
"generatedAt": {
"type": "string"
}
},
"required": [
"ratingValue",
"bestRating",
"reviewCount",
"sources",
"reviews",
"note",
"generatedAt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_proposal_request_status(reference)
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.
Esquema de entrada
{
"type": "object",
"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"
}
},
"required": [
"reference"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"reference": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"received",
"being_prepared",
"proposal_sent",
"confirmed",
"closed"
]
},
"statusText": {
"type": "string"
},
"receivedAt": {
"type": "string",
"description": "ISO timestamp"
},
"lastUpdateAt": {
"type": "string",
"description": "ISO timestamp"
},
"slaBusinessDays": {
"type": "integer"
},
"nextStep": {
"type": "string"
}
},
"required": [
"reference",
"status",
"statusText",
"receivedAt",
"lastUpdateAt",
"slaBusinessDays",
"nextStep"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢how_to_request_a_proposal
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.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"guide": {
"type": "string",
"description": "The full guide as Markdown"
},
"how": {
"type": "string"
},
"checklist": {
"type": "array",
"items": {
"type": "string"
},
"description": "What a traveller or agent should include in a request"
},
"afterwards": {
"type": "string",
"description": "What happens after a request is submitted"
},
"contact": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"phones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"number": {
"type": "string"
},
"e164": {
"type": "string"
}
},
"required": [
"label",
"number",
"e164"
],
"additionalProperties": false
}
}
},
"required": [
"email",
"phones"
],
"additionalProperties": false
},
"pricingPolicy": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"rules": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"summary",
"rules"
],
"additionalProperties": false
},
"agentStatement": {
"type": "string"
}
},
"required": [
"guide",
"how",
"checklist",
"afterwards",
"contact",
"pricingPolicy",
"agentStatement"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡request_a_proposal(contact, trip, requester, idempotencyKey, source, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"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"
},
"preferredChannel": {
"type": "string",
"enum": [
"email",
"phone",
"whatsapp",
"video_call"
]
},
"language": {
"type": "string",
"enum": [
"en",
"es"
],
"description": "Language for the reply (English or Spanish)"
}
},
"required": [
"name",
"email"
],
"additionalProperties": false
},
"trip": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"minItems": 1,
"maxItems": 12,
"description": "Countries, regions or cities within Spain, Portugal and/or Morocco"
},
"dates": {
"type": "object",
"properties": {
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"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"
},
"flexible": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"nights": {
"type": "integer",
"minimum": 1,
"maximum": 90
},
"travelers": {
"type": "object",
"properties": {
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 40
},
"children": {
"type": "integer",
"minimum": 0,
"maximum": 40,
"default": 0
},
"ages": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 120
},
"maxItems": 40,
"description": "Ages of children (and adults if relevant)"
}
},
"required": [
"adults"
],
"additionalProperties": false
},
"budgetTotal": {
"type": "number",
"minimum": 0,
"maximum": 5000000,
"description": "Approximate total budget for the WHOLE trip"
},
"currency": {
"type": "string",
"enum": [
"EUR",
"USD"
],
"default": "EUR"
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"maxItems": 20,
"default": [],
"description": "Interests and preferred pace"
},
"accommodationStyle": {
"type": "string",
"maxLength": 200
},
"hotelPreferences": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"3_star",
"4_star",
"5_star",
"luxury",
"boutique",
"historic_or_parador",
"mixed"
],
"description": "Hotel level the traveller expects; 'mixed' when it may vary by city"
},
"names": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"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)"
}
},
"additionalProperties": false,
"description": "Accommodation preferences by level or by hotel name (2026-09-17)"
},
"occasion": {
"type": "string",
"maxLength": 200,
"description": "Anniversary, birthday, honeymoon…"
},
"needs": {
"type": "string",
"maxLength": 2000,
"description": "Mobility or dietary needs"
},
"notes": {
"type": "string",
"maxLength": 4000,
"description": "Anything else the advisor should know"
}
},
"required": [
"destinations",
"dates",
"travelers"
],
"additionalProperties": false
},
"requester": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"ai_agent",
"travel_agent",
"traveller"
],
"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,
"default": {
"kind": "ai_agent"
}
},
"idempotencyKey": {
"type": "string",
"maxLength": 120,
"description": "Send the same key to retry safely; the same reference comes back"
},
"source": {
"type": "string",
"enum": [
"social",
"web",
"agent",
"referral",
"other"
],
"description": "Where this request originated, e.g. \"social\" when the traveller followed a link in one of Kratons' social posts"
},
"socialPostId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{24}$",
"description": "The Kratons social post the traveller came from, when the link carried it"
},
"utm": {
"type": "object",
"properties": {
"source": {
"type": "string",
"maxLength": 100
},
"medium": {
"type": "string",
"maxLength": 100
},
"campaign": {
"type": "string",
"maxLength": 100
}
},
"additionalProperties": false,
"description": "UTM parameters of the landing link, when any"
}
},
"required": [
"contact",
"trip"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"reference": {
"type": "string",
"description": "Quote it in any follow-up; get_proposal_request_status reads it"
},
"duplicate": {
"type": "boolean",
"description": "true when the same request was already received in the last 24 h (same reference returned)"
},
"receivedAt": {
"type": "string",
"description": "ISO timestamp"
},
"whatHappensNext": {
"type": "string"
},
"contactForChanges": {
"type": "string"
},
"missing": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recommended details this request did not carry — collect them before the advisor has to ask"
},
"acknowledged": {
"type": "string",
"description": "One sentence echoing what was received, to confirm it to the traveller"
}
},
"required": [
"reference",
"duplicate",
"receivedAt",
"whatHappensNext",
"contactForChanges",
"missing",
"acknowledged"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia