flight_tools_intro
ChatGPTOpen the flight search usage guide for finding flights, comparing airfares, and choosing the right flight tool. Returns the complete usage guide for these Trip.com-backed flight MCP tools: tool list, mandatory call order, parameter rules, and worked examples for common scenarios. Call this tool first if you are unsure which tool to use or how to construct a request.
flight_tools_intro
ChatGPTOpen the flight search usage guide for finding flights, comparing airfares, and choosing the right flight tool. Returns the complete usage guide for these Trip.com-backed flight MCP tools: tool list, mandatory call order, parameter rules, and worked examples for common scenarios. Call this tool first if you are unsure which tool to use or how to construct a request.
render_activities_list
ChatGPTRender a Trip.com card list from one to five unmodified structuredContent results returned by search_activities or search_attractions. selectedItems is required and is the only source of the final card selection and order. Select exactly ten unique products when at least ten are available across searchResults; otherwise select every available unique product, including an empty array when none are available. When linking a returned product, copy its tripUrl exactly, including every query parameter. Do not shorten, reconstruct, remove, or change URL parameters. Use URLs from the final render_activities_list result for the final response.
search_activities
ChatGPTUse this when the user wants Trip.com non-attraction experiences or broad things-to-do recommendations for a specific destination. Typical trigger words include things to do, what to do, tours, experiences, day trips, private guides, food tours, cooking classes, transport, transfers, cruises, wellness, water sports, passes, visa services, SIM cards, and eSIMs; supported examples include "things to do in Tokyo", "best food tours in Paris", "day trips from Bangkok", "Bali cooking class", "Singapore city pass", "Bangkok airport transfer", "Vietnam visa service", and "Japan eSIM for 7 days". PRODUCT BOUNDARY: This tool supports experiences, tours, transfers, and services involving or near a place, such as a Disney private guide tour, Louvre guided walking tour, Seine River dinner cruise, or Universal Studios transfer. It does not support attraction or POI recommendations, admission, entry, or tickets to a place; use search_attractions for those, such as Disney tickets, Louvre entry, Eiffel Tower admission, or Universal Studios entry. destination is required and accepts a city, region, or country. If it cannot be inferred, ask the user before calling. query is required: derive a concise localized activity-product keyword from the user's intent, and do not include the destination because the server adds it to the Trip.com list-page keyword. Optional dateRange supports startDate and endDate in YYYY-MM-DD format. category should be set only when the user clearly requests one schema-supported category and omitted for mixed-category results. Optional sortBy supports default, price_asc, price_desc, rating, or sales. Optional filters support minPrice, maxPrice, and today/tomorrow availability. Optional limit is 1 to 20 and defaults to 10. Unless the user explicitly requests fewer than ten results, request at least ten candidates. locale is also optional, and currency is derived from the resolved Trip.com site. Results may include the activity title, image, rating, review or booking counts, badges, price, and a Trip.com link. This is a data-only search tool and does not render UI. After all Activities and Attractions searches for the current user request are complete, call render_activities_list exactly once with the final unmodified structuredContent results. Before that render call, pass exactly ten unique selectedItems in the intended presentation order when at least ten unique candidates are available; otherwise select every available unique candidate, including an empty array when none are available. In the final user-facing response, provide exactly one numbered recommendation for every rendered card, using the same title and order as the cards; do not omit a rendered card, duplicate a recommendation, or mention any attraction or activity that is not rendered. Rating filters, free-cancellation filters, instant-confirmation filters, and booking actions are not supported. If results are empty, broaden the activity keyword or verify the destination; do not silently switch to search_attractions. When linking a returned product, copy its tripUrl exactly, including every query parameter. Do not shorten, reconstruct, remove, or change URL parameters. Use URLs from the final render_activities_list result for the final response.
search_attractions
ChatGPTUse this when the user wants Trip.com attractions, points of interest (POIs), or admission and ticket information for a specific destination. Typical trigger words include attractions, POIs, museums, landmarks, theme parks, observation decks, admission, entry, and tickets; supported examples include "top attractions in Tokyo", "best museums in Paris", "Disneyland tickets", "what to see in Rome", and "theme parks near Bangkok". PRODUCT BOUNDARY: This tool supports admission, entry, or tickets to a place, such as Disney tickets, Louvre entry, Eiffel Tower admission, or Universal Studios entry. It does not support broad "things to do" requests or experiences, tours, day trips, private guides, transfers, transport, cruises, food experiences, cooking classes, wellness, water activities, passes, SIM/eSIM products, or travel and visa services; use search_activities for those, such as a Disney private guide tour, Louvre guided walking tour, Seine River dinner cruise, or Universal Studios transfer. destination is required and accepts a city or region. If it cannot be inferred, ask the user before calling. query is required: derive a concise localized attraction or ticket keyword from the user's intent, and do not include the destination because the server adds it to the Trip.com list-page keyword. Optional sortBy supports popularity, rating, or bookings. Optional filters support today/tomorrow availability and the attractionTypes defined by the schema. Select this tool from the requested product intent before applying those filters; never route from an attractionTypes name alone. sightseeing_tours and boating_sailing are attraction-list classifications, not standalone tour or water-activity products. Optional limit is 1 to 20 and defaults to 10. Unless the user explicitly requests fewer than ten results, request at least ten candidates. locale is also optional. Results may include the attraction name, image, rating, review or booking counts, badges, price, open-status details, and a Trip.com link. This is a data-only search tool and does not render UI. After all Activities and Attractions searches for the current user request are complete, call render_activities_list exactly once with the final unmodified structuredContent results. Before that render call, pass exactly ten unique selectedItems in the intended presentation order when at least ten unique candidates are available; otherwise select every available unique candidate, including an empty array when none are available. In the final user-facing response, provide exactly one numbered recommendation for every rendered card, using the same title and order as the cards; do not omit a rendered card, duplicate a recommendation, or mention any attraction or activity that is not rendered. If results are empty, verify or broaden the attraction keyword and destination. Do not switch to search_activities unless the user actually wants a non-attraction product. When linking a returned product, copy its tripUrl exactly, including every query parameter. Do not shorten, reconstruct, remove, or change URL parameters. Use URLs from the final render_activities_list result for the final response.
search_cruises
ChatGPTUse this for Trip.com cruises. Typical trigger words include cruise, cruises, cruise ship, cruise vacation, cruise holiday, ocean cruise, river cruise, expedition cruise, sailings, voyages, cruise line names, and ship names; supported examples include "Alaska cruise in July", "7-night Caribbean cruise from Miami", "cruises from Singapore", "Royal Caribbean Japan cruise", "Mediterranean cruises", and "Spectrum of the Seas sailings". VAGUE REQUESTS: When the user only gives a vague vacation intent without any concrete cruise criteria, such as "I want to play in the water", "I want to go to sea", "a relaxing holiday", "a beach vacation", or "somewhere warm to relax", call this tool with no criteria to return popular cruises as inspiration. SPECIFIC REQUESTS: When the user names a date or month, a place or region, or a cruise line or ship, or explicitly asks about cruises or cruise sailings, call this tool with the matching parameters. PRODUCT BOUNDARY: This tool is the default for any cruise request and covers overnight voyages sold by cruise lines. Only when the user explicitly wants a short boat ride of a few hours, such as a dinner cruise, harbour or sightseeing boat ride, or ferry ticket (for example Seine River dinner cruise), use search_activities instead. All parameters are optional, and the server resolves names internally. Set destination to the region or place the cruise visits (for example Alaska, Mediterranean, Japan), departurePort to the embarkation city, cruiseLine and ship to names the user mentioned, departureDateRange for travel dates (a month becomes its first and last day), and nights for voyage length. Do not put the departure port into destination. Optional sortBy supports recommended, price_asc, price_desc, or rating. Optional limit is 1 to 10 and defaults to 6. Always pass locale as the language the user is writing in, even when the user does not ask for a language: a bare language tag (en, zh, ja, ko) unless the user names a country or market, then add that region (zh-TW for Taiwan, en-SG or zh-SG for Singapore, en-GB for the UK); the server fills in the region from the host otherwise. locale picks the Trip.com site, the result language and the currency. Results include the itinerary title, cruise line, ship, nights, departure port, ports of call, departure dates, from-price per person, ship rating, and a Trip.com link, and render as cruise cards. In the final response, summarize only the returned sailings, in the same order. If unmatchedFilters is not empty, tell the user which requested filter has no Trip.com sailing instead of inventing alternatives; if results are empty, suggest broadening dates, nights, or the departure port. Booking, cabin selection, and payment are not supported. When linking a returned sailing or the list page, copy its URL exactly, including every query parameter. Do not shorten, reconstruct, remove, or change URL parameters.
search_flights
ChatGPTUse this when the user wants real-time flight options for fixed-date travel, including "cheapest flight on this date" requests. This tool searches Trip.com inventory. Relative dates such as tomorrow or next Thursday count as fixed-date travel after resolving them to YYYYMMDD. Supports one-way and round-trip itineraries only. For multi-way requests, offer to search each leg as a separate one-way trip. Each segment is one real flight leg in itinerary order, not one origin-destination pair generated from alternatives. oneWay uses exactly 1 segment. roundTrip uses exactly 2 segments using the same locations in reverse directions. For multiple possible departure or arrival places on the same leg/date, keep them in the same segment by passing multiple departLocations and/or arriveLocations. Do not create extra segments for location alternatives. For example, "Shanghai or Beijing to Tokyo on 2026-04-15" is one segment with two departLocations and one arriveLocation; "Shanghai to Tokyo or Osaka" is one segment with one departLocation and two arriveLocations. Preserve the exact location granularity the user requested: if the user says a country/region such as Japan or Australia, pass that country/region name directly. Do not replace or expand a country/region with representative or inferred cities such as Tokyo, Osaka, or Sydney unless the user explicitly chose those cities. Do not use this for flexible, approximate, or range-based date searches; use search_low_price_flights_v2 for flexible dates whether or not the user says "cheap". Each segment needs departLocations, arriveLocations, and departDate in YYYYMMDD. Departure and arrival locations may be human-readable city, country/region, or airport names; the server resolves flight location codes internally. Optional filters include airline codes, cabin class, baggage allowance, and student fares.
search_flights
ChatGPTUse this when the user wants real-time flight options for fixed-date travel, including "cheapest flight on this date" requests. This tool searches Trip.com inventory. Relative dates such as tomorrow or next Thursday count as fixed-date travel after resolving them to YYYYMMDD. Supports one-way and round-trip itineraries only. For multi-way requests, offer to search each leg as a separate one-way trip. Each segment is one real flight leg in itinerary order, not one origin-destination pair generated from alternatives. oneWay uses exactly 1 segment. roundTrip uses exactly 2 segments using the same locations in reverse directions. Connection cities explicitly requested by the user are filters within the requested origin-to-destination journey, never additional segments. For example, "Shanghai to London via Tokyo" uses one Shanghai-to-London segment with filters.transferCities=["Tokyo"]; never split it into Shanghai-to-Tokyo and Tokyo-to-London segments. For multiple possible departure or arrival places on the same leg/date, keep them in the same segment by passing multiple departLocations and/or arriveLocations. Do not create extra segments for location alternatives. For example, "Shanghai or Beijing to Tokyo on 2026-04-15" is one segment with two departLocations and one arriveLocation; "Shanghai to Tokyo or Osaka" is one segment with one departLocation and two arriveLocations. Preserve the exact location granularity the user requested: if the user says a country/region such as Japan or Australia, pass that country/region name directly. Do not replace or expand a country/region with representative or inferred cities such as Tokyo, Osaka, or Sydney unless the user explicitly chose those cities. Do not use this for flexible, approximate, or range-based date searches; use search_low_price_flights_v2 for flexible dates whether or not the user says "cheap". Each segment needs departLocations, arriveLocations, and departDate in YYYYMMDD. Departure and arrival locations may be human-readable city, country/region, or airport names; the server resolves flight location codes internally. Optional filters include airline codes, cabin class, baggage allowance, student fares, and explicitly requested connection cities.
search_hotels
ChatGPTSearch hotels via the hulk searchHotels SOA endpoint. Call this tool only when the user wants to search hotels by poiName / landmark, cityName. REQUIRED: at least one of poiName or cityName MUST be provided. If the user has not given any of these, ASK A FOLLOW-UP QUESTION FIRST to obtain at least one — do NOT call this tool with all both empty. UNSUPPORTED CONSTRAINTS (hard block): star level, rating, price, guest/room counts, amenities, sorting, comparisons, cancellation policies, availability, booking, or any other non-date filter, suitability, or recommendation condition beyond POI or city. STRICT RULE: If the user request contains ANY unsupported constraint above, you MUST NOT call this tool — even if the user also provides a valid poiName / cityName. Respond ONLY that the current hotel tool supports searching by POI or city, and cannot apply the requested constraint. Do not provide workarounds, UI navigation, filter suggestions, search terms, or recommendations. DO NOT silently drop the unsupported constraint to call the tool anyway. Example refusals: user says "5-star hotels near Oriental Pearl Tower" → refuse (contains star filter); user says "hotels under $200 in Tokyo" → refuse (contains price filter); user says "Hilton Tokyo" or "Hilton hotels in Shanghai" → refuse (hotel-name / brand search is not supported, ask the user to provide a POI or city instead); REQUIRED: locale in IETF BCP-47 format (e.g. "en-US", "ja-JP", "zh-HK"). Infer it from the user site / preferred language. Returns hotels[] with metadata such as hid, name, city, cityName, distance, and optionally star/score. Returned star/score metadata MUST NOT be treated as supported filtering capability.
search_low_price_flights
ChatGPTSearch for available flights between cities. Supports one-way and round-trip flights. Use segments array: single element for one-way, two elements for round-trip.
search_low_price_flights_v2
ChatGPTUse this when the user wants low-price flight options for flexible-date itineraries. This tool searches Trip.com inventory and returns fare options users can compare and continue to book. The travel date should be flexible, approximate, or a date range such as "next month", "Golden Week", or "any cheap day in June". Do not use this for a specific departure day; use search_flights even when the user asks for the cheapest flight on an exact date. If the user gives no date or date range, ask for an exact departure date or a flexible date window before calling. If the user mixes exact-date and flexible-date alternatives, ask whether to run exact search, flexible-date search, or both separately. For ambiguous named holidays such as Golden Week, ask which market, year, or holiday window the user means before calling. Supports one-way and round-trip searches only. For multi-way requests, offer to search each leg as a separate one-way trip. Each segment needs one origin.name, one destination.name, and departureTimeRange in YYYY-MM-DD. Only accepts tripType, rawQuery, locale, and segments; filters such as cabin class, airline, direct/nonstop flights, baggage, student fares, or transfer cities are not supported. Still use this for flexible-date queries with unsupported filters, but omit those filters and explain the limitation. For one-way, the departureTimeRange span must be within one month; for round-trip, the overall span from the earliest outbound departure to the latest return departure must be within one month. For wider flexible windows, stay in the flexible-date path and ask the user to narrow the window or split it into multiple search_low_price_flights_v2 searches.
search_low_price_flights_v2
ChatGPTUse this when the user wants low-price flight options for flexible-date itineraries. This tool searches Trip.com inventory and returns fare options users can compare and continue to book. The travel date should be flexible, approximate, or a date range such as "next month", "Golden Week", or "any cheap day in June". Do not use this for a specific departure day; use search_flights even when the user asks for the cheapest flight on an exact date. If the user gives no date or date range, ask for an exact departure date or a flexible date window before calling. If the user mixes exact-date and flexible-date alternatives, ask whether to run exact search, flexible-date search, or both separately. For ambiguous named holidays such as Golden Week, ask which market, year, or holiday window the user means before calling. Supports one-way and round-trip searches only. For multi-way requests, offer to search each leg as a separate one-way trip. Each segment needs one origin.name, one destination.name, and departureTimeRange in YYYY-MM-DD. Only accepts tripType, rawQuery, locale, and segments; filters such as cabin class, airline, direct/nonstop flights, baggage, student fares, or transfer cities are not supported. Still use this for flexible-date queries with unsupported filters, but omit those filters and explain the limitation. For one-way, the departureTimeRange span must be within one month; for round-trip, the overall span from the earliest outbound departure to the latest return departure must be within one month. For wider flexible windows, stay in the flexible-date path and ask the user to narrow the window or split it into multiple search_low_price_flights_v2 searches.
search_package_tours
ChatGPTUse this to find Trip.com package tours, group or private, that bundle the itinerary, guide and transport, and often accommodation and attraction tickets; tours are typically multi-day. Whenever the user names an attraction, theme park, landmark, city or country to visit (for example Shanghai Disneyland, Universal Studios Japan, Mount Fuji or the Great Wall), call this tool in parallel with search_activities or search_attractions, passing that place as destination, because many package tours are built around it with tickets, guide and accommodation included. Also call it when the user wants a guide or guided visit, mentions their party (a family of three, a couple, friends), or asks for a package, a tour, how to visit a place or to plan a trip. Group tours cover tour packages, package holidays, escorted or guided tours, organized group trips, small-group tours, coach tours and all-inclusive tours. Private tours run only for the user's own party: private tours, custom, tailor-made or bespoke itineraries, and a private guide or private car with driver. Examples: "Shanghai Disneyland", "7-day Japan group tour", "5-day Bali tour package from Singapore", "private tour of Zhangjiajie with a driver", "tailor-made 10-day Egypt trip for our family", "Great Wall tour with a guide". Users may ask in any language or with local terms for joining a tour group or booking a private or custom tour; map those requests to these group and private tour concepts. Results are package tours that include the attraction, not standalone tickets. Provide destination (attraction, city, region, or country), origin (departure city name), or both; if neither can be inferred, ask the user before calling. Optional tourType is group, private, or any (default any mixes both); map phrasings as described on the parameter. Optional durationDays is the exact trip length in days (for example "a week" is 7, "5D4N" is 5); 15 means 15 or more days. Results come 10 per page; use page (1 to 10) for more. Each result lists availableDepartureCities; to filter by departure city, pass departureCityId from that list, or pass origin as a city name and it is matched against that list. Always pass locale as a BCP-47 tag matching the language the user is writing in, plus the region when known, even when the user does not ask for a language: Chinese with no known region zh-HK, Taiwan zh-TW, Singapore zh-SG or en-SG, Malaysia zh-MY or en-MY, Japanese ja-JP, Korean ko-KR, English en-US unless another English market is clear. locale picks the Trip.com site, the result language and the default currency (for example zh-HK uses hk.trip.com and HKD). Pass currency (ISO 4217, for example HKD) only when the user explicitly names a currency; it overrides the locale default currency. Prices are indicative "from" prices; the live Trip.com product page has the current price. Booking, payment, and guaranteed seat availability are not supported. When linking a returned tour, copy its tripUrl exactly, including every query parameter. Do not shorten, reconstruct, remove, or change URL parameters.
search_train_routes
ChatGPTSearch train routes between two stations or cities. Returns departure/arrival times, prices when available, journey duration, transfer information, and route options. Supports sorting by price or duration, and filtering by transfer count (direct only = 0, max 1 transfer = 1, or unlimited = -1) and earliest departure time of day (HH:mm:ss). Date defaults to tomorrow if omitted.
search_train_routes
ChatGPTSearch train routes between two stations or cities. Returns departure/arrival times, prices when available, journey duration, transfer information, and route options. Supports sorting by price or duration, and filtering by transfer count (direct only = 0, max 1 transfer = 1, or unlimited = -1) and earliest departure time of day (HH:mm:ss). Date defaults to tomorrow if omitted.