concierge
Qué hace este MCP
Searches safari destinations and travel content, builds and prices day-by-day itineraries, and supports paid itinerary verification and booking services.
Herramientas
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id', 'day_id', 'slot', 'title'], 'properties': {'slot': {'enum': ['morning', 'afternoon', 'evening'], 'type': 'string'}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Short title for the activity'}, 'day_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'The day UUID to add the activity to'}, 'description': {'type': 'string'}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Parent itinerary UUID'}, 'wp_content_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Source content id'}, 'wp_content_type': {'enum': ['itinerary', 'activity', 'destination', 'post'], 'type': 'string', 'description': 'Content type to link'}, 'duration_minutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 5}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'notes': {'type': 'string'}, 'title': {'type': 'string', 'description': "Optional day label, e.g. 'Drive to Hwange'"}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['title', 'num_days'], 'properties': {'title': {'type': 'string', 'minLength': 1, 'description': "Itinerary title, e.g. '7-Day Hwange Safari'"}, 'num_days': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Number of days'}, 'start_date': {'type': 'string', 'description': "Optional ISO date string for day 1, e.g. '2025-06-01'"}, 'description': {'type': 'string', 'description': 'Optional short description'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['activity_id'], 'properties': {'activity_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['title', 'places', 'num_days'], 'properties': {'title': {'type': 'string', 'minLength': 1, 'description': "Itinerary title, e.g. 'Highlights of Zimbabwe'"}, 'places': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 3, 'description': "At least 3 place names, e.g. ['Victoria Falls', 'Hwange', 'Mana Pools']"}, 'language': {'enum': ['en', 'ru', 'zh'], 'type': 'string', 'description': "Language for day titles, notes, and activity text: 'en' (English), 'ru' (Russian), or 'zh' (Chinese). Defaults to English."}, 'num_days': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Number of days for the trip'}, 'preferences': {'type': 'string', 'description': 'Traveller preferences that should shape the plan: pace, interests, budget, travel style'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['type', 'id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Source content id (WordPress post id)'}, 'type': {'enum': ['itinerary', 'activity', 'destination', 'post'], 'type': 'string'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['identifier'], 'properties': {'identifier': {'type': 'string', 'description': 'Either a destination id or its URL slug'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'The UUID of the itinerary'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['type', 'id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Source content id (WordPress post id)'}, 'type': {'enum': ['itinerary', 'activity', 'destination', 'post'], 'type': 'string'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'region': {'type': 'string', 'description': "Filter by region name, e.g. 'Matabeleland North'"}, 'category': {'type': 'string', 'description': "Filter by category, e.g. 'National Park'"}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'nights': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': "Defaults to the cost model's reference length"}, 'tier_id': {'type': 'string', 'description': 'Defaults to the cheapest tier'}, 'option_ids': {'type': 'array', 'items': {'type': 'object', 'required': ['group_id', 'option_id'], 'properties': {'group_id': {'type': 'string'}, 'option_id': {'type': 'string'}}}, 'description': 'One entry per cost option group you want to choose in'}, 'travellers': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'notes': {'type': 'string'}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'contact_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,}$"}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'notes': {'type': 'string'}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'contact_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,}$"}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'notes': {'type': 'string', 'description': 'Anything the experts should know (dates, group size, budget)'}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'contact_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': 'Where to send the report + receipt'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['type'], 'properties': {'type': {'enum': ['itinerary', 'activity', 'destination', 'post'], 'type': 'string', 'description': 'Content type to search'}, 'search': {'type': 'string', 'description': 'Search keyword'}, 'per_page': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['type'], 'properties': {'type': {'enum': ['itinerary', 'activity', 'destination', 'post'], 'type': 'string', 'description': 'Content type to search'}, 'search': {'type': 'string', 'description': 'Search keyword'}, 'per_page': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'legs': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'start_day', 'end_day'], 'properties': {'title': {'type': 'string', 'minLength': 1, 'description': 'Where this stretch is, in a word or two'}, 'end_day': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'summary': {'type': 'string', 'description': 'A sentence or two on what these nights are for'}, 'start_day': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}}, 'minItems': 1, 'description': "The route's chapters. Every day must belong to exactly one leg, and legs must not overlap."}, 'choices': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'options'], 'properties': {'title': {'type': 'string', 'minLength': 1, 'description': "'Pick your coast'"}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'body'], 'properties': {'body': {'type': 'string', 'minLength': 1, 'description': 'What this option is actually like, and who should choose it'}, 'label': {'type': 'string', 'minLength': 1}, 'subtitle': {'type': 'string'}}}, 'minItems': 2}}}, 'minItems': 1, 'description': 'Either/ors deliberately left open for the traveller'}, 'countries': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'How many countries the route crosses'}, 'cost_model': {'type': 'object', 'required': ['currency', 'reference_nights', 'lines', 'tiers'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'scales_with_length'], 'properties': {'key': {'type': 'string', 'minLength': 1, 'description': "Short stable key used by tiers and option groups â\x80\x94 'land', 'permits', 'park_fees', 'flights'"}, 'label': {'type': 'string', 'minLength': 1}, 'scales_with_length': {'type': 'boolean', 'description': 'True for nightly costs (camps, park fees), false for per-trip costs (permits, internal flights)'}}}, 'minItems': 1}, 'notes': {'type': 'string', 'description': 'What the figures exclude and how firm they are'}, 'tiers': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'amounts'], 'properties': {'label': {'type': 'string', 'minLength': 1, 'description': "'Lean', 'Mid-range', 'Luxury'"}, 'amounts': {'type': 'array', 'items': {'type': 'object', 'required': ['line_key', 'amount'], 'properties': {'amount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Per person, in minor units â\x80\x94 620000 for $6,200'}, 'line_key': {'type': 'string'}}}, 'minItems': 1, 'description': 'One entry per cost line'}}}, 'minItems': 1}, 'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': "ISO 4217, lowercase â\x80\x94 'usd'"}, 'option_groups': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'line_key', 'options'], 'properties': {'label': {'type': 'string', 'minLength': 1}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'amount'], 'properties': {'label': {'type': 'string', 'minLength': 1}, 'amount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Per person, in minor units â\x80\x94 620000 for $6,200'}, 'is_default': {'type': 'boolean'}}}, 'minItems': 2}, 'line_key': {'type': 'string', 'minLength': 1, 'description': 'Which cost line this choice overrides'}}}}, 'length_options': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'description': 'Shorter or longer variants offered to the reader, in nights'}, 'reference_nights': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The trip length the amounts are quoted at'}}, 'description': 'Per-person breakdown lines, amounts per comfort tier, and any per-line choices'}, 'field_notes': {'type': 'array', 'items': {'type': 'object', 'required': ['heading', 'body'], 'properties': {'body': {'type': 'string', 'minLength': 1}, 'heading': {'type': 'string', 'minLength': 1, 'description': "'Visas', 'Yellow fever', 'Luggage'"}}}, 'minItems': 1, 'description': 'Visas, certificates, luggage limits, kit'}, 'seasonality': {'type': 'object', 'required': ['rows', 'months', 'recommended_month'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'scores'], 'properties': {'label': {'type': 'string', 'minLength': 1, 'description': 'What is being scored â\x80\x94 a wildlife event, a trail condition, a sea state'}, 'scores': {'type': 'array', 'items': {'type': 'integer', 'maximum': 3, 'minimum': 0}, 'maxItems': 12, 'minItems': 12, 'description': 'January first. 0 = avoid, 1 = poor, 2 = workable, 3 = peak'}}}, 'minItems': 1}, 'months': {'type': 'array', 'items': {'type': 'object', 'required': ['month', 'rank', 'verdict', 'tags'], 'properties': {'rank': {'enum': ['primary', 'alternative', 'workable', 'avoid'], 'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 4, 'description': "Short labels: 'Peak crossings', 'Books out first', 'Avoid'"}, 'month': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'verdict': {'type': 'string', 'minLength': 1, 'description': "Why this month is or isn't the one, in two or three sentences"}}}, 'minItems': 1}, 'recommended_month': {'type': 'integer', 'maximum': 12, 'minimum': 1, 'description': 'The month this plan is actually built around'}}, 'description': 'One row per thing the trip is timed around, scored 0-3 across all twelve months, plus a verdict per month worth arguing about'}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'booking_order': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'detail'], 'properties': {'title': {'type': 'string', 'minLength': 1}, 'detail': {'type': 'string', 'minLength': 1, 'description': 'Why it sits at this point in the order'}}}, 'minItems': 1, 'description': 'What to book, in the order it has to happen'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id'], 'properties': {'title': {'type': 'string'}, 'is_public': {'type': 'boolean', 'description': 'Set false to unpublish the shareable link'}, 'start_date': {'type': 'string'}, 'description': {'type': 'string'}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itinerary_id', 'day_number', 'narrative'], 'properties': {'callouts': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'title', 'body'], 'properties': {'body': {'type': 'string', 'minLength': 1}, 'kind': {'enum': ['alternative', 'swap', 'warning', 'note'], 'type': 'string'}, 'title': {'type': 'string', 'minLength': 1, 'description': "'Alternative', 'Swap worth considering'"}}}, 'maxItems': 3}, 'narrative': {'type': 'string', 'minLength': 1, 'description': 'Two or three short paragraphs, separated by blank lines. Plain text, no markup.'}, 'day_number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'itinerary_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Cambios recientes en herramientas
Servidores MCP similares
MolTravel
Searches and provides details for flights, hotels, rental cars, ferries, airports, travel experiences, destinations, country info…
Wmata
Provides Washington Metro rail and bus routes, stops, stations, service incidents, route details, and real-time arrival predictio…
Openrouteservice
Provides geocoding, routing, travel-time matrices, isochrones, snapping, and elevation data using OpenStreetMap-based services.
Google_maps
Provides Google Maps geocoding, place search and details, directions, distance matrices, and elevation data.
SeaWeb
Searches and extracts web information about entities and travel locations, including restaurants, salons, tourist conditions, dis…
Aviationstack
Provides airline, airport, city, country, and flight directory data, including real-time and scheduled flight details.
Nps
Searches National Park Service data for parks, campgrounds, activities, alerts, visitor statistics, locations, fees, and operatin…
Tfl
Provides London transport journey planning, line status, disruptions, stop arrivals, and Santander Cycle availability.