MCP 서버

mcp

com.trip1/mcp
여행 및 호스피탈리티 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Searches hotels, retrieves room rates and guest-review insights, and facilitates paid hotel bookings.

get_hotel_details
Get Hotel Details
Get rooms and rates for a hotel. Pass the hotel id from search_hotels results. Returns rate IDs needed for purchase_hotel. Each rate states its refundability and, when refundable, the cancellation deadline — quote these rather than inferring refund terms. When prices_changed is true, the price search_hotels quoted for this hotel is no longer the one on offer — tell the user prices changed rather than presenting these rates as the same quote.
외부 접근 가능 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The hotel id from search_hotels results'}, 'context': {'type': 'string', 'maxLength': 200, 'description': "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'star_rating', 'address', 'check_in', 'check_out', 'rooms', 'prices_changed'], 'properties': {'name': {'type': 'string'}, 'rooms': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'rates'], 'properties': {'name': {'type': ['string', 'null']}, 'rates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'board_type', 'price', 'currency', 'refundability', 'cancellation_deadline'], 'properties': {'id': {'type': 'string', 'description': 'Rate id to pass to purchase_hotel'}, 'price': {'type': 'number'}, 'currency': {'type': 'string'}, 'board_type': {'type': 'string'}, 'refundability': {'enum': ['fully_refundable', 'partially_refundable', 'non_refundable'], 'type': 'string'}, 'cancellation_deadline': {'type': ['string', 'null'], 'description': 'Free cancellation until this time for fully_refundable rates, partial refund until it for partially_refundable; null for non_refundable'}}}}}}}, 'address': {'type': ['string', 'null']}, 'check_in': {'type': 'string', 'description': 'Earliest check-in time, HH:MM'}, 'check_out': {'type': 'string', 'description': 'Latest check-out time, HH:MM'}, 'star_rating': {'type': 'integer'}, 'prices_changed': {'type': ['boolean', 'null'], 'description': 'true when these rates come from a different provider than the search_hotels quote; null when the search recorded no winner'}}}
get_order_details
Get Order Details
Get the current state of an order. Returns payment status, booking state, and item details. Poll until ready is true to confirm the booking is complete.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['cart_id'], 'properties': {'cart_id': {'type': 'string', 'description': 'The cart_id from purchase_hotel response'}, 'context': {'type': 'string', 'maxLength': 200, 'description': "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ready', 'cart_url', 'payment', 'booking'], 'properties': {'ready': {'type': 'boolean', 'description': 'true once payment settled and the booking is purchased — stop polling'}, 'booking': {'type': ['object', 'null'], 'required': ['state', 'booking_reference', 'contact', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['state', 'price'], 'properties': {'price': {'type': 'number'}, 'state': {'type': 'string'}, 'currency': {'type': 'string'}, 'room_name': {'type': 'string'}, 'hotel_name': {'type': 'string'}, 'provider_reference': {'type': 'string'}}}}, 'state': {'type': 'string'}, 'contact': {'type': ['object', 'null'], 'required': ['first_name', 'last_name', 'email'], 'properties': {'email': {'type': 'string'}, 'last_name': {'type': 'string'}, 'first_name': {'type': 'string'}}}, 'booking_reference': {'type': ['string', 'null']}}}, 'payment': {'type': ['object', 'null'], 'required': ['state', 'service', 'amount'], 'properties': {'state': {'type': 'string'}, 'amount': {'type': 'number'}, 'service': {'type': 'string'}, 'currency': {'type': 'string'}, 'transaction_hash': {'type': 'string'}}}, 'cart_url': {'type': 'string'}}}
purchase_hotel
Purchase Hotel
Book a hotel room by providing guest details and a rate ID from get_hotel_details. Creates a guest profile, adds the room to a cart, and initiates checkout. Returns a payment_url and an x402 payment challenge by default (USDC on Base). Set payment_service to 'coingate' to return a browser-based crypto payment URL instead. The booking is confirmed once payment settles; poll get_order_details to check status.
파괴적 작업 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['rate_id', 'first_name', 'last_name', 'email', 'phone'], 'properties': {'email': {'type': 'string', 'description': "Guest's email address"}, 'phone': {'type': 'string', 'description': "Guest's phone number (e.g., +44123456789)"}, 'title': {'enum': ['MR', 'MRS', 'MS', 'MISS'], 'type': 'string', 'description': "Guest's title: MR, MRS, MS, or MISS (default: MR)"}, 'context': {'type': 'string', 'maxLength': 200, 'description': "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."}, 'rate_id': {'type': 'string', 'description': 'Signed rate ID from get_hotel_details response'}, 'last_name': {'type': 'string', 'description': "Guest's last name"}, 'first_name': {'type': 'string', 'description': "Guest's first name"}, 'nationality': {'type': 'string', 'description': "Guest's nationality as ISO 3166-1 alpha-2 code (default: GB)"}, 'price_currency': {'type': 'string', 'description': 'Payment currency (default: USD for x402, EUR for coingate). Supported: EUR, USD, GBP, PLN, CZK, HUF, SEK, NOK, DKK'}, 'payment_service': {'enum': ['x402', 'coingate'], 'type': 'string', 'description': 'Payment method: x402 (USDC on Base, default) or coingate (browser-based crypto)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['cart_id', 'booking_reference', 'payment_url', 'message'], 'properties': {'cart_id': {'type': 'string', 'description': 'Pass to get_order_details to poll the booking'}, 'message': {'type': 'string', 'description': 'How to complete payment for the chosen payment_service'}, 'payment_url': {'type': ['string', 'null']}, 'booking_reference': {'type': ['string', 'null']}}}
search_hotels
Search Hotels
Search for available hotels by destination and dates. Returns a list of matching hotels with pricing, images, and booking links. Occupancy is fixed at 2 adults in one room and cannot be set. If the user asked for a different party size, tell them these prices are for 2 adults rather than presenting them as a quote for their group. Always include the hotel name, booking link, and image for each hotel in your response.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['destination', 'check_in', 'check_out'], 'properties': {'context': {'type': 'string', 'maxLength': 200, 'description': "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."}, 'sort_by': {'enum': ['relevance', 'price', 'rating', 'distance'], 'type': 'string', 'description': 'Sort results by: price, rating, distance, or relevance (default)'}, 'check_in': {'type': 'string', 'description': "Check-in date in YYYY-MM-DD format. Must be today or later in the destination's own timezone. Do not assume the current year — the server instructions state today's date; a past date is rejected, and the rejection tells you the destination's today."}, 'check_out': {'type': 'string', 'description': 'Check-out date in YYYY-MM-DD format. Must be after check_in.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort order: asc (default) or desc'}, 'destination': {'type': 'string', 'description': "Destination name (e.g., 'London', 'Paris, France', 'Vilnius')"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['total_results', 'hotels'], 'properties': {'hotels': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'star_rating', 'image_url', 'price', 'currency', 'booking_link'], 'properties': {'id': {'type': 'string', 'description': 'Hotel id to pass to get_hotel_details'}, 'name': {'type': 'string'}, 'price': {'type': 'number', 'description': 'Cheapest total stay price for 2 adults'}, 'currency': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'star_rating': {'type': 'integer'}, 'booking_link': {'type': 'string'}}}}, 'total_results': {'type': 'integer'}}}
삭제됨
ask_about_hotel
2026년 9월 29일 3:03 AM
추가됨
ask_about_hotel
2026년 9월 27일 2:54 AM
변경됨
get_order_details
2026년 9월 23일 2:54 AM
변경됨
purchase_hotel
2026년 9월 23일 2:54 AM
변경됨
get_hotel_details
2026년 9월 23일 2:54 AM
변경됨
search_hotels
2026년 9월 23일 2:54 AM
추가됨
get_order_details
2026년 9월 17일 12:38 PM
추가됨
purchase_hotel
2026년 9월 17일 12:38 PM
추가됨
get_hotel_details
2026년 9월 17일 12:38 PM
추가됨
search_hotels
2026년 9월 17일 12:38 PM