Serveur MCP

TripWays

com.tripways/tours
Commerce et retail Voyage et hôtellerie Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Searches bookable tours and activities, retrieves details, checks live availability, provides price quotes, and generates checkout links.

check_availability
Check availability
Check live start times and remaining seats for a TripWays tour on one date or a range of up to 31 days. Pass party_size (seats needed) or a travelers object; slots that cannot fit the group are left out, and party_size wins if both are given. The status field is ok, no_schedule, no_fit, or calendar_gone. Use get_price_quote with the same date, start time, and travelers for the total.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['bokun_id', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'bokun_id': {'type': 'string', 'pattern': '^[0-9]+$'}, 'date_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Inclusive end; default = date. Max 31 days.'}, 'travelers': {'type': 'object', 'properties': {'youth': {'type': 'integer', 'minimum': 0}, 'adults': {'type': 'integer', 'default': 1, 'minimum': 0}, 'infants': {'type': 'integer', 'minimum': 0}, 'seniors': {'type': 'integer', 'minimum': 0}, 'children': {'type': 'integer', 'minimum': 0}}, 'description': 'Simple ages; mapped to occupied seats (infants excluded unless the tour has an infant category). Used only when party_size is omitted.', 'additionalProperties': False}, 'party_size': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Occupied seats to keep (not ticket count). Slots with availabilityCount < party_size are omitted unless unlimited. Wins over travelers when both are set.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'note': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD.'}, 'label': {'type': 'string'}, 'rate_ids': {'type': 'array'}, 'sold_out': {'type': 'boolean'}, 'unlimited': {'type': 'boolean'}, 'spots_left': {'type': ['integer', 'null'], 'description': 'Null when unlimited.'}, 'start_time': {'type': 'string', 'description': 'HH:MM.'}, 'start_time_id': {'type': 'integer', 'description': 'Pass to get_price_quote / get_booking_link.'}, 'min_participants': {'type': 'integer'}}}, 'description': 'Open start times that fit the party.'}, 'reason': {'type': ['string', 'null']}, 'status': {'type': 'string', 'description': 'ok, no_schedule, no_fit, or calendar_gone.'}, 'bokun_id': {'type': 'string'}, 'checkout_url': {'type': 'string'}, 'bookable_natively': {'type': 'boolean'}}}
get_booking_link
Get a booking link
Get the TripWays checkout link for a tour, optionally preset to a date, start time, rate, and traveler mix. The traveler pays on tripways.com; this tool does not hold seats or take payment. bookable_natively and reason say whether the link opens TripWays checkout or the operator's calendar, and whether a hotel pickup must be chosen at checkout.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['bokun_id'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'rate_id': {'type': 'integer', 'minimum': 1}, 'bokun_id': {'type': 'string', 'pattern': '^[0-9]+$'}, 'travelers': {'type': 'object', 'properties': {'youth': {'type': 'integer', 'minimum': 0}, 'adults': {'type': 'integer', 'default': 1, 'minimum': 0}, 'infants': {'type': 'integer', 'minimum': 0}, 'seniors': {'type': 'integer', 'minimum': 0}, 'children': {'type': 'integer', 'minimum': 0}}, 'description': 'Simple ages; mapped to Bokun pricing categories.', 'additionalProperties': False}, 'start_time': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}$', 'description': 'HH:MM if start_time_id unknown.'}, 'start_time_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'reason': {'type': ['string', 'null']}, 'bokun_id': {'type': 'string'}, 'spots_left': {'type': ['integer', 'null']}, 'start_time': {'type': 'string'}, 'checkout_url': {'type': 'string', 'description': 'Open in the browser to pay on tripways.com.'}, 'min_participants': {'type': 'integer'}, 'bookable_natively': {'type': 'boolean'}}}
get_destination_info
Find a destination
Resolve a place name (a city, region, country, or well-known area such as Khao Sok) to a TripWays destination with bookable tours. Useful before search_tours when a name could mean more than one place. An ambiguous name returns destination_ambiguous with a did_you_mean list; pass country_code (ISO 3166-1 alpha-2, e.g. FR) to choose one. Area names resolve to their parent destination and include resolved_via=area_alias.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'country_code': {'type': 'string', 'pattern': '^[A-Za-z]{2}$', 'description': 'Optional ISO2 pin, e.g. FR.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'destination': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': "The destination's TripWays page."}, 'name': {'type': 'string'}, 'alias': {'type': 'string'}, 'level': {'type': 'string', 'description': 'country, region, city, or district.'}, 'hierarchy': {'type': 'array', 'items': {'type': 'string'}}, 'browseable': {'type': 'boolean'}, 'tour_count': {'type': 'integer'}, 'country_code': {'type': 'string'}, 'display_name': {'type': 'string'}, 'resolved_via': {'type': 'string', 'description': 'area_alias when a landmark maps to its parent destination.'}}}}}
get_price_quote
Get a price quote
Get the live total for a TripWays tour on one date and start time for a traveler mix, priced from the operator's booking calendar. A quote does not hold seats or charge anything. Optional extras and promo codes are not included. When the tour's rates cannot price that mix, the result is unpriced.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['bokun_id', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'bokun_id': {'type': 'string', 'pattern': '^[0-9]+$'}, 'travelers': {'type': 'object', 'properties': {'youth': {'type': 'integer', 'minimum': 0}, 'adults': {'type': 'integer', 'default': 1, 'minimum': 0}, 'infants': {'type': 'integer', 'minimum': 0}, 'seniors': {'type': 'integer', 'minimum': 0}, 'children': {'type': 'integer', 'minimum': 0}}, 'description': 'Simple ages; mapped to Bokun pricing categories.', 'additionalProperties': False}, 'start_time': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}$', 'description': 'HH:MM if start_time_id unknown.'}, 'start_time_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'date': {'type': 'string'}, 'reason': {'type': ['string', 'null']}, 'bokun_id': {'type': 'string'}, 'currency': {'type': 'string'}, 'from_price': {'type': 'number', 'minimum': 0}, 'quote_kind': {'type': 'string'}, 'rate_title': {'type': 'string'}, 'start_time': {'type': 'string'}, 'checkout_url': {'type': 'string', 'description': 'Checkout preset to this date, time, and travelers.'}, 'package_total': {'type': 'number', 'minimum': 0, 'description': 'Total for the whole group, before optional extras and promo codes.'}, 'promo_applied': {'type': 'boolean'}, 'min_participants': {'type': 'integer'}, 'travelers_priced': {'type': 'object', 'description': 'Traveler counts the total covers.', 'additionalProperties': {'type': 'integer'}}, 'bookable_natively': {'type': 'boolean'}, 'includes_required_extras': {'type': 'boolean'}, 'optional_extras_excluded': {'type': 'boolean'}}}
get_tour_details
Get tour details
Get the full details of one TripWays tour by bokun_id (the number in tripways.com/t/{id}): summary, itinerary stops, inclusions and exclusions, languages, cancellation policy, meeting point or pickup, from-price, rating, hero_image, url, and checkout_url. Live dates and group totals come from check_availability and get_price_quote.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['bokun_id'], 'properties': {'bokun_id': {'type': 'string', 'pattern': '^[0-9]+$'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'url': {'type': 'string', 'description': "The tour's TripWays page."}, 'title': {'type': 'string'}, 'rating': {'type': 'object', 'properties': {'count': {'type': 'integer'}, 'value': {'type': ['number', 'null']}, 'low_confidence': {'type': 'boolean', 'description': 'True when there are fewer than 10 reviews.'}}}, 'reason': {'type': ['string', 'null'], 'description': 'Why checkout works the way it does, e.g. pickup_required.'}, 'themes': {'type': 'array', 'items': {'type': 'string'}}, 'summary': {'type': 'string'}, 'bokun_id': {'type': 'string', 'description': 'Tour id; the number in tripways.com/t/{id}.'}, 'guidance': {'type': 'string'}, 'itinerary': {'type': 'array', 'items': {'type': 'object', 'properties': {'body': {'type': 'string'}, 'title': {'type': 'string'}, 'poi_name': {'type': 'string'}, 'stop_index': {'type': 'integer'}}}}, 'languages': {'type': 'array', 'items': {'type': 'string'}}, 'activities': {'type': 'array', 'items': {'type': 'string'}}, 'exclusions': {'type': 'array', 'items': {'type': 'string'}}, 'from_price': {'type': 'object', 'properties': {'amount': {'type': 'number', 'minimum': 0}, 'currency': {'type': 'string'}}, 'description': 'Lowest adult price.'}, 'hero_image': {'type': 'string', 'description': 'Main photo URL.'}, 'inclusions': {'type': 'array', 'items': {'type': 'string'}}, 'cancellation': {'type': 'string', 'description': 'free, flexible, partial, or non_refundable.'}, 'checkout_url': {'type': 'string', 'description': 'TripWays checkout for this tour.'}, 'destinations': {'type': 'array', 'items': {'type': 'string'}}, 'hotel_pickup': {'type': 'boolean'}, 'duration_text': {'type': 'string'}, 'gttd_eligible': {'type': 'boolean', 'description': 'Listed on Google Things to Do.'}, 'duration_hours': {'type': 'number'}, 'bookable_natively': {'type': 'boolean', 'description': 'True when checkout_url opens TripWays checkout; false when it opens the operator calendar.'}, 'meeting_pickup_label': {'type': 'string'}}}
search_tours
Search tours
Search the TripWays catalog of bookable tours, day trips, and activities worldwide. Pass a natural-language query plus any filters you already know: destination, price range in USD, duration in hours, activity, theme, or cancellation policy. Returns ranked tours with bokun_id, title, from-price, duration, destinations, rating, cancellation policy, hero_image, the TripWays page (url), and checkout_url. For live dates, remaining seats, or a group total, use check_availability and get_price_quote.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 2, 'description': "Natural-language search, e.g. 'family food tour in Rome under $100'."}, 'theme': {'type': 'string', 'maxLength': 60}, 'activity': {'type': 'string', 'maxLength': 60, 'description': 'Activity facet, e.g. food, hiking, snorkeling.'}, 'price_max': {'type': 'number', 'minimum': 0}, 'price_min': {'type': 'number', 'minimum': 0}, 'destination': {'type': 'string', 'maxLength': 120, 'description': 'Place name (city, region, country, or well-known area/landmark). Resolved against TripWays destinations; a landmark that is not a destination is added to the search text.'}, 'cancellation': {'enum': ['free', 'flexible', 'partial', 'non_refundable'], 'type': 'string'}, 'duration_hours_max': {'type': 'number', 'minimum': 0}, 'duration_hours_min': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean'}, 'note': {'type': 'string', 'description': 'Why the list is empty or how the destination was read.'}, 'tours': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': "The tour's TripWays page."}, 'title': {'type': 'string'}, 'rating': {'type': 'object', 'properties': {'count': {'type': 'integer'}, 'value': {'type': ['number', 'null']}, 'low_confidence': {'type': 'boolean', 'description': 'True when there are fewer than 10 reviews.'}}}, 'reason': {'type': ['string', 'null'], 'description': 'Why checkout works the way it does, e.g. pickup_required.'}, 'themes': {'type': 'array', 'items': {'type': 'string'}}, 'bokun_id': {'type': 'string', 'description': 'Tour id; the number in tripways.com/t/{id}.'}, 'activities': {'type': 'array', 'items': {'type': 'string'}}, 'from_price': {'type': 'object', 'properties': {'amount': {'type': 'number', 'minimum': 0}, 'currency': {'type': 'string'}}, 'description': 'Lowest adult price.'}, 'hero_image': {'type': 'string', 'description': 'Main photo URL.'}, 'cancellation': {'type': 'string', 'description': 'free, flexible, partial, or non_refundable.'}, 'checkout_url': {'type': 'string', 'description': 'TripWays checkout for this tour.'}, 'destinations': {'type': 'array', 'items': {'type': 'string'}}, 'hotel_pickup': {'type': 'boolean'}, 'duration_text': {'type': 'string'}, 'gttd_eligible': {'type': 'boolean', 'description': 'Listed on Google Things to Do.'}, 'duration_hours': {'type': 'number'}, 'bookable_natively': {'type': 'boolean', 'description': 'True when checkout_url opens TripWays checkout; false when it opens the operator calendar.'}}}, 'description': 'Ranked tours; empty when nothing matched (see note).'}, 'guidance': {'type': 'string'}, 'destination_resolved': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': "The destination's TripWays page."}, 'name': {'type': 'string'}, 'alias': {'type': 'string'}, 'level': {'type': 'string', 'description': 'country, region, city, or district.'}, 'hierarchy': {'type': 'array', 'items': {'type': 'string'}}, 'browseable': {'type': 'boolean'}, 'tour_count': {'type': 'integer'}, 'country_code': {'type': 'string'}, 'display_name': {'type': 'string'}, 'resolved_via': {'type': 'string', 'description': 'area_alias when a landmark maps to its parent destination.'}}}}}
Modifié
get_booking_link
1 October 2026 02:40
Modifié
get_price_quote
1 October 2026 02:40
Modifié
check_availability
1 October 2026 02:40
Modifié
get_destination_info
1 October 2026 02:40
Modifié
get_tour_details
1 October 2026 02:40
Modifié
search_tours
1 October 2026 02:40
Ajouté
get_booking_link
29 September 2026 02:40
Ajouté
get_price_quote
29 September 2026 02:40
Ajouté
check_availability
29 September 2026 02:40
Ajouté
get_destination_info
29 September 2026 02:40
Ajouté
get_tour_details
29 September 2026 02:40
Ajouté
search_tours
29 September 2026 02:40