이 MCP로 할 수 있는 일
Searches award flights and hotels, tracks bookings and loyalty balances, evaluates points and credit cards, and monitors travel redemptions.
도구
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airline', 'origin', 'destination', 'departure_date', 'cabin_class'], 'properties': {'kind': {'enum': ['award', 'cash'], 'type': 'string', 'description': 'award = points/miles redemption (default); cash = paid with money. Defaults to award.'}, 'notes': {'type': 'string'}, 'origin': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'airline': {'type': 'string'}, 'program': {'type': 'string', 'description': 'Award bookings only. Loyalty program used.'}, 'trip_id': {'type': 'string', 'description': 'Optional UUID grouping legs of the same multi-leg booking. Generate once and reuse for all legs. Omit for single-leg bookings.'}, 'cash_paid': {'type': 'number', 'minimum': 0, 'description': 'Cash bookings only. Total cash fare paid for this leg, in taxes_currency (default USD).'}, 'passengers': {'type': 'integer', 'minimum': 1}, 'taxes_paid': {'type': 'number'}, 'cabin_class': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'destination': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'return_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'points_spent': {'type': 'integer', 'minimum': 0, 'description': 'Award bookings only. Total points for this leg. Use 0 for connecting legs — put the full booking cost on the first leg only.'}, 'flight_number': {'type': 'string'}, 'departure_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'taxes_currency': {'type': 'string', 'description': 'Currency for taxes_paid and cash_paid. Defaults to USD.'}, 'workspace_trip_id': {'type': 'integer', 'description': 'Optional id of a workspace Trip (from create_trip / list_trips) to file this flight under, so it shows grouped with the matching hotels. Distinct from trip_id, which only chains multi-leg legs.'}, 'confirmation_number': {'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['hotel_id', 'check_in_date', 'check_out_date'], 'properties': {'kind': {'enum': ['award', 'cash'], 'type': 'string', 'description': 'award = points stay with price-drop monitoring (default); cash = paid with money. Defaults to award.'}, 'notes': {'type': 'string'}, 'trip_id': {'type': 'integer', 'description': 'Optional id of a workspace Trip (from create_trip / list_trips) to file this stay under.'}, 'hotel_id': {'type': 'string', 'description': 'Hotel identifier from search_hotels / get_hotel_availability results.'}, 'rate_plan': {'type': 'string'}, 'room_type': {'type': 'string'}, 'check_in_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'check_out_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'original_points': {'type': 'integer', 'minimum': 1, 'description': 'Award bookings only. Total points paid for the stay.'}, 'cash_rate_currency': {'type': 'string', 'description': 'Currency of original_pay_rate_usd. Defaults to USD.'}, 'confirmation_number': {'type': 'string'}, 'original_pay_rate_usd': {'type': 'number', 'minimum': 0, 'description': 'Cash rate paid for the stay (required for cash bookings; optional cash-equivalent for award bookings).'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['voucher_slug'], 'properties': {'notes': {'type': 'string'}, 'reference': {'type': 'string', 'description': 'Voucher code or membership reference.'}, 'expires_on': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Voucher expiry date (YYYY-MM-DD).'}, 'voucher_slug': {'type': 'string', 'description': "Slug from list_voucher_types, e.g. 'ba-amex-premium-plus-companion'."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['voucher_id'], 'properties': {'booking_id': {'type': 'integer', 'minimum': 1, 'description': 'ID of the booking to apply the voucher to. Omit to detach.'}, 'voucher_id': {'type': 'integer', 'minimum': 1, 'description': "ID of the user's voucher (from list_my_vouchers)."}, 'booking_type': {'enum': ['flight', 'hotel'], 'type': 'string', 'description': 'Whether booking_id refers to a flight redemption or a hotel booking.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['trip_id'], 'properties': {'trip_id': {'type': 'integer', 'description': 'Target workspace Trip id.'}, 'hotel_booking_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Hotel booking ids to file under the trip.'}, 'flight_booking_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Flight redemption ids to file under the trip.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['chain', 'folio_text'], 'properties': {'chain': {'enum': ['marriott', 'hilton', 'hyatt', 'ihg'], 'type': 'string'}, 'stay_type': {'enum': ['award', 'cash', 'points_advance'], 'type': 'string'}, 'folio_text': {'type': 'string'}, 'status_tier': {'type': 'string'}, 'confirmation_number': {'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['folio_text'], 'properties': {'stay_type': {'enum': ['award', 'cash', 'points_advance'], 'type': 'string'}, 'folio_text': {'type': 'string'}, 'status_tier': {'enum': ['member', 'silver', 'gold', 'platinum', 'titanium', 'ambassador'], 'type': 'string'}, 'confirmation_number': {'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['origin', 'destination', 'program'], 'properties': {'cabin': {'type': 'string', 'default': 'economy', 'description': 'Cabin: economy, premium, business, or first.'}, 'origin': {'type': 'string', 'description': "Origin airport IATA code, e.g. 'LHR'."}, 'program': {'type': 'string', 'description': "Qualifying program slug: 'british-airways-executive-club', 'air-france-klm-flying-blue', or 'american-aadvantage'."}, 'segments': {'type': 'integer', 'minimum': 1, 'description': 'Number of flight segments/legs (multiplies Flying Blue XP). Default 1.'}, 'fare_price': {'type': 'number', 'description': 'Fare price for revenue-based programs (BA Tier Points, AA Loyalty Points). Base fare + carrier surcharges, excluding taxes.'}, 'destination': {'type': 'string', 'description': "Destination airport IATA code, e.g. 'JFK'."}, 'fare_currency': {'type': 'string', 'description': "ISO currency of fare_price (e.g. GBP, USD, EUR). Defaults to the program's home currency."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['monitor_id'], 'properties': {'monitor_id': {'type': 'integer'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['standing_order_id'], 'properties': {'standing_order_id': {'type': 'integer'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['monthly_spending'], 'properties': {'limit': {'type': 'number', 'description': 'Max cards to return (default 10).'}, 'region': {'enum': ['US', 'UK', 'AU', 'DE', 'FR', 'IT', 'ES', 'NL'], 'type': 'string', 'description': 'Region of cards to evaluate. Defaults to US.'}, 'card_type': {'enum': ['personal', 'business'], 'type': 'string'}, 'monthly_spending': {'type': 'array', 'items': {'type': 'object', 'required': ['category', 'amount'], 'properties': {'amount': {'type': 'number'}, 'category': {'type': 'string'}}}, 'description': "Array of {category, amount} for the user's typical monthly spend. Amounts in the local currency of the chosen region."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 4, 'minItems': 2, 'description': 'Card ids to compare, e.g. ["amex-gold-us", "chase-sapphire-preferred"].'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['category'], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default 10).'}, 'region': {'enum': ['US', 'UK', 'AU', 'DE', 'FR', 'IT', 'ES', 'NL'], 'type': 'string'}, 'category': {'type': 'string', 'description': 'Spend category — supports UK/AU terms like "petrol", "chemist", "woolworths".'}, 'card_type': {'enum': ['personal', 'business'], 'type': 'string'}, 'min_multiplier': {'type': 'number', 'description': 'Only return cards at or above this multiplier.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['partner_name'], 'properties': {'region': {'enum': ['US', 'UK', 'AU', 'DE', 'FR', 'IT', 'ES', 'NL'], 'type': 'string', 'description': 'Filter to programs from a specific region.'}, 'partner_name': {'type': 'string', 'description': 'Airline or hotel name, e.g. "Qantas", "Virgin Atlantic", "Hyatt".'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Card id, e.g. "amex-gold-us". Use list_cards to discover ids.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'region': {'enum': ['US', 'UK', 'AU', 'DE', 'FR', 'IT', 'ES', 'NL'], 'type': 'string', 'description': 'Filter by region/country.'}, 'provider': {'enum': ['amex', 'chase', 'bilt', 'capital-one', 'anz', 'nab', 'westpac', 'cba', 'barclaycard', 'hsbc', 'virgin-money', 'lloyds', 'currensea', 'yonder', 'other'], 'type': 'string', 'description': 'Filter by issuer.'}, 'card_type': {'enum': ['personal', 'business'], 'type': 'string', 'description': 'Filter by personal vs business.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'days': {'type': 'number', 'description': 'Look back this many days (default 30).'}, 'limit': {'type': 'number', 'description': 'Max results (default 50).'}, 'card_id': {'type': 'string', 'description': 'Filter to changes for one card.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'region': {'enum': ['US', 'UK', 'AU', 'DE', 'FR', 'IT', 'ES', 'NL'], 'type': 'string', 'description': 'Filter to programs from a specific region.'}, 'provider': {'type': 'string', 'description': 'Filter to one provider, e.g. "amex" or "anz".'}, 'partner_type': {'enum': ['airline', 'hotel'], 'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'number', 'description': 'Max results (default 20).'}, 'region': {'enum': ['US', 'UK', 'AU', 'DE', 'FR', 'IT', 'ES', 'NL'], 'type': 'string'}, 'card_type': {'enum': ['personal', 'business'], 'type': 'string'}, 'min_value': {'type': 'number', 'description': 'Minimum bonus point/mile value.'}, 'monthly_spend': {'type': 'number', 'description': "Monthly spend in the card's local currency. If provided, only includes bonuses where required spend ≤ monthly_spend × months."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['target_program', 'points_needed'], 'properties': {'points_needed': {'type': 'integer', 'minimum': 1, 'description': 'How many target-program points the redemption costs'}, 'target_program': {'type': 'string', 'description': "The program you need points in (e.g. 'Asia Miles', 'Avios', 'Aeroplan', 'Virgin Points')"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['provider'], 'properties': {'provider': {'enum': ['seats_aero', 'award_wallet', 'google_sheets', 'tripit', 'autopilot'], 'type': 'string', 'description': 'Which integration to connect'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['origin', 'destination', 'earliest_date', 'latest_date'], 'properties': {'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'origin': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'airlines': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional airline filter; omit to watch all supported carriers'}, 'max_points': {'type': 'integer', 'description': 'Only fire when points <= this cap'}, 'passengers': {'type': 'integer', 'maximum': 9, 'minimum': 1}, 'destination': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'latest_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'earliest_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'description': 'The self-contained instruction to run each time. No conversation context is carried over.'}, 'cadence': {'enum': ['daily', 'weekly'], 'type': 'string', 'description': 'Defaults to weekly.'}, 'trip_id': {'type': 'integer', 'description': 'Optional trip to file this order under.'}, 'run_hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'Hour of day in UTC to run. Defaults to 7.'}, 'run_weekday': {'type': 'integer', 'maximum': 6, 'minimum': 0, 'description': '0=Sunday … 6=Saturday. Weekly cadence only. Defaults to Monday (1).'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': "Trip name, e.g. 'Tokyo with the family'"}, 'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'destination': {'type': 'string', 'description': 'Primary destination (city or airport)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['booking_id'], 'properties': {'booking_id': {'type': 'integer', 'minimum': 1}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['booking_id'], 'properties': {'booking_id': {'type': 'integer', 'minimum': 1}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['visit_id'], 'properties': {'visit_id': {'type': 'integer', 'description': 'Id of the logged visit, from list_lounge_visits.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program'], 'properties': {'program': {'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program'], 'properties': {'program': {'type': 'string', 'description': 'Loyalty program name to remove (as shown by list_points_balances)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['trip_id'], 'properties': {'trip_id': {'type': 'integer', 'description': 'Trip id to remove. Use list_trips to find it.'}, 'permanently': {'type': 'boolean', 'description': 'Delete the trip and its itinerary for good instead of archiving. Defaults to false.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['voucher_id'], 'properties': {'voucher_id': {'type': 'integer', 'minimum': 1}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['provider'], 'properties': {'provider': {'enum': ['seats_aero', 'award_wallet', 'google_sheets', 'tripit', 'autopilot'], 'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'city': {'type': 'string', 'description': "City name to search (e.g. 'Tokyo', 'Maldives'). Optional — omit to list all premium hotels."}, 'program': {'enum': ['any', 'amex_fhr', 'amex_thc', 'chase_edit'], 'type': 'string', 'description': 'Filter by program. Default: any.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['from_program', 'target_program'], 'properties': {'max_hops': {'type': 'integer', 'maximum': 3, 'minimum': 1, 'description': 'Max transfer steps to consider (default 3)'}, 'from_program': {'type': 'string', 'description': "Program you have points in (e.g. 'Amex Membership Rewards', 'Chase', 'Marriott Bonvoy')"}, 'points_needed': {'type': 'integer', 'minimum': 1, 'description': 'Optional: how many target-program points you need. Returns source points required per route.'}, 'target_program': {'type': 'string', 'description': "Program you want points in (e.g. 'American Airlines AAdvantage', 'Alaska', 'Avios')"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number', 'flight_date', 'cabin_class', 'seat_preference'], 'properties': {'cabin_class': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string', 'description': 'Cabin class to monitor'}, 'flight_date': {'type': 'string', 'description': 'Flight date in YYYY-MM-DD format. Must be today or within the next 60 days.'}, 'flight_number': {'type': 'string', 'description': "Flight number, e.g. 'QF1', 'AA716'"}, 'specific_seat': {'type': 'string', 'description': "Required when seat_preference is 'specific' (e.g. '12A')"}, 'seat_preference': {'enum': ['window', 'aisle', 'bulkhead', 'exit_row', 'extra_legroom', 'quiet_zone', 'front_of_cabin', 'rear_of_cabin', 'specific', 'adjacent_seats', 'minimum_seats', 'class_availability', 'better_seat_upgrade'], 'type': 'string', 'description': 'Seat preference to alert on'}, 'adjacent_seats_count': {'type': 'integer', 'maximum': 9, 'minimum': 2, 'description': "Required when seat_preference is 'adjacent_seats' or 'minimum_seats' (2-9)"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['alert_id'], 'properties': {'alert_id': {'type': 'integer', 'description': 'ID of the seat alert to delete'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number', 'preferences'], 'properties': {'cabin_class': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string', 'description': 'Optional cabin class filter'}, 'flight_date': {'type': 'string', 'description': 'Optional flight date in YYYY-MM-DD format'}, 'preferences': {'type': 'array', 'items': {'enum': ['window', 'aisle', 'extra_legroom', 'exit_row', 'quiet_zone', 'front', 'rear', 'bulkhead'], 'type': 'string'}, 'description': 'Seat preferences to match'}, 'flight_number': {'type': 'string', 'description': "Flight number, e.g. 'QF1'"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number', 'seat_number'], 'properties': {'flight_date': {'type': 'string', 'description': 'Optional flight date in YYYY-MM-DD format'}, 'seat_number': {'type': 'string', 'description': "Seat number, e.g. '12A', '1F', '32K'"}, 'flight_number': {'type': 'string', 'description': "Flight number, e.g. 'QF1'"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number'], 'properties': {'flight_date': {'type': 'string', 'description': 'Optional flight date in YYYY-MM-DD format'}, 'flight_number': {'type': 'string', 'description': "Flight number including airline code, e.g. 'QF1', 'AA716', 'BA178'"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number'], 'properties': {'seat_number': {'type': 'string', 'description': "Optional seat number to filter reviews (e.g. '12A')"}, 'flight_number': {'type': 'string', 'description': "Flight number, e.g. 'QF1'"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number'], 'properties': {'flight_date': {'type': 'string', 'description': 'Optional flight date in YYYY-MM-DD format'}, 'flight_number': {'type': 'string', 'description': "Flight number, e.g. 'QF1', 'AA716'"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number'], 'properties': {'flight_date': {'type': 'string', 'description': 'Flight date in YYYY-MM-DD format (defaults to today)'}, 'flight_number': {'type': 'string', 'description': "Flight number, e.g. 'QF1', 'AA716'"}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program'], 'properties': {'program': {'type': 'string', 'description': "Programme slug or loose name, e.g. 'aeroplan', 'British Airways', 'avios', 'world-of-hyatt'."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airline'], 'properties': {'airline': {'type': 'string', 'description': "IATA code (e.g. 'BA') or carrier name (e.g. 'British Airways')."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['trip_id'], 'properties': {'trip_id': {'type': 'string', 'description': 'The `trip_id` field from an award search result row'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'program': {'type': 'string', 'description': 'Program slug. Omit to list all available programs.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of points/miles to price (e.g. 50000).'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airline'], 'properties': {'airline': {'type': 'string', 'description': "Airline slug or name, e.g. 'british-airways', 'Qatar Airways', 'virgin'."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program', 'airline'], 'properties': {'airline': {'type': 'string', 'pattern': '^[A-Z0-9]{2}$', 'description': 'Operating airline IATA code (e.g. AA, BA, QR)'}, 'program': {'enum': ['british-airways', 'aeroplan', 'alaska', 'american-aadvantage', 'virgin-atlantic', 'flying-blue'], 'type': 'string', 'description': 'Loyalty program to credit to'}, 'fare_class': {'type': 'string', 'description': 'Optional booking class letter (e.g. K, M, Y). If omitted, returns the full table for that program×airline.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['booking_id'], 'properties': {'booking_id': {'type': 'integer', 'minimum': 1}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['hotel_code', 'check_in_date', 'check_out_date'], 'properties': {'hotel_code': {'type': 'string', 'description': 'Hotel code or numeric id from search_hotels'}, 'check_in_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'check_out_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['booking_id'], 'properties': {'booking_id': {'type': 'integer', 'minimum': 1}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['carrier', 'departure', 'destination'], 'properties': {'carrier': {'type': 'string', 'description': 'Operating airline IATA code (2 letters, e.g. KE for Korean Air, AF for Air France).'}, 'departure': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Origin airport IATA code (e.g. ICN).'}, 'destination': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Destination airport IATA code (e.g. LAX).'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'description': 'Points/miles currency — a slug (chase-ultimate-rewards) or loose name ("amex points", "marriott", "hyatt").'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airline', 'departure_code', 'arrival_code'], 'properties': {'airline': {'enum': ['british_airways', 'qatar_airways', 'cathay_pacific', 'virgin_atlantic', 'iberia', 'emirates', 'qantas'], 'type': 'string'}, 'arrival_code': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'departure_code': {'type': 'string', 'pattern': '^[A-Z]{3}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program'], 'properties': {'program': {'enum': ['aeroplan', 'aadvantage', 'singapore-krisflyer', 'cathay-asia-miles', 'turkish-miles-smiles', 'ana-mileage-club'], 'type': 'string', 'description': 'Programme slug.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program'], 'properties': {'program': {'enum': ['british-airways', 'qatar-airways', 'singapore-airlines', 'cathay-pacific', 'emirates', 'etihad', 'flying-blue', 'aeroplan', 'turkish-airlines', 'ana', 'jetblue', 'jet2-emirates', 'virgin-atlantic', 'iberia', 'alaska-airlines', 'american-airlines', 'qantas', 'delta-skymiles', 'united', 'lifemiles', 'marriott-bonvoy', 'hilton-honors', 'hyatt'], 'type': 'string', 'description': 'Loyalty program slug (e.g. british-airways, emirates, aeroplan)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'Skill key from list_skills'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'alliance': {'enum': ['SkyTeam', 'Star Alliance', 'oneworld'], 'type': 'string', 'description': 'Filter by airline alliance'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'program': {'type': 'string', 'description': 'Optional — limit to a single program slug. Omit to return all tracked statuses.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_number'], 'properties': {'origin': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Optional departure airport IATA code'}, 'destination': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Optional arrival airport IATA code'}, 'flight_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional departure date'}, 'flight_number': {'type': 'string', 'pattern': '^[A-Za-z0-9]{2,3}\\s*\\d{1,4}$', 'description': 'Flight code such as BA117 or AA 100'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number (1-indexed). Defaults to 1.'}, 'status': {'enum': ['all', 'active', 'paused', 'cancelled', 'fired'], 'type': 'string'}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Items per page (default 20, max 100).'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'include_inactive': {'type': 'boolean', 'description': 'Include cancelled/paused orders. Defaults to false.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'status': {'enum': ['all', 'active', 'archived', 'planning', 'booked', 'completed'], 'type': 'string', 'description': 'Filter by status (default: all)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'region': {'enum': ['UK', 'US'], 'type': 'string', 'description': 'Filter by issuer region.'}, 'category': {'enum': ['companion', 'upgrade', 'companion_pass', 'upgrade_cert'], 'type': 'string', 'description': 'Filter by voucher category.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airport_code', 'lounge_name', 'visit_date'], 'properties': {'notes': {'type': 'string', 'description': 'Optional notes'}, 'rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Optional 1-5 rating'}, 'visit_date': {'type': 'string', 'description': 'Date of the visit (YYYY-MM-DD)'}, 'lounge_name': {'type': 'string', 'description': 'Lounge name, e.g. Qantas First Lounge'}, 'airport_code': {'type': 'string', 'description': 'Airport IATA code, e.g. LHR'}, 'access_method': {'type': 'string', 'description': 'How you got in, e.g. Priority Pass, Amex Platinum, business ticket'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['flight_code'], 'properties': {'flight_code': {'type': 'string', 'description': "A flight code like 'BA117', 'AA 1234', or 'EK521'."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lounge_slug'], 'properties': {'lounge_slug': {'type': 'string', 'description': 'Lounge slug (from search results)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lounge_slug'], 'properties': {'lounge_slug': {'type': 'string', 'description': 'Lounge slug of the review to delete'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lounge_slug'], 'properties': {'visited_at': {'type': 'string', 'format': 'date', 'description': 'Visit date (YYYY-MM-DD) — needed only to disambiguate multiple visits'}, 'lounge_slug': {'type': 'string', 'description': 'Lounge slug of the visit to delete'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['access_method'], 'properties': {'access_method': {'enum': ['amex-platinum', 'chase-sapphire-reserve', 'capital-one-venture-x', 'citi-prestige', 'amex-centurion', 'hilton-aspire', 'marriott-brilliant', 'ritz-carlton', 'bilt-mastercard', 'priority-pass', 'loungekey', 'dragonpass', 'diners-club', 'plaza-premium', 'business-class', 'first-class', 'united-club', 'delta-sky-club', 'admirals-club', 'qantas-club', 'star-alliance', 'oneworld', 'skyteam', 'star-alliance-gold', 'oneworld-emerald', 'oneworld-sapphire', 'skyteam-elite-plus'], 'type': 'string', 'description': 'Access method slug (e.g. amex-platinum, priority-pass, chase-sapphire-reserve, business-class, star-alliance-gold)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['iata'], 'properties': {'iata': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Airport IATA code (e.g. LHR, JFK, SIN)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Lounge slug (from search results or airport lounges)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'description': 'Max reviews to return (default 20, max 50)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'description': 'Max visits to return (default 20, max 50)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['network'], 'properties': {'network': {'enum': ['priority-pass', 'loungekey', 'dragonpass', 'plaza-premium', 'amex-centurion'], 'type': 'string', 'description': 'Network slug (priority-pass, loungekey, dragonpass, plaza-premium, amex-centurion)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['visited_at'], 'properties': {'notes': {'type': 'string', 'description': 'Optional notes about your visit'}, 'rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Your rating, 1 (poor) to 5 (excellent)'}, 'visited_at': {'type': 'string', 'format': 'date', 'description': 'Date of visit (YYYY-MM-DD)'}, 'lounge_name': {'type': 'string', 'description': "Lounge name — use with airport_iata if you don't have the slug."}, 'lounge_slug': {'type': 'string', 'description': 'Lounge slug (from search results). Preferred if known.'}, 'airport_iata': {'type': 'string', 'description': '3-letter airport IATA code — use with lounge_name.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lounge_slug'], 'properties': {'lounge_slug': {'type': 'string', 'description': 'Lounge slug (from search results)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 2, 'description': 'Search query (lounge name, airport name, IATA code, city, or country)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lounge_slug'], 'properties': {'rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'New rating, 1-5'}, 'content': {'type': 'string', 'minLength': 10, 'description': 'New review text (minimum 10 characters)'}, 'lounge_slug': {'type': 'string', 'description': 'Lounge slug of the review to update'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lounge_slug'], 'properties': {'notes': {'type': 'string', 'description': 'New notes'}, 'rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'New rating, 1-5'}, 'visited_at': {'type': 'string', 'format': 'date', 'description': 'Existing visit date (YYYY-MM-DD) — needed only to disambiguate multiple visits'}, 'lounge_slug': {'type': 'string', 'description': 'Lounge slug of the visit to update'}, 'new_visited_at': {'type': 'string', 'format': 'date', 'description': 'Change the visit date to this (YYYY-MM-DD)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lounge_slug', 'rating', 'content'], 'properties': {'rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Rating from 1 (poor) to 5 (excellent)'}, 'content': {'type': 'string', 'minLength': 10, 'description': 'Review text (minimum 10 characters)'}, 'lounge_slug': {'type': 'string', 'description': 'Lounge slug (from search results)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['hotel_code', 'check_in_date', 'check_out_date', 'original_points', 'room_type', 'rate_plan'], 'properties': {'notes': {'type': 'string'}, 'rate_plan': {'type': 'string'}, 'room_type': {'type': 'string'}, 'hotel_code': {'type': 'string', 'description': 'Hotel code or numeric id from search_hotels'}, 'check_in_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'check_out_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'original_points': {'type': 'integer', 'minimum': 1, 'description': 'TOTAL points cost (per-night rate x nights)'}, 'confirmation_number': {'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['origin', 'destination', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'origin': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'passengers': {'type': 'integer', 'maximum': 9, 'minimum': 1}, 'destination': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'flexibility_days': {'type': 'integer', 'maximum': 14, 'minimum': 0, 'description': 'Optional ± days flexibility — if set, also probes adjacent dates'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['origin', 'destination', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'origin': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'passengers': {'type': 'integer', 'maximum': 9, 'minimum': 1}, 'destination': {'type': 'string', 'pattern': '^[A-Z]{3}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['target_program'], 'properties': {'target_tier': {'type': 'string', 'description': "Optional target tier (e.g. 'Gold'). Defaults to the next tier above the user's current one, or the top tier."}, 'target_program': {'type': 'string', 'description': "Program slug to reach status with — e.g. 'qatar-privilege-club', 'british-airways-executive-club'."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['blocks'], 'properties': {'title': {'type': 'string', 'description': 'Card heading, e.g. "SFO → NRT in business".'}, 'blocks': {'type': 'array', 'items': {'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['stats', 'table', 'bars', 'steps', 'list', 'note'], 'type': 'string', 'description': 'Block kind.'}, 'rows': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'string'}}, 'description': 'table: rows of cell strings.'}, 'text': {'type': 'string', 'description': 'note: the callout body.'}, 'tone': {'enum': ['info', 'warn', 'success', 'danger'], 'type': 'string', 'description': 'note: callout tone.'}, 'unit': {'type': 'string', 'description': 'bars: unit shown after each value, e.g. "pts".'}, 'items': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Rows for stats/bars/steps/list. Objects whose keys depend on the kind.'}, 'caption': {'type': 'string', 'description': 'table: optional caption under the table.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'table: column headers.'}}}, 'description': 'Blocks to render, in order. Max 10.'}, 'subtitle': {'type': 'string', 'description': 'One-line context under the heading.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['departure_code', 'arrival_code', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Travel date (YYYY-MM-DD)'}, 'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string', 'description': 'Cabin to unlock and rank by (default: economy). Results list EVERY bookable cabin the airline returned, not just this one — free accounts may only request economy.'}, 'flex_days': {'type': 'integer', 'maximum': 7, 'minimum': 0, 'description': 'Also search this many days either side of the date. Only widens the seats.aero results (all 24 programmes); the per-airline search stays on the exact date.'}, 'arrival_code': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'Arrival airport IATA code (e.g. JFK)'}, 'departure_code': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'Departure airport IATA code (e.g. LHR)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airline', 'departure_code', 'arrival_code', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string', 'description': 'Cabin to unlock and rank by (default: economy). Results list EVERY bookable cabin the airline returned, not just this one — free accounts may only request economy.'}, 'airline': {'enum': ['british_airways', 'qatar_airways', 'cathay_pacific', 'virgin_atlantic', 'iberia', 'alaska_airlines', 'american_airlines', 'qantas', 'jetblue', 'frontier', 'southwest', 'delta', 'etihad', 'emirates', 'japan_airlines', 'united', 'tap_portugal', 'cape_air', 'icelandair', 'condor', 'aer_lingus', 'el_al', 'turkish_airlines', 'ana', 'lufthansa', 'air_france', 'klm', 'smiles', 'qantas_rewards', 'alaska_direct'], 'type': 'string'}, 'arrival_code': {'type': 'string', 'description': 'IATA code (SIN), or a city or airport name'}, 'departure_code': {'type': 'string', 'description': 'IATA code (LHR), or a city or airport name (Heathrow, Tokyo)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['origin', 'destination', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'origin': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'source': {'enum': ['auto', 'duffel', 'ignav', 'airtrfx'], 'type': 'string', 'description': "Default 'auto' tries Duffel, then Ignav, then AirTRFX. Force one with 'duffel', 'ignav' or 'airtrfx'."}, 'airline': {'type': 'string', 'description': "Airline slug for the 'airtrfx' source (e.g. 'american', 'klm'). AirTRFX is per-airline, so this is required to use it."}, 'passengers': {'type': 'integer', 'maximum': 9, 'minimum': 1}, 'destination': {'type': 'string', 'pattern': '^[A-Z]{3}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'brand': {'enum': ['Marriott', 'Hilton', 'IHG', 'Hyatt'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Hotel name or city'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['origin', 'destination', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'cabin': {'enum': ['economy', 'business', 'first'], 'type': 'string', 'description': 'Target cabin class (default: business)'}, 'origin': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'destination': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'points_value_cents': {'type': 'number', 'description': 'How you value points in cents/pence per point (default: 1.5)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'How many excerpts to return (default 5)'}, 'query': {'type': 'string', 'description': "Natural-language question or topic, e.g. 'best Avios redemption sweet spots from London'"}, 'source': {'enum': ['miles_and_points_daily', 'smart_with_points'], 'type': 'string', 'description': 'Restrict to one publication. Omit to search both.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'card': {'type': 'string', 'description': "Filter to a specific card by name (e.g. 'Amex Gold'). Optional."}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max entries to return (default 20).'}, 'query': {'type': 'string', 'description': "Merchant, card, or category to search for (e.g. 'Whole Foods', 'Amex Gold', 'Dining'). Optional."}, 'country': {'type': 'string', 'description': "Two-letter country code to filter by (e.g. 'US', 'UK'). Optional."}, 'category': {'type': 'string', 'description': "Filter to a bonus category (e.g. 'Groceries', 'Dining'). Optional."}, 'min_multiplier': {'type': 'number', 'description': 'Only return entries earning at least this multiplier (e.g. 4 for 4x and up). Optional.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airline', 'departure_code', 'arrival_code', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}(-\\d{2})?$', 'description': 'Month to search (YYYY-MM or YYYY-MM-DD)'}, 'airline': {'enum': ['british_airways', 'qatar_airways', 'cathay_pacific', 'virgin_atlantic', 'iberia', 'qantas', 'qantas_rewards', 'etihad', 'smiles'], 'type': 'string'}, 'arrival_code': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'departure_code': {'type': 'string', 'pattern': '^[A-Z]{3}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['departure_code', 'arrival_code', 'date', 'passengers'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'passengers': {'type': 'integer', 'maximum': 9, 'minimum': 2}, 'arrival_code': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'departure_code': {'type': 'string', 'pattern': '^[A-Z]{3}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'How many excerpts to return (default 5).'}, 'query': {'type': 'string', 'description': "Natural-language question or topic to find in the user's documents."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program', 'tier'], 'properties': {'tier': {'type': 'string', 'description': "Exact elite tier name as used by the program — e.g. 'Gold' (BA), 'Diamond Medallion' (Delta), 'Globalist' (Hyatt), 'Titanium Elite' (Bonvoy). Case-insensitive; will be normalized to official casing."}, 'notes': {'type': 'string', 'description': 'Optional notes (free-form).'}, 'program': {'type': 'string', 'description': "Loyalty program slug — e.g. 'british-airways-executive-club', 'marriott-bonvoy', 'world-of-hyatt', 'delta-skymiles'. Use the slug from the known programs list."}, 'member_id': {'type': 'string', 'description': 'Optional loyalty number.'}, 'expires_on': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional ISO date when this status expires.'}, 'target_tier': {'type': 'string', 'description': 'Optional — a tier the user is chasing (must be a valid tier for the program).'}, 'qualifying_balance': {'type': 'integer', 'minimum': 0, 'description': 'Optional — current qualifying units this period (Tier Points / XP / Loyalty Points / MQD / PQP / nights), for status-progress tracking.'}, 'qualifying_year_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional — ISO date the qualifying/membership year ends.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program'], 'properties': {'tier': {'type': 'string', 'description': "Optional — the user's CURRENT tier. Required only if no status is tracked for this program yet."}, 'program': {'type': 'string', 'description': "Loyalty program slug — e.g. 'british-airways-executive-club', 'marriott-bonvoy'."}, 'target_tier': {'type': 'string', 'description': "Optional tier the user is chasing — e.g. 'Gold'. Must be a valid tier for the program. Defaults the progress bar to this instead of the next tier up."}, 'qualifying_balance': {'type': 'integer', 'minimum': 0, 'description': 'Current qualifying units earned this period (Tier Points / XP / Loyalty Points / MQD / PQP / nights).'}, 'qualifying_year_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'ISO date the current qualifying/membership year ends (e.g. BA membership years are anchored to the join date — ask the user).'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['type', 'summary', 'details', 'confirmed'], 'properties': {'type': {'enum': ['feedback', 'bug'], 'type': 'string', 'description': 'Whether this is general feedback or a bug report.'}, 'details': {'type': 'string', 'maxLength': 4000, 'description': 'What the user wants the Award Travel Finder team to know.'}, 'summary': {'type': 'string', 'maxLength': 160, 'description': 'A concise title for the feedback or bug.'}, 'page_url': {'type': 'string', 'maxLength': 500, 'description': 'The current Award Travel Finder path or URL, when known.'}, 'confirmed': {'type': 'boolean', 'description': 'True only once the user has confirmed that this report should be sent.'}, 'actual_behavior': {'type': 'string', 'maxLength': 4000, 'description': 'For bugs, what actually happened.'}, 'expected_behavior': {'type': 'string', 'maxLength': 4000, 'description': 'For bugs, what the user expected to happen.'}, 'steps_to_reproduce': {'type': 'string', 'maxLength': 4000, 'description': 'For bugs, the steps that reproduce the problem, if known.'}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['airline_code'], 'properties': {'airline_code': {'type': 'string', 'description': 'IATA airline code, e.g. "UA" for United, "DL" for Delta'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flight_number'], 'properties': {'flight_number': {'type': 'string', 'description': 'IATA flight number, e.g. "UA123" or "DL456"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'airline_code': {'type': 'string', 'description': 'Optional IATA airline code to filter rollouts, e.g. "UA"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'airline_code': {'type': 'string', 'description': 'IATA airline code, e.g. "UA"'}, 'flight_number': {'type': 'string', 'description': 'IATA flight number, e.g. "UA123"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tail_number'], 'properties': {'tail_number': {'type': 'string', 'description': 'Aircraft registration / tail number, e.g. "N12345"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flight_number'], 'properties': {'date': {'type': 'string', 'description': 'Flight date in YYYY-MM-DD format. Defaults to today.'}, 'flight_number': {'type': 'string', 'description': 'IATA flight number, e.g. "UA123"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema'}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search query, e.g. "United" or "UA123"'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'provider': {'enum': ['seats_aero', 'award_wallet', 'google_sheets', 'tripit', 'autopilot'], 'type': 'string', 'description': 'Optional — sync just this provider. Omit to sync all connected integrations.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['booking_id'], 'properties': {'kind': {'enum': ['award', 'cash'], 'type': 'string'}, 'notes': {'type': 'string'}, 'origin': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'airline': {'type': 'string'}, 'program': {'type': 'string'}, 'trip_id': {'type': 'string'}, 'cash_paid': {'type': 'number', 'minimum': 0}, 'booking_id': {'type': 'integer', 'minimum': 1}, 'taxes_paid': {'type': 'number'}, 'cabin_class': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'destination': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'return_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'points_spent': {'type': 'integer', 'minimum': 0}, 'flight_number': {'type': 'string'}, 'departure_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'confirmation_number': {'type': 'string'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['booking_id'], 'properties': {'kind': {'enum': ['award', 'cash'], 'type': 'string'}, 'notes': {'type': 'string'}, 'hotel_id': {'type': 'string'}, 'rate_plan': {'type': 'string'}, 'room_type': {'type': 'string'}, 'booking_id': {'type': 'integer', 'minimum': 1}, 'check_in_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'check_out_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'original_points': {'type': 'integer', 'minimum': 0}, 'cash_rate_currency': {'type': 'string'}, 'monitoring_enabled': {'type': 'boolean'}, 'confirmation_number': {'type': 'string'}, 'original_pay_rate_usd': {'type': 'number', 'minimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['heading', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Section body in markdown'}, 'kind': {'enum': ['flight', 'hotel', 'note', 'budget'], 'type': 'string', 'description': 'Section kind (default: note)'}, 'heading': {'type': 'string', 'description': "Section heading, e.g. 'Outbound flight' or 'Hotel: Tokyo'"}, 'trip_id': {'type': 'integer', 'description': "Target trip. If omitted, the user's most recent active trip is used (or a new one is created)."}, 'section_id': {'type': 'string', 'description': 'Existing section id to update. Omit to append a new section.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['program', 'balance'], 'properties': {'balance': {'type': 'integer', 'minimum': 0}, 'program': {'type': 'string', 'description': 'Loyalty program name'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['monitor_id'], 'properties': {'cabin': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string'}, 'status': {'enum': ['active', 'paused'], 'type': 'string', 'description': 'Pause or resume the monitor'}, 'airlines': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replaces the existing airline filter; pass [] to watch all carriers'}, 'max_points': {'type': 'integer'}, 'monitor_id': {'type': 'integer'}, 'passengers': {'type': 'integer', 'maximum': 9, 'minimum': 1}, 'latest_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'earliest_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['code', 'sessionId'], 'properties': {'code': {'type': 'string', 'description': '(required) Unique identifier of the Viator experience to retrieve details for.This value must correspond to an experience previously returned by the search_experiences tool.The model must not guess or make up experience IDs; if the user request is ambiguous (e.g., multiple items shown), the model must ask which experience they mean before calling the tool.'}, 'locale': {'type': 'string', 'description': '(optional) The language/locale code requested for content localization (e.g., en-US, en-GB, fr-FR).If not provided by the user, the model should infer it from context or default to en.Used to descriptions, highlights, and content where available.'}, 'currency': {'type': 'string', 'description': '(optional) Currency code for from-price display (e.g., USD, EUR, GBP).When provided, fromPrice and fromPriceBeforeDiscount are populated.When omitted, pricing fields are not returned.Should match the currency used in the preceding search_experiences call when available.'}, 'language': {'type': 'string', 'description': '(deprecated) This value is deprecated and should not be sent. Please only send the locale.'}, 'sessionId': {'type': 'string', 'description': '(mandatory) A unique identifier, ideally an UUID, for the current user conversation. The same identifier should be used until the user opens a new chat.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['searchTerm', 'startDate', 'endDate', 'sessionId'], 'properties': {'limit': {'type': 'integer', 'format': 'int32', 'description': '(optional) Maximum number of products to return, between 1 and 10.If omitted, defaults to 5.Not intended as a user-facing refinement mechanism; the model should not use it to alter intent.'}, 'locale': {'type': 'string', 'description': '(optional) The language/locale code requested for content localization (e.g., en-US, en-GB, fr-FR).If not provided by the user, the model should infer it from context or default to en.Used to localize title, and other content where available.'}, 'endDate': {'type': 'string', 'description': "(required) The last date the user is available to participate in an experience, formatted as ISO-8601 (YYYY-MM-DD).Also derived from natural-language expressions (e.g., 'this summer', 'next weekend', 'early April', 'tomorrow'); if the user gives a single day, set endDate = startDate. When resolving these expressions, use the destination timezone from searchTerm when inferable, otherwise the user's timezone. Must be >= startDate. Used to widen search results to a date range."}, 'toPrice': {'type': 'number', 'description': '(optional) Maximum per-person price to include in search, expressed in the requested currency.Used when the user expresses a maximum budget (e.g., “under $100”)'}, 'currency': {'type': 'string', 'description': '(optional) Currency code used for interpreting and filtering prices.The model should infer currency from context when possible (e.g., GBP if the user is in the UK; USD if the user specifies dollars).Default value: USDValid ISO currency codes include: AED, ARS, AUD, BRL, CAD, CHF, CLP, CNY, COP, DKK, EUR, FJD, GBP, HKD, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PEN, PHP, PLN, SEK, SGD, THB, TRY, TWD, USD, VND, ZAR'}, 'duration': {'type': 'integer', 'format': 'int32', 'description': '(optional) User preference for maximum experience length, expressed in minutes.Used to filter results to experiences at or below this duration.'}, 'fromPrice': {'type': 'number', 'description': '(optional) Minimum per-person price to include in search, expressed in the requested currency.Used when the user specifies a lower budget boundary (e.g., “at least €50”).'}, 'sessionId': {'type': 'string', 'description': '(mandatory) A unique identifier, ideally an UUID, for the current user conversation. The same identifier should be used until the user opens a new chat.'}, 'startDate': {'type': 'string', 'description': "(required) The first date the user is available to participate in an experience, formatted as ISO-8601 (YYYY-MM-DD).The model must convert natural-language expressions (e.g., 'this summer', 'next weekend', 'early April', 'tomorrow') into a specific ISO date before calling the tool. When resolving these expressions, if searchTerm names a destination, use that location's local timezone. Otherwise, use the user's current timezone. The date must not be in the past. Must be before the endDate."}, 'searchTerm': {'type': 'string', 'description': "(required) Natural-language description of what the user is looking for. Must be non-blank and at most 500 characters; the tool rejects empty, whitespace-only, or over-length values. Include destination, activity type, and preferences in this single free-text query (e.g. 'walking tours in Paris, France'). Do not embed dates, prices, duration limits, or currency here—use the dedicated fields."}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'program': {'type': 'string', 'description': "Filter to a single program (e.g. 'Avios', 'Marriott Bonvoy')"}, 'category': {'enum': ['all', 'airline', 'hotel', 'transfer'], 'type': 'string', 'description': 'Filter (default: all)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['airport_code'], 'properties': {'airline': {'type': 'string', 'description': 'Optional — filter the result to this airline name (substring match)'}, 'destination': {'type': 'string', 'description': 'Optional — filter to flights serving this destination IATA or city'}, 'airport_code': {'type': 'string', 'pattern': '^[A-Z]{3,4}$', 'description': 'IATA (3-letter) or ICAO (4-letter) airport code'}}}
최근 도구 변경
유사한 MCP 서버
Cancun4me — Reservas de Hotel
Searches, quotes, books, tracks, cancels, and provides vouchers for hotels in Cancun and Riviera Maya, with Stripe payment links.
x402card: Virtual Cards + Freeland eSIM
Supports x402 virtual-card issuance and top-ups and lists prepaid travel eSIM plans payable with Base USDC.
esimker eSIM store
Searches travel eSIM plans and enables purchases, top-ups, wallet funding, and checkout through card, crypto, or prepaid balance.
Hotel Booking AI MCP
Searches hotels and live room rates, checks availability, creates and manages bookings, and generates payment requests.
booking
Resolves travel locations, flights, and trains; obtains private-driver quotes; and creates payment links for Paris transfers and …
Gitsim Chat
Searches, orders and manages international eSIM data packages and provides Stripe checkout links for purchases and top-ups.
topup
Lists and sells travel eSIMs, mobile top-ups, prepaid services, and international payment offers using user-approved USDC wallet …
pifini
Searches events and places across the Caribbean and Latin America, provides listings and reviews, and creates hosted ticket payme…