MCPサーバー

TripWays

com.tripways/tours

この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.
読み取り専用 冪等
入力スキーマ
{'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}
出力スキーマ
{'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.
読み取り専用 冪等
入力スキーマ
{'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}
出力スキーマ
{'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.
読み取り専用 冪等
入力スキーマ
{'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}
出力スキーマ
{'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.
読み取り専用 冪等
入力スキーマ
{'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}
出力スキーマ
{'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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['bokun_id'], 'properties': {'bokun_id': {'type': 'string', 'pattern': '^[0-9]+$'}}, 'additionalProperties': False}
出力スキーマ
{'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.
読み取り専用 冪等
入力スキーマ
{'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}
出力スキーマ
{'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.'}}}}}
変更
get_booking_link
2026年10月1日2:40
変更
get_price_quote
2026年10月1日2:40
変更
check_availability
2026年10月1日2:40
変更
get_destination_info
2026年10月1日2:40
変更
get_tour_details
2026年10月1日2:40
変更
search_tours
2026年10月1日2:40
追加
get_booking_link
2026年9月29日2:40
追加
get_price_quote
2026年9月29日2:40
追加
check_availability
2026年9月29日2:40
追加
get_destination_info
2026年9月29日2:40
追加
get_tour_details
2026年9月29日2:40
追加
search_tours
2026年9月29日2:40