MCP 서버

TripWays

com.tripways/tours
커머스 및 리테일 여행 및 호스피탈리티 공개 · 연결 가능 MCP 2025-11-25

이 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 AM
변경됨
get_price_quote
2026년 10월 1일 2:40 AM
변경됨
check_availability
2026년 10월 1일 2:40 AM
변경됨
get_destination_info
2026년 10월 1일 2:40 AM
변경됨
get_tour_details
2026년 10월 1일 2:40 AM
변경됨
search_tours
2026년 10월 1일 2:40 AM
추가됨
get_booking_link
2026년 9월 29일 2:40 AM
추가됨
get_price_quote
2026년 9월 29일 2:40 AM
추가됨
check_availability
2026년 9월 29일 2:40 AM
추가됨
get_destination_info
2026년 9월 29일 2:40 AM
추가됨
get_tour_details
2026년 9월 29일 2:40 AM
추가됨
search_tours
2026년 9월 29일 2:40 AM