public
Kratons, boutique DMC: bespoke trips in Spain, Portugal, Morocco. Facts, catalog, reviews, requests.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"public": {
"url": "https://api.kratons.com/api/mcp"
}
}
}リモートエンドポイント
https://api.kratons.com/api/mcpstreamable-httpできること
ツール一覧
ツール(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.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"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).
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"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.
入力スキーマ
{
"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#"
}出力スキーマ
{
"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#"
}コミュニティ
エビデンス