{"schema_version":"verify.report.v1","generated_at":"2026-09-08T14:19:42.066552+00:00","snapshot_id":"trustsnap_589b1f35e366c45a","server":{"namespace":"github-awardtravelfinder","name":"mcp","title":"AwardTravelFinder/mcp","description":"Award Travel Finder MCP server — search award flight availability across 27 airlines and award-chart pricing for 23 loyalty programs from Claude, ChatGPT, Cursor, Grok and any MCP client.","homepage_url":"https://awardtravelfinder.com/mcp","docs_url":"https://awardtravelfinder.com/mcp","icon_url":"https://avatars.githubusercontent.com/u/277431745?v=4","support_url":"https://github.com/AwardTravelFinder/mcp","remote_url":"https://awardtravelfinder.com/mcp","server_card_url":null,"latest_version":null,"current_status":"healthy","current_score":66.67,"transport_type":"streamable-http","has_oauth":true,"has_dcr":true,"has_prompts":false,"tool_count":137,"current_validation_schema_version":"8058defc70ca932c","last_validated_at":"2026-09-08T13:06:16.256421+00:00","registry_source":"github_topic_registry","registry_identifier":"github_topic_registry:AwardTravelFinder/mcp","canonical_identifier":null,"current_score_components":{"auth_operability_score":4.0,"error_contract_score":1.0,"rate_limit_semantics_score":2.0,"schema_completeness_score":3.0,"backward_compatibility_score":3.0,"slo_health_score":3.0,"security_hygiene_score":4.0,"task_success_score":3.0,"trust_confidence_score":3.0,"abuse_noise_ratio_score":4.0,"prompt_contract_score":1.0,"resource_contract_score":4.0,"discovery_metadata_score":2.0,"registry_consistency_score":3.0,"installability_score":3.0,"session_semantics_score":2.0,"tool_surface_design_score":3.0,"result_shape_stability_score":3.0,"oauth_interop_score":4.0,"recovery_semantics_score":1.0,"maintenance_signal_score":2.0,"adoption_signal_score":2.0,"freshness_confidence_score":4.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":4.0,"transport_compliance_score":0.0,"utility_coverage_score":1.0,"advanced_capability_coverage_score":1.0,"connector_publishability_score":2.0,"tool_snapshot_churn_score":4.0,"connector_replay_score":4.0,"request_association_score":0.0,"interactive_flow_safety_score":4.0,"action_safety_score":2.0,"official_registry_presence_score":2.0,"safety_transparency_score":3.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":3.0,"egress_ssrf_resilience_score":2.0,"execution_sandbox_safety_score":4.0,"data_exfiltration_resilience_score":2.0,"least_privilege_scope_score":4.0,"secret_handling_hygiene_score":2.0,"dependency_supply_chain_signal_score":0.0,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":[],"machine_summary":{},"taxonomy_tags":[],"score_decomposition":[],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{},"request_association":{},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0,"high_or_critical_alerts":0,"degraded_by_active_alerts":false},"recommended_for":[],"history_summary":{},"validation_timeline":[],"evidence_confidence":{"score":98.75,"label":"high","reason":"Based on 19 recent validations, 21 captured checks, and validation age of 1.2 hours.","live_check_count":21,"validation_age_hours":1.22,"basis":{"evidence_bearing_validations":19,"affirmative_live_check_count":21,"validation_age_hours":1.22,"freshness_threshold_hours":24}},"incident_feed":[],"disputes":[],"remediations":[],"client_remediation_modes":[],"client_profiles":[],"client_readiness_verdicts":[],"publishability_policy_profiles":[],"compatibility_fixtures":[],"install_snippets":{},"aliases":[],"raw_evidence":{"checks":{"probe_noise_resilience":{"status":"ok","latency_ms":198.7,"details":{"url":"https://awardtravelfinder.com/robots.txt","http_status":200,"headers":{"content-type":"text/plain","strict-transport-security":"max-age=63072000; includeSubDomains"},"validation_disallowed":false,"consent_error":null}},"server_card":{"status":"ok","latency_ms":296.48,"details":{"url":"https://awardtravelfinder.com/.well-known/mcp/server-card.json","payload":{"url":"https://mcp.awardtravelfinder.com/mcp","serverInfo":{"name":"AwardTravelFinder","version":"3.0.0"},"name":"Award Travel Finder","version":"3.0.0","description":"Search award flight and hotel availability, award charts, points valuations, transfer paths and elite status across 24+ points & miles programs","authentication":{"type":"oauth2","scopes":["mcp:read"],"authorization_server":"https://awardtravelfinder.com","authorization_server_metadata":"https://awardtravelfinder.com/.well-known/oauth-authorization-server","protected_resource_metadata":"https://awardtravelfinder.com/.well-known/oauth-protected-resource","registration":"https://awardtravelfinder.com/auth.md"},"capabilities":{"tools":true,"resources":true,"prompts":false},"transports":["streamable-http"],"documentation":"https://awardtravelfinder.com/mcp"},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"oauth_protected_resource":{"status":"ok","latency_ms":336.08,"details":{"url":"https://awardtravelfinder.com/.well-known/oauth-protected-resource","payload":{"resource":"https://awardtravelfinder.com/mcp","authorization_servers":["https://awardtravelfinder.com"],"scopes_supported":["mcp:read"],"bearer_methods_supported":["header"],"resource_documentation":"https://awardtravelfinder.com/developers/api"},"http_status":200,"headers":{"content-type":"application/json; charset=utf-8","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"oauth_authorization_server":{"status":"ok","latency_ms":113.73,"details":{"url":"https://awardtravelfinder.com/.well-known/oauth-authorization-server","payload":{"issuer":"https://awardtravelfinder.com","authorization_endpoint":"https://awardtravelfinder.com/oauth/authorize","token_endpoint":"https://awardtravelfinder.com/oauth/token","registration_endpoint":"https://awardtravelfinder.com/oauth/register","revocation_endpoint":"https://awardtravelfinder.com/oauth/revoke","introspection_endpoint":"https://awardtravelfinder.com/oauth/introspect","scopes_supported":["mcp:read"],"response_types_supported":["code"],"grant_types_supported":["authorization_code","refresh_token"],"code_challenge_methods_supported":["S256"],"token_endpoint_auth_methods_supported":["none","client_secret_post","client_secret_basic"],"agent_auth":{"skill":"https://awardtravelfinder.com/auth.md","register_uri":"https://awardtravelfinder.com/api/v1/agent/register","identity_types_supported":["anonymous"],"anonymous":{"credential_types_supported":["api_key"],"claim_uri":"https://awardtravelfinder.com/api/v1/agent/me"},"credential_types_supported":["oauth2","api_key"],"claim_uri":"https://awardtravelfinder.com/api/v1/agent/me","revocation_uri":"https://awardtravelfinder.com/oauth/revoke","documentation":"https://awardtravelfinder.com/auth.md"}},"http_status":200,"headers":{"content-type":"application/json; charset=utf-8","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"openid_configuration":{"status":"ok","latency_ms":291.66,"details":{"url":"https://awardtravelfinder.com/.well-known/openid-configuration","payload":{"issuer":"https://awardtravelfinder.com","authorization_endpoint":"https://awardtravelfinder.com/oauth/authorize","token_endpoint":"https://awardtravelfinder.com/oauth/token","registration_endpoint":"https://awardtravelfinder.com/oauth/register","revocation_endpoint":"https://awardtravelfinder.com/oauth/revoke","introspection_endpoint":"https://awardtravelfinder.com/oauth/introspect","scopes_supported":["mcp:read"],"response_types_supported":["code"],"grant_types_supported":["authorization_code","refresh_token"],"code_challenge_methods_supported":["S256"],"token_endpoint_auth_methods_supported":["none","client_secret_post","client_secret_basic"],"agent_auth":{"skill":"https://awardtravelfinder.com/auth.md","register_uri":"https://awardtravelfinder.com/api/v1/agent/register","identity_types_supported":["anonymous"],"anonymous":{"credential_types_supported":["api_key"],"claim_uri":"https://awardtravelfinder.com/api/v1/agent/me"},"credential_types_supported":["oauth2","api_key"],"claim_uri":"https://awardtravelfinder.com/api/v1/agent/me","revocation_uri":"https://awardtravelfinder.com/oauth/revoke","documentation":"https://awardtravelfinder.com/auth.md"}},"http_status":200,"headers":{"content-type":"application/json; charset=utf-8","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"initialize":{"status":"ok","latency_ms":102.29,"details":{"url":"https://awardtravelfinder.com/mcp","payload":{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","capabilities":{"extensions":{"io.modelcontextprotocol/ui":{"mimeTypes":["text/html;profile=mcp-app"]}},"logging":{},"prompts":{"listChanged":true},"resources":{"listChanged":true},"tools":{"listChanged":true}},"serverInfo":{"name":"AwardTravelFinder","version":"3.0.0"}}},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":116.11,"details":{"url":"https://awardtravelfinder.com/mcp","payload":{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"search_all_airlines","description":"Search award flight availability across every airline currently LIVE for a route and date, in parallel. The live list is measured from real searches in the last 72h (see list_supported_airlines); airlines whose source is down, blocked or login-walled are not fanned out to, and the response's `coverage` field says how many were. Any catalogued airline can still be requested by name with search_availability. Returns combined results grouped by airline. This is the recommended starting point — use single-airline search only if you need a specific airline. Requires sign-in. Free accounts get 3 economy searches/day; Premium ($9.99/mo) gets unlimited searches across every cabin.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"departure_code":{"type":"string","pattern":"^[A-Z]{3}$","description":"Departure airport IATA code (e.g. LHR)"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$","description":"Arrival airport IATA code (e.g. JFK)"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Travel date (YYYY-MM-DD)"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"],"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","minimum":0,"maximum":7,"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."}},"required":["departure_code","arrival_code","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_availability","description":"Search live award availability for a specific airline, route, and date. 30 airlines can be requested, but only those list_supported_airlines reports as live are returning seats right now — when a source is down, blocked, or needs a member login the result says so explicitly instead of reporting zero seats, so never read an unsearchable source as 'no availability'. Requires sign-in. Free accounts get 3 economy searches/day; Premium ($9.99/mo) gets unlimited searches across every cabin.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","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"]},"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"],"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."}},"required":["airline","departure_code","arrival_code","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_supported_airlines","description":"List the airlines ATF can search for award seats, with their LIVE status: which returned real award data in the last 72h, which are degraded (source down, blocked, or behind a member login) and which are idle. search_all_airlines only fans out to live sources, so call this before promising coverage or when a search comes back thin. Public, no sign-in.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_monthly_availability","description":"Search award flight availability for an entire month. Returns day-by-day availability with points costs. Renders as an interactive rate calendar. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","enum":["british_airways","qatar_airways","cathay_pacific","virgin_atlantic","iberia","qantas","qantas_rewards","etihad","smiles"]},"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}(-\\d{2})?$","description":"Month to search (YYYY-MM or YYYY-MM-DD)"}},"required":["airline","departure_code","arrival_code","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_pricing","description":"Get the award pricing chart for a specific airline route. Shows points required per cabin class (off-peak/peak). No date needed. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","enum":["british_airways","qatar_airways","cathay_pacific","virgin_atlantic","iberia","emirates","qantas"]},"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"}},"required":["airline","departure_code","arrival_code"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_hybrid","description":"Find the cheapest way to fly by combining cash tickets with award redemptions into one split-ticket journey. Searches cash fares (Google Flights) and award availability across airlines, then combines the best cash leg with the best award leg via connecting hubs. Best for premium cabins (business/first) on long-haul routes. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","business","first"],"description":"Target cabin class (default: business)"},"points_value_cents":{"type":"number","description":"How you value points in cents/pence per point (default: 1.5)"}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_award_trip_details","description":"Get flight-level detail for one award result from search_all_airlines or search_availability: flight numbers, aircraft, departure/arrival times, stops, and direct booking links into the mileage programme. Pass the `trip_id` from a seats.aero result row. Requires a connected seats.aero account.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"trip_id":{"type":"string","description":"The `trip_id` field from an award search result row"}},"required":["trip_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_program_rates","description":"Get the full award chart rates for a specific loyalty program. Returns all destinations with points required per cabin class including off-peak/peak pricing. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","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"],"description":"Loyalty program slug (e.g. british-airways, emirates, aeroplan)"}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_buy_points_pricing","description":"Get the cost to buy points/miles for a loyalty program. Returns tiered base purchase pricing and any active bonus promotion. Use to answer 'how much does it cost to buy X Avios/miles/points?' If no program specified, returns all programs with pricing data. Free — no account needed.","inputSchema":{"$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"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_status_matches","description":"Get current airline status match offers. Returns active promotions where you can match elite status from one airline to another. Includes direct apply links. Each program also has a detailed FAQ page at awardtravelfinder.com/status-match/{program-slug} with eligibility, requirements, and step-by-step instructions. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alliance":{"type":"string","enum":["SkyTeam","Star Alliance","oneworld"],"description":"Filter by airline alliance"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_hotels","description":"Search for hotels by name, city, or brand. Returns hotel codes needed for availability checks and price monitoring. Supports Marriott, Hilton, IHG, and Hyatt. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Hotel name or city"},"brand":{"type":"string","enum":["Marriott","Hilton","IHG","Hyatt"]},"limit":{"type":"integer","minimum":1,"maximum":20}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_hotel_availability","description":"Get current points availability for a hotel on specific dates. Use BEFORE monitor_hotel_price to find the correct rate_plan and current points rate. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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}$"}},"required":["hotel_code","check_in_date","check_out_date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"monitor_hotel_price","description":"Start monitoring a hotel points booking for price drops. Checks daily and sends email alerts when the points rate decreases. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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}$"},"original_points":{"type":"integer","minimum":1,"description":"TOTAL points cost (per-night rate x nights)"},"room_type":{"type":"string"},"rate_plan":{"type":"string"},"confirmation_number":{"type":"string"},"notes":{"type":"string"}},"required":["hotel_code","check_in_date","check_out_date","original_points","room_type","rate_plan"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"add_hotel_booking","description":"Log a hotel booking to the user's portfolio — award (points, with price-drop monitoring) or cash (paid with money; set kind:\"cash\" and original_pay_rate_usd). Use hotel_id from search_hotels / get_hotel_availability results. Pass trip_id to file the stay under a workspace Trip so it shows grouped with the matching flights. Works great with Gmail — pull check-in/out dates, room type, rate and confirmation number from the reservation email. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"hotel_id":{"type":"string","description":"Hotel identifier from search_hotels / get_hotel_availability results."},"check_in_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"check_out_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"kind":{"type":"string","enum":["award","cash"],"description":"award = points stay with price-drop monitoring (default); cash = paid with money. Defaults to award."},"original_points":{"type":"integer","minimum":1,"description":"Award bookings only. Total points paid for the stay."},"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)."},"cash_rate_currency":{"type":"string","description":"Currency of original_pay_rate_usd. Defaults to USD."},"room_type":{"type":"string"},"rate_plan":{"type":"string"},"confirmation_number":{"type":"string"},"trip_id":{"type":"integer","description":"Optional id of a workspace Trip (from create_trip / list_trips) to file this stay under."},"notes":{"type":"string"}},"required":["hotel_id","check_in_date","check_out_date"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_hotel_bookings","description":"List all hotel bookings being monitored for price drops. Shows current vs. original points rates.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_hotel_booking","description":"Get details and full price history of a monitored hotel booking.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_hotel_booking","description":"Update a tracked hotel booking — correct dates, room type, points, rate, confirmation number, etc. Do NOT use this to cancel a booking — use delete_hotel_booking instead.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1},"hotel_id":{"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}$"},"kind":{"type":"string","enum":["award","cash"]},"original_points":{"type":"integer","minimum":0},"original_pay_rate_usd":{"type":"number","minimum":0},"cash_rate_currency":{"type":"string"},"room_type":{"type":"string"},"rate_plan":{"type":"string"},"confirmation_number":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"notes":{"type":"string"}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_hotel_booking","description":"Remove a tracked hotel booking from the user's portfolio. Use when the trip is cancelled or the booking was added by mistake.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"add_flight_booking","description":"Log a flight booking/redemption — award (points) or cash (paid with money; set kind:\"cash\" and cash_paid). For multi-leg trips (connecting flights, open-jaw, return), call this once per leg using the same trip_id — put the total cost on the first leg and 0 on subsequent legs. Works great with Gmail — extract booking details from confirmation emails. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"departure_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"kind":{"type":"string","enum":["award","cash"],"description":"award = points/miles redemption (default); cash = paid with money. Defaults to award."},"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."},"program":{"type":"string","description":"Award bookings only. Loyalty program used."},"cash_paid":{"type":"number","minimum":0,"description":"Cash bookings only. Total cash fare paid for this leg, in taxes_currency (default USD)."},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"]},"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."},"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."},"flight_number":{"type":"string"},"return_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"taxes_paid":{"type":"number"},"taxes_currency":{"type":"string","description":"Currency for taxes_paid and cash_paid. Defaults to USD."},"passengers":{"type":"integer","minimum":1},"confirmation_number":{"type":"string"},"notes":{"type":"string"}},"required":["airline","origin","destination","departure_date","cabin_class"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_flight_bookings","description":"List all tracked flight award bookings/redemptions. Shows airlines, routes, points spent, and cabin classes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_flight_booking","description":"Get details of a specific flight booking/redemption.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_flight_booking","description":"Update a tracked flight booking. Use to correct details or add confirmation numbers. Do NOT use this to cancel a booking — use delete_flight_booking instead.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1},"airline":{"type":"string"},"flight_number":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"departure_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"return_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"]},"kind":{"type":"string","enum":["award","cash"]},"points_spent":{"type":"integer","minimum":0},"program":{"type":"string"},"cash_paid":{"type":"number","minimum":0},"taxes_paid":{"type":"number"},"trip_id":{"type":"string"},"confirmation_number":{"type":"string"},"notes":{"type":"string"}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_flight_booking","description":"Cancel or remove a tracked flight booking. Use this when the user says the flight is cancelled, superseded, no longer happening, or asks to remove/archive it.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_voucher_types","description":"Browse the catalogue of companion & upgrade voucher types (UK + US): BA Amex companion (Travel Together), Barclaycard/Lloyds Avios upgrade vouchers, Virgin Atlantic companion, Delta/American/Alaska companion certificates, Southwest Companion Pass, United PlusPoints. Optionally filter by region (UK/US) or category. Free reference data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"region":{"type":"string","enum":["UK","US"],"description":"Filter by issuer region."},"category":{"type":"string","enum":["companion","upgrade","companion_pass","upgrade_cert"],"description":"Filter by voucher category."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_my_vouchers","description":"List the companion/upgrade vouchers the user holds, including which booking each is applied to. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"add_voucher","description":"Add a companion/upgrade voucher the user holds to their inventory. Use list_voucher_types to find the voucher_slug. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"voucher_slug":{"type":"string","description":"Slug from list_voucher_types, e.g. 'ba-amex-premium-plus-companion'."},"expires_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Voucher expiry date (YYYY-MM-DD)."},"reference":{"type":"string","description":"Voucher code or membership reference."},"notes":{"type":"string"}},"required":["voucher_slug"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"apply_voucher_to_booking","description":"Apply a held voucher to a flight or hotel booking (e.g. a BA companion voucher onto a flight redemption, or a Barclaycard upgrade voucher onto a Club World leg). Omit booking_id to detach the voucher. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"voucher_id":{"type":"integer","minimum":1,"description":"ID of the user's voucher (from list_my_vouchers)."},"booking_type":{"type":"string","enum":["flight","hotel"],"description":"Whether booking_id refers to a flight redemption or a hotel booking."},"booking_id":{"type":"integer","minimum":1,"description":"ID of the booking to apply the voucher to. Omit to detach."}},"required":["voucher_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_voucher","description":"Remove a voucher from the user's inventory.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"voucher_id":{"type":"integer","minimum":1}},"required":["voucher_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_points_balance","description":"Update your points/miles balance for a loyalty program. Creates the program if it doesn't exist, or updates the balance if it does. Use with Gmail to extract balance notifications and keep your portfolio current. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Loyalty program name"},"balance":{"type":"integer","minimum":0}},"required":["program","balance"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_points_balances","description":"List all your loyalty program points/miles balances.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_points_balance","description":"Remove a loyalty program from your points balances — e.g. you closed the account or added it by mistake. Use the program name as shown by list_points_balances. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Loyalty program name to remove (as shown by list_points_balances)"}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"set_loyalty_status","description":"Record or update the user's elite/loyalty status with an airline or hotel program (e.g. Marriott Bonvoy Titanium, BA Executive Club Gold, AA Executive Platinum). Knowing this lets the assistant flag perks like free breakfast, suite upgrades, lounge access, and free award nights when planning trips. Use exact tier names from the reference table: British Airways Executive Club → Blue/Bronze/Silver/Gold; Delta SkyMiles → Silver/Gold/Platinum/Diamond Medallion; Marriott Bonvoy → Member/Silver Elite/Gold Elite/Platinum Elite/Titanium Elite/Ambassador Elite; World of Hyatt → Member/Discoverist/Explorist/Globalist.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"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."},"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."},"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."},"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."},"target_tier":{"type":"string","description":"Optional — a tier the user is chasing (must be a valid tier for the program)."},"notes":{"type":"string","description":"Optional notes (free-form)."}},"required":["program","tier"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_loyalty_statuses","description":"List the user's tracked elite/loyalty statuses across airlines and hotels.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_loyalty_status","description":"Remove a tracked elite/loyalty status (e.g. when it lapses and the user doesn't want to renew it).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string"}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"set_status_progress","description":"Update the user's qualifying progress toward an elite tier — their current tier-points / XP / Loyalty Points / qualifying nights, the date their qualifying year ends, and (optionally) a target tier they're chasing. Use this to answer 'how far am I from BA Gold?'. If no status is tracked for the program yet, also pass `tier` (the user's CURRENT tier) and it will be created. Programs use different qualifying currencies — BA/Virgin: Tier Points; Flying Blue: XP; AA: Loyalty Points; United: PQP; Delta: MQD; hotels: nights.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Loyalty program slug — e.g. 'british-airways-executive-club', 'marriott-bonvoy'."},"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)."},"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."},"tier":{"type":"string","description":"Optional — the user's CURRENT tier. Required only if no status is tracked for this program yet."}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_status_progress","description":"Show the user's progress toward elite status across all their tracked loyalty programs — for each: current tier, qualifying balance, the next tier's threshold and what it unlocks, how far they are from it, and their requalification date. Answers 'how close am I to my next tier?' and 'what would the next tier get me?'. Read-only.","inputSchema":{"$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"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"calculate_flight_earnings","description":"Estimate the ELITE-QUALIFYING points a flight earns toward status — British Airways Tier Points, Air France/KLM Flying Blue XP, or American AAdvantage Loyalty Points — plus the great-circle distance. Answers 'how many tier points is LHR–JFK in business?' and 'how many BA tier points for a £600 fare?'. Tier Points and Loyalty Points are revenue-based (pass `fare_price`); Flying Blue XP is fixed per segment by distance + cabin. Use program slugs: 'british-airways-executive-club', 'air-france-klm-flying-blue', 'american-aadvantage'.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","description":"Origin airport IATA code, e.g. 'LHR'."},"destination":{"type":"string","description":"Destination airport IATA code, e.g. 'JFK'."},"program":{"type":"string","description":"Qualifying program slug: 'british-airways-executive-club', 'air-france-klm-flying-blue', or 'american-aadvantage'."},"cabin":{"type":"string","description":"Cabin: economy, premium, business, or first.","default":"economy"},"fare_price":{"type":"number","description":"Fare price for revenue-based programs (BA Tier Points, AA Loyalty Points). Base fare + carrier surcharges, excluding taxes."},"fare_currency":{"type":"string","description":"ISO currency of fare_price (e.g. GBP, USD, EUR). Defaults to the program's home currency."},"segments":{"type":"integer","minimum":1,"description":"Number of flight segments/legs (multiplies Flying Blue XP). Default 1."}},"required":["origin","destination","program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"recommend_status_path","description":"Recommend the cheapest path to an elite tier — EARN it through planned flying, RUN for it (a tier-point run), or MATCH/challenge into it from a status the user already holds. Uses the user's tracked statuses, booked flights, and the status-match graph. Answers 'what's the easiest way to get Qatar Gold?'. Premium. Pass the target program slug (e.g. 'qatar-privilege-club') and optionally a target tier; defaults to the next tier up from what they hold, else the top tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"target_program":{"type":"string","description":"Program slug to reach status with — e.g. 'qatar-privilege-club', 'british-airways-executive-club'."},"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."}},"required":["target_program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_award_release_window","description":"Look up when an airline opens award seats for booking (days from departure). Use this before searching for a date >330 days out to warn the user if inventory hasn't been loaded yet, and to suggest the right retry date or a route monitor.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","description":"IATA code (e.g. 'BA') or carrier name (e.g. 'British Airways')."}},"required":["airline"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_award_release_windows","description":"List all known per-airline award booking windows. Useful when the user asks 'when do award seats open?' generally.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_portfolio","description":"Get a complete summary of your travel rewards portfolio for signed-in users: points balances, spend on hotels and flights, upcoming and past trips, destinations, and monthly spending trends. Uses the same underlying snapshot as the server-loaded chat preamble; call after the user adds bookings or balances in-session when you need a refresh.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"log_lounge_visit","description":"Log an airport lounge visit to your portfolio: which lounge, airport, date, how you got in (Priority Pass, card, status, ticket), an optional 1-5 rating, and notes. Use with the lounge_* lookup tools to confirm the lounge name first. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airport_code":{"type":"string","description":"Airport IATA code, e.g. LHR"},"lounge_name":{"type":"string","description":"Lounge name, e.g. Qantas First Lounge"},"visit_date":{"type":"string","description":"Date of the visit (YYYY-MM-DD)"},"access_method":{"type":"string","description":"How you got in, e.g. Priority Pass, Amex Platinum, business ticket"},"rating":{"type":"integer","minimum":1,"maximum":5,"description":"Optional 1-5 rating"},"notes":{"type":"string","description":"Optional notes"}},"required":["airport_code","lounge_name","visit_date"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_lounge_visits","description":"List the airport lounge visits you've logged to your portfolio.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_lounge_visit","description":"Remove a lounge visit you previously logged with log_lounge_visit. Use list_lounge_visits to find the visit id. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"visit_id":{"type":"integer","description":"Id of the logged visit, from list_lounge_visits."}},"required":["visit_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"discover_more_flight_tools","description":"Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering aircraft seatmaps, airport delays/wait times, and lounges — with one-line install URLs. Call this when the user asks about seat selection, airport delays/security waits, baggage rankings, lounges, or 'what other flight tools are there?'","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_integrations","description":"List the external services the user can connect (seats.aero, AwardWallet, etc.) and their current connection status. Call this before any flight/hotel search if you suspect a connection is missing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"connect_integration","description":"Initiate the OAuth flow to connect an external integration. Returns the authorize URL; the user must open it in a browser to grant access. Use this when a tool returns connection_required.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider":{"type":"string","enum":["seats_aero","award_wallet","google_sheets","tripit","autopilot"],"description":"Which integration to connect"}},"required":["provider"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"disconnect_integration","description":"Revoke a previously connected integration. The OAuth tokens are deleted from ATF storage.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider":{"type":"string","enum":["seats_aero","award_wallet","google_sheets","tripit","autopilot"]}},"required":["provider"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sync_now","description":"Trigger an immediate refresh of the user's connected integrations (AwardWallet, Google Sheets, …) so balances/bookings are current before you answer. Use when the user asks to refresh, or when list_integrations shows stale data. Returns which connections are syncing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider":{"type":"string","enum":["seats_aero","award_wallet","google_sheets","tripit","autopilot"],"description":"Optional — sync just this provider. Omit to sync all connected integrations."}},"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"whats_on_sale","description":"List currently-active points sales: buy-points promos (airline + hotel) and transfer bonuses across credit-card and loyalty programs. No auth required. Useful as a starting point when a user asks 'what's a good deal right now?'.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"category":{"type":"string","enum":["all","airline","hotel","transfer"],"description":"Filter (default: all)"},"program":{"type":"string","description":"Filter to a single program (e.g. 'Avios', 'Marriott Bonvoy')"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"recommend_redemption","description":"Recommend the optimal points strategy for a specific trip given the user's known points balances. Combines active award availability + transfer bonuses + the user's portfolio. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":1,"maximum":9}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"audit_marriott_folio","description":"Audit a Marriott Bonvoy folio for commonly-disputable charges (resort fee on award stays, parking double-billing, destination fee, internet). Returns a finding list with a dispute template. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"folio_text":{"type":"string"},"stay_type":{"type":"string","enum":["award","cash","points_advance"]},"status_tier":{"type":"string","enum":["member","silver","gold","platinum","titanium","ambassador"]},"confirmation_number":{"type":"string"}},"required":["folio_text"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"compare_transfer_options","description":"Decide which points to use for a specific redemption. Given a target loyalty program and how many points it costs, ranks every transfer route from the user's own balances by real cash cost (cents-per-point), including multi-hop routes, active transfer bonuses, and how long each transfer takes to post. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"target_program":{"type":"string","description":"The program you need points in (e.g. 'Asia Miles', 'Avios', 'Aeroplan', 'Virgin Points')"},"points_needed":{"type":"integer","minimum":1,"description":"How many target-program points the redemption costs"}},"required":["target_program","points_needed"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"find_transfer_paths","description":"Find all transfer routes (direct AND multi-hop) to move points from one program to another, e.g. 'Amex Membership Rewards' to 'American Airlines AAdvantage'. Surfaces non-obvious second-hop routes through hotel programs, applies live transfer bonuses, and computes source points needed. Use when a card/program has no direct partner with the target.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"from_program":{"type":"string","description":"Program you have points in (e.g. 'Amex Membership Rewards', 'Chase', 'Marriott Bonvoy')"},"target_program":{"type":"string","description":"Program you want points in (e.g. 'American Airlines AAdvantage', 'Alaska', 'Avios')"},"points_needed":{"type":"integer","minimum":1,"description":"Optional: how many target-program points you need. Returns source points required per route."},"max_hops":{"type":"integer","minimum":1,"maximum":3,"description":"Max transfer steps to consider (default 3)"}},"required":["from_program","target_program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"create_route_monitor","description":"Create a saved route monitor. ATF checks every 6 hours for award seats matching the route + window + cabin and emails when fresh availability appears. Free accounts get one monitor; Premium is unlimited.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"earliest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"latest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"airlines":{"type":"array","items":{"type":"string"},"description":"Optional airline filter; omit to watch all supported carriers"},"passengers":{"type":"integer","minimum":1,"maximum":9},"max_points":{"type":"integer","description":"Only fire when points <= this cap"}},"required":["origin","destination","earliest_date","latest_date"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_route_monitors","description":"List the user's saved route monitors with their last-checked time and current status.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":"string","enum":["all","active","paused","cancelled","fired"]},"page":{"type":"integer","minimum":1,"description":"Page number (1-indexed). Defaults to 1."},"per_page":{"type":"integer","minimum":1,"maximum":100,"description":"Items per page (default 20, max 100)."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_route_monitor","description":"Edit a saved route monitor by ID — change the date window, cabin, airline filter, passenger count, max-points cap, or pause/resume it.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"monitor_id":{"type":"integer"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"earliest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"latest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"airlines":{"type":"array","items":{"type":"string"},"description":"Replaces the existing airline filter; pass [] to watch all carriers"},"passengers":{"type":"integer","minimum":1,"maximum":9},"max_points":{"type":"integer"},"status":{"type":"string","enum":["active","paused"],"description":"Pause or resume the monitor"}},"required":["monitor_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cancel_route_monitor","description":"Cancel an active route monitor by ID. Cancelled monitors stop firing but are preserved for history.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"monitor_id":{"type":"integer"}},"required":["monitor_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"create_standing_order","description":"Save a recurring instruction ATF runs for the user unattended, then emails the result. Use for anything the user wants checked repeatedly without asking — e.g. 'every Sunday check whether LHR-NRT business opens on any programme I hold points for' or 'each morning tell me if any of my tracked bookings dropped in price'. Write `prompt` as a complete, self-contained instruction: it runs with no conversation history, so name the routes, programmes, cabins and dates explicitly. Premium only.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"prompt":{"type":"string","description":"The self-contained instruction to run each time. No conversation context is carried over."},"cadence":{"type":"string","enum":["daily","weekly"],"description":"Defaults to weekly."},"run_hour":{"type":"integer","minimum":0,"maximum":23,"description":"Hour of day in UTC to run. Defaults to 7."},"run_weekday":{"type":"integer","minimum":0,"maximum":6,"description":"0=Sunday … 6=Saturday. Weekly cadence only. Defaults to Monday (1)."},"trip_id":{"type":"integer","description":"Optional trip to file this order under."}},"required":["prompt"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_standing_orders","description":"List the user's standing orders — the recurring instructions ATF runs unattended — with their schedule, next run time, and the result of the last run.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"include_inactive":{"type":"boolean","description":"Include cancelled/paused orders. Defaults to false."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cancel_standing_order","description":"Stop a standing order by ID so it no longer runs. The record is kept, including its last result.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"standing_order_id":{"type":"integer"}},"required":["standing_order_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_multi_passenger","description":"Find award seats for a group — filters out single-seat phantom availability. Returns only carriers reporting seats >= the requested passenger count. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":2,"maximum":9}},"required":["departure_code","arrival_code","date","passengers"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"audit_hotel_folio","description":"Audit a hotel folio for commonly-disputable charges. Supports Marriott, Hilton, Hyatt, and IHG. Returns a finding list with a chain-aware dispute template. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"chain":{"type":"string","enum":["marriott","hilton","hyatt","ihg"]},"folio_text":{"type":"string"},"stay_type":{"type":"string","enum":["award","cash","points_advance"]},"status_tier":{"type":"string"},"confirmation_number":{"type":"string"}},"required":["chain","folio_text"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"plan_trip","description":"Plan an end-to-end award trip in one call. Searches all airlines, ranks options against the user's balances + active transfer bonuses, and surfaces the best route — including transfer paths if the user is short on points. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":1,"maximum":9},"flexibility_days":{"type":"integer","minimum":0,"maximum":14,"description":"Optional ± days flexibility — if set, also probes adjacent dates"}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_cash_flights","description":"Real cash flight prices via Duffel (GDS) and Ignav (REST). Use to compare cash vs award redemptions or to surface the cheapest cash option for a route. Returns price + airline + flight number + cabin per option. Hosted keys — no per-user setup.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":1,"maximum":9},"source":{"type":"string","enum":["auto","duffel","ignav","airtrfx"],"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."}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"find_premium_hotels","description":"Find Amex Fine Hotels & Resorts (FHR), Amex The Hotel Collection (THC), or Chase Edit hotels in a city. These programs stack benefits worth $300+: breakfast, F&B credits, room upgrades, late checkout. Use when the user wants premium hotel options that maximize portal stacking.","inputSchema":{"$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":{"type":"string","enum":["any","amex_fhr","amex_thc","chase_edit"],"description":"Filter by program. Default: any."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_skills","description":"List the reference skills available — institutional knowledge the agent can pull in on demand. Each skill explains a sub-domain (sweet spots, hold rules, cabin codes, etc). Free, no auth required.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_skill","description":"Fetch the full markdown body of a reference skill by key. Use when planning multi-step workflows where the skill's rules matter.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key":{"type":"string","description":"Skill key from list_skills"}},"required":["key"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_knowledge_base","description":"Search the Miles & Points Daily + Smart With Points editorial archive for explainers and strategy. Use when the user asks 'how does X work', 'should I transfer to Y', 'best way to redeem Z', credit-card or transfer-bonus strategy questions, or anything that benefits from authoritative context. Returns ranked article excerpts with URLs to cite.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Natural-language question or topic, e.g. 'best Avios redemption sweet spots from London'"},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"How many excerpts to return (default 5)"},"source":{"type":"string","enum":["miles_and_points_daily","smart_with_points"],"description":"Restrict to one publication. Omit to search both."}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"wikipedia_airports","description":"Look up airline service from a Wikipedia airport page. Use when fare/award tools say a route doesn't exist (false negative on small markets) or when you need the full destination list for an airport. Free, no auth.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airport_code":{"type":"string","pattern":"^[A-Z]{3,4}$","description":"IATA (3-letter) or ICAO (4-letter) airport code"},"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"}},"required":["airport_code"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_earning_rates","description":"Look up mileage earning rates for crediting a partner-airline ticket to a loyalty program. Returns the % of distance earned per booking class. Use when deciding which program to credit a flight to. Free.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","enum":["british-airways","aeroplan","alaska","american-aadvantage","virgin-atlantic","flying-blue"],"description":"Loyalty program to credit to"},"airline":{"type":"string","pattern":"^[A-Z0-9]{2}$","description":"Operating airline IATA code (e.g. AA, BA, QR)"},"fare_class":{"type":"string","description":"Optional booking class letter (e.g. K, M, Y). If omitted, returns the full table for that program×airline."}},"required":["program","airline"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_partner_award_options","description":"Given an operating airline and a route, list which loyalty programmes can book that airline as a PARTNER and how many points it costs per cabin. Example: a Korean Air (KE) flight ICN→LAX can be booked with Virgin Points. Use this to answer 'which of my programmes can book this flight and what's the cheapest?'. Points are off-peak/saver estimates from published partner award charts. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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)."}},"required":["carrier","departure","destination"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_program_partner_chart","description":"Get a loyalty programme's PARTNER airline award chart (the points to book partner-operated flights), as a region-pair or distance-band table with sources, confidence, and accuracy caveats. Supported: aeroplan (Air Canada), aadvantage (American), singapore-krisflyer, cathay-asia-miles (distance-based), turkish-miles-smiles, ana-mileage-club. Match the route's origin/destination regions (or distance) to a row to read the points cost. IMPORTANT: read the returned `confidence`, `caveats`, and `trip_basis` fields — points are one-way unless trip_basis says round_trip (ANA is round-trip), and these charts apply to PARTNER-operated flights, not the programme's own dynamically-priced flights. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","enum":["aeroplan","aadvantage","singapore-krisflyer","cathay-asia-miles","turkish-miles-smiles","ana-mileage-club"],"description":"Programme slug."}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lookup_flight","description":"Identify the airline behind a pasted flight code (e.g. 'BA117', 'AA 1234'). Returns carrier name, country, and — when ATF supports the airline — the slug and loyalty program so the assistant can pre-fill an add_flight_booking call. Use this any time a user pastes or types a raw flight code without context.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_code":{"type":"string","description":"A flight code like 'BA117', 'AA 1234', or 'EK521'."}},"required":["flight_code"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_trip_briefing","description":"Combine FlightSeatmap and FlightQueue data for a planned flight: aircraft and seatmap availability plus airport delay and security-wait snapshots. Use when a user asks how to prepare for a flight or wants one live flight brief.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","pattern":"^[A-Za-z0-9]{2,3}\\s*\\d{1,4}$","description":"Flight code such as BA117 or AA 100"},"flight_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Optional departure date"},"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"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_trips","description":"List the signed-in user's trips (their trip-as-project workspaces) with destination, dates, status, and itinerary section count.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":"string","enum":["all","active","archived","planning","booked","completed"],"description":"Filter by status (default: all)"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"create_trip","description":"Create a new trip (a project workspace grouping chats, searches, monitors, and bookings). Free accounts get one active trip; additional active trips require Premium.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"name":{"type":"string","description":"Trip name, e.g. 'Tokyo with the family'"},"destination":{"type":"string","description":"Primary destination (city or airport)"},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["name"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_trip","description":"Archive a trip, or delete it permanently. Archiving keeps the trip and its itinerary but frees the active-trip slot; bookings, monitors and chats filed under it are always kept and simply unfiled.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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."}},"required":["trip_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"assign_bookings_to_trip","description":"File existing flight and/or hotel bookings under a workspace Trip so the portfolio shows them grouped as one trip. Get the trip id from list_trips / create_trip and booking ids from list_flight_bookings / list_hotel_bookings. Pass an empty array (or omit) for a booking type you're not moving.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"trip_id":{"type":"integer","description":"Target workspace Trip id."},"flight_booking_ids":{"type":"array","items":{"type":"integer"},"description":"Flight redemption ids to file under the trip."},"hotel_booking_ids":{"type":"array","items":{"type":"integer"},"description":"Hotel booking ids to file under the trip."}},"required":["trip_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_itinerary","description":"Write a section onto a trip's itinerary canvas — the persistent, editable trip document the agent builds. Appends a new section, or updates an existing one when section_id is given. Returns the full updated canvas. Premium tier (itinerary canvas).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"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."},"heading":{"type":"string","description":"Section heading, e.g. 'Outbound flight' or 'Hotel: Tokyo'"},"body":{"type":"string","description":"Section body in markdown"},"kind":{"type":"string","enum":["flight","hotel","note","budget"],"description":"Section kind (default: note)"}},"required":["heading","body"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_my_documents","description":"Search the user's OWN uploaded documents (award charts, hotel folios, itineraries, statements) and return ranked excerpts. Use when the user refers to 'my document', 'the folio/itinerary/chart I uploaded', or asks a question that should be answered from their own files rather than the public editorial archive. Returns matched excerpts with similarity scores.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Natural-language question or topic to find in the user's documents."},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"How many excerpts to return (default 5)."}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_merchant_multipliers","description":"Search a community-verified database of merchant bonus-category multipliers (e.g. 'which merchants earn 4x?', 'does Whole Foods earn a bonus on Amex Gold?'). Every entry is backed by a screenshot of the cardholder's statement as proof. Filter by merchant/card/category and a minimum multiplier. Returns verified entries with the earn rate, card, category, and a link to the proof. Free.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Merchant, card, or category to search for (e.g. 'Whole Foods', 'Amex Gold', 'Dining'). Optional."},"min_multiplier":{"type":"number","description":"Only return entries earning at least this multiplier (e.g. 4 for 4x and up). Optional."},"card":{"type":"string","description":"Filter to a specific card by name (e.g. 'Amex Gold'). Optional."},"category":{"type":"string","description":"Filter to a bonus category (e.g. 'Groceries', 'Dining'). Optional."},"country":{"type":"string","description":"Two-letter country code to filter by (e.g. 'US', 'UK'). Optional."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Max entries to return (default 20)."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_points_valuation","description":"Get the cents-per-point valuation for a credit-card points/miles currency or hotel program — answers \"what is a Chase/Amex/Capital One/Avios/Marriott/Hyatt point worth?\". Returns the headline cents-per-point, the value we've actually observed across logged redemptions (with sample size) when available, and the best way to use the currency. Pass a slug (e.g. chase-ultimate-rewards) or a loose name (e.g. \"amex points\", \"hyatt\"). Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"currency":{"type":"string","description":"Points/miles currency — a slug (chase-ultimate-rewards) or loose name (\"amex points\", \"marriott\", \"hyatt\")."}},"required":["currency"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_cancellation_fee","description":"Get the award-ticket cancellation/redeposit fee for an airline's OWN loyalty programme (e.g. British Airways Avios, Qatar Privilege Club, Virgin Atlantic Flying Club). Returns the headline fee, who is exempt (elite tiers), and a source link. Accepts a slug or a loose airline name. NOTE: fees for booking a carrier through a PARTNER programme differ — this returns the airline's direct policy. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","description":"Airline slug or name, e.g. 'british-airways', 'Qatar Airways', 'virgin'."}},"required":["airline"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_award_chart_faq","description":"Get curated award-chart FAQs, sweet spots, and booking tips for a loyalty programme (e.g. Aeroplan, British Airways Avios, AAdvantage, Flying Blue, World of Hyatt). Use to answer questions about a programme's award pricing, best redemptions, and how to book. Accepts a programme slug OR a loose name. Returns editorial Q&A you can cite directly. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Programme slug or loose name, e.g. 'aeroplan', 'British Airways', 'avios', 'world-of-hyatt'."}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"submit_feedback","description":"Email a user's confirmed feedback or bug report to Award Travel Finder support. Use this when the user explicitly wants to report a bug, share feedback, request an improvement, or report an incorrect AI result. Collect a concise summary and details first; for bugs, collect reproduction steps and expected/actual behaviour when possible. Only send after the user confirms the summary, or has clearly asked you to send the complete report. Never use this for ordinary travel questions.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"type":{"type":"string","enum":["feedback","bug"],"description":"Whether this is general feedback or a bug report."},"summary":{"type":"string","maxLength":160,"description":"A concise title for the feedback or bug."},"details":{"type":"string","maxLength":4000,"description":"What the user wants the Award Travel Finder team to know."},"steps_to_reproduce":{"type":"string","maxLength":4000,"description":"For bugs, the steps that reproduce the problem, if known."},"expected_behavior":{"type":"string","maxLength":4000,"description":"For bugs, what the user expected to happen."},"actual_behavior":{"type":"string","maxLength":4000,"description":"For bugs, what actually happened."},"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."}},"required":["type","summary","details","confirmed"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"render_ui","description":"Render a visual card in the chat instead of writing a markdown table or a long list of numbers. Use it for comparisons, cost breakdowns, transfer paths, plans, rankings, and any answer with more than ~3 numbers in it. Compose the card from blocks; every block is optional and you can repeat kinds.\n\nBlock kinds:\n- stats — headline numbers. items: [{label, value, sub}]\n- table — columns: [\"Program\",\"Points\"], rows: [[\"Aeroplan\",\"60,000\"]]\n- bars  — visual comparison. unit: \"pts\", items: [{label, value (number), note}]\n- steps — an ordered path or plan. items: [{label, detail}]\n- list  — rows with an optional right-hand value and link. items: [{title, subtitle, meta, value, url}]\n- note  — a callout. tone: info|warn|success|danger, text\n\nPlain text only in every field — no markdown, no HTML. Keep your written reply to a sentence or two; the card carries the detail, so do not restate it. Do NOT call this after a search/hotel/transfer tool that already returned its own card.\n","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"title":{"type":"string","description":"Card heading, e.g. \"SFO → NRT in business\"."},"subtitle":{"type":"string","description":"One-line context under the heading."},"blocks":{"type":"array","description":"Blocks to render, in order. Max 10.","items":{"type":"object","properties":{"kind":{"type":"string","enum":["stats","table","bars","steps","list","note"],"description":"Block kind."},"items":{"type":"array","description":"Rows for stats/bars/steps/list. Objects whose keys depend on the kind.","items":{"type":"object"}},"columns":{"type":"array","description":"table: column headers.","items":{"type":"string"}},"rows":{"type":"array","description":"table: rows of cell strings.","items":{"type":"array","items":{"type":"string"}}},"caption":{"type":"string","description":"table: optional caption under the table."},"unit":{"type":"string","description":"bars: unit shown after each value, e.g. \"pts\"."},"tone":{"type":"string","enum":["info","warn","success","danger"],"description":"note: callout tone."},"text":{"type":"string","description":"note: the callout body."}},"required":["kind"]}}},"required":["blocks"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_get_seatmap","description":"Get the seat map for a flight from our database. Shows all seats, cabin classes, characteristics, and availability as both text and an interactive visual seatmap. Returns cached data — for fresh/updated data, use search_flight (sign in via OAuth).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number including airline code, e.g. 'QF1', 'AA716', 'BA178'"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_find_best_seats","description":"Find the best available seats on a flight matching user preferences like window, aisle, extra legroom, exit row, quiet zone, etc. Returns a ranked list and an interactive seatmap with recommended seats highlighted.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1'"},"preferences":{"type":"array","items":{"type":"string","enum":["window","aisle","extra_legroom","exit_row","quiet_zone","front","rear","bulkhead"]},"description":"Seat preferences to match"},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"],"description":"Optional cabin class filter"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number","preferences"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_get_seat_info","description":"Get detailed information about a specific seat on a flight, including characteristics, cabin class, availability, and pricing. Also renders the interactive seatmap.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1'"},"seat_number":{"type":"string","description":"Seat number, e.g. '12A', '1F', '32K'"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number","seat_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_search_flight","description":"Search for a flight and get fresh seatmap data. Requires a signed-in account — connect this server to sign in via OAuth. Paid plan users can fetch new flights not yet in our database. Uses a search credit. Returns an interactive seatmap with the results.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1', 'AA716'"},"flight_date":{"type":"string","description":"Flight date in YYYY-MM-DD format (defaults to today)"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_interactive_seat_finder","description":"Seat finder that recommends the best seats on a flight and renders an interactive seatmap. Good default when the user wants help finding a seat but hasn't specified preferences.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1', 'AA716'"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_get_seat_reviews","description":"Get user-submitted reviews for a flight, optionally filtered to a specific seat. Shows ratings, comments, seat number, cabin, and helpfulness votes. Free — no auth required.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1'"},"seat_number":{"type":"string","description":"Optional seat number to filter reviews (e.g. '12A')"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_list_seat_alerts","description":"List all your seat alerts (active and inactive). Shows which seats you're being notified about, priority, days until flight, and last check time. Requires authentication.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_create_seat_alert","description":"Create a seat alert that notifies you by email when a matching seat becomes available on a specific flight. Supports preferences like window, aisle, exit row, specific seat, adjacent seats, and class availability. Requires authentication. The flight must already be in our database — use search_flight first if not.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1', 'AA716'"},"flight_date":{"type":"string","description":"Flight date in YYYY-MM-DD format. Must be today or within the next 60 days."},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"],"description":"Cabin class to monitor"},"seat_preference":{"type":"string","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"],"description":"Seat preference to alert on"},"specific_seat":{"type":"string","description":"Required when seat_preference is 'specific' (e.g. '12A')"},"adjacent_seats_count":{"type":"integer","minimum":2,"maximum":9,"description":"Required when seat_preference is 'adjacent_seats' or 'minimum_seats' (2-9)"}},"required":["flight_number","flight_date","cabin_class","seat_preference"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_delete_seat_alert","description":"Delete a seat alert by its ID. Use list_seat_alerts to find the alert ID. Requires authentication.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alert_id":{"type":"integer","description":"ID of the seat alert to delete"}},"required":["alert_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_discover_more_flight_tools","description":"Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering award flights, airport delays/wait times, and lounges.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_wifi_facts","description":"Best answer for \"will this flight have WiFi\". Predicts the WiFi provider for a flight number on a given date, with probability, the tail number expected to operate it, aircraft type, and the airline fleet fallback. Prefer this over get_flight_wifi.","inputSchema":{"type":"object","properties":{"flight_number":{"type":"string","description":"IATA flight number, e.g. \"UA123\""},"date":{"type":"string","description":"Flight date in YYYY-MM-DD format. Defaults to today."}},"required":["flight_number"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_flight_wifi","description":"Shorter WiFi lookup for a flight number: provider, confidence, airline, aircraft, and Starlink status. Use get_wifi_facts instead when you need the date, tail number, or reasoning.","inputSchema":{"type":"object","properties":{"flight_number":{"type":"string","description":"IATA flight number, e.g. \"UA123\" or \"DL456\""}},"required":["flight_number"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_airline_wifi","description":"WiFi providers an airline uses fleet-wide, plus a fleet summary and whether WiFi is free. Use when the question is about the airline rather than one flight.","inputSchema":{"type":"object","properties":{"airline_code":{"type":"string","description":"IATA airline code, e.g. \"UA\" for United, \"DL\" for Delta"}},"required":["airline_code"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_rollouts","description":"Starlink and satellite WiFi rollout progress per aircraft type: status (complete, in_progress, planned, announced), fleet percentage, and expected completion. Omit airline_code for every tracked airline.","inputSchema":{"type":"object","properties":{"airline_code":{"type":"string","description":"Optional IATA airline code to filter rollouts, e.g. \"UA\""}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_speed_stats","description":"Crowd-sourced in-flight WiFi speed reports: average download/upload Mbps, latency, and a per-provider breakdown. Use for \"is the WiFi fast enough\" questions. Pass a flight_number or an airline_code, not both.","inputSchema":{"type":"object","properties":{"flight_number":{"type":"string","description":"IATA flight number, e.g. \"UA123\""},"airline_code":{"type":"string","description":"IATA airline code, e.g. \"UA\""}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_tail_info","description":"WiFi provider history for one aircraft by tail number, including crowd-sourced reports and fleet assignment. Use when the exact airframe is known.","inputSchema":{"type":"object","properties":{"tail_number":{"type":"string","description":"Aircraft registration / tail number, e.g. \"N12345\""}},"required":["tail_number"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_search_wifi","description":"Free-text search across airlines and flights when you only have a name or partial term. Use a specific tool instead when you already have a flight number, airline code, or tail number.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query, e.g. \"United\" or \"UA123\""}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_list_airlines","description":"Every airline SeatWiFi tracks, with its WiFi providers. Large response — use search_wifi or get_airline_wifi when you know which airline you want.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_search_lounges","description":"Search airport lounges worldwide by name, airport name, IATA code, city, or country. Returns matching lounges with amenities, access methods, and ratings. Use this to find specific lounges or discover lounges in a location.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","minLength":2,"description":"Search query (lounge name, airport name, IATA code, city, or country)"}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_airport_lounges","description":"Get all airport lounges at a specific airport by IATA code. Returns every lounge at the airport with terminal location, amenities, access methods, and ratings.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"iata":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Airport IATA code (e.g. LHR, JFK, SIN)"}},"required":["iata"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_lounge_details","description":"Get detailed information about a specific airport lounge by its slug. Returns full description, amenities, access methods, opening hours, capacity, ratings, and reviews count.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"slug":{"type":"string","description":"Lounge slug (from search results or airport lounges)"}},"required":["slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_find_lounges_by_access","description":"Find all airport lounges accessible with a specific credit card, membership program, airline club, alliance status, or ticket class. For example, find all lounges you can access with your Amex Platinum or Priority Pass membership.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"access_method":{"type":"string","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"],"description":"Access method slug (e.g. amex-platinum, priority-pass, chase-sapphire-reserve, business-class, star-alliance-gold)"}},"required":["access_method"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_list_access_methods","description":"List all available lounge access methods including credit cards (Amex Platinum, Chase Sapphire Reserve, etc.), membership programs (Priority Pass, LoungeKey, etc.), airline clubs, alliance status levels, and ticket classes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_list_networks","description":"List all lounge networks (Priority Pass, LoungeKey, DragonPass, Plaza Premium, Amex Centurion) with their descriptions and total lounge counts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_network_lounges","description":"Get all lounges in a specific lounge network. Returns every lounge that accepts a particular network membership (e.g. all Priority Pass lounges worldwide).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"network":{"type":"string","enum":["priority-pass","loungekey","dragonpass","plaza-premium","amex-centurion"],"description":"Network slug (priority-pass, loungekey, dragonpass, plaza-premium, amex-centurion)"}},"required":["network"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_discover_more_flight_tools","description":"Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering award flights/points redemptions, aircraft seatmaps, and airport delays/wait times — with one-line install URLs. Call this when the user asks about points/miles, seat selection, airport delays/security waits, or 'what other flight tools are there?'","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_profile","description":"Get your Airport Lounge List profile — username, stats (reviews, visits, wishlisted lounges), and recent activity.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_passport","description":"Get your lounge passport — stats (lounges visited, airports, countries, reviews), country stamps, full visit history, and your reviews. Includes a shareable passport URL when your profile is public.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_reviews","description":"Get your lounge reviews, including pending ones. Returns rating, content, approval status, and lounge info.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":"integer","description":"Max reviews to return (default 20, max 50)"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_write_review","description":"Write a review for a lounge. Requires the lounge slug, a rating (1-5), and review text (min 10 characters).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results)"},"rating":{"type":"integer","description":"Rating from 1 (poor) to 5 (excellent)","minimum":1,"maximum":5},"content":{"type":"string","description":"Review text (minimum 10 characters)","minLength":10}},"required":["lounge_slug","rating","content"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_update_review","description":"Update your review of a lounge — change the rating and/or the text. Identify the review by lounge_slug.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the review to update"},"rating":{"type":"integer","description":"New rating, 1-5","minimum":1,"maximum":5},"content":{"type":"string","description":"New review text (minimum 10 characters)","minLength":10}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_delete_review","description":"Delete your review of a lounge. Identify it by lounge_slug.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the review to delete"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_visits","description":"Get your visited lounges list with dates and notes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":"integer","description":"Max visits to return (default 20, max 50)"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_mark_lounge_visited","description":"Log a lounge visit (check in). Identify the lounge by its slug OR by lounge_name + airport_iata. Optionally add a 1-5 rating and notes. Idempotent: logging the same lounge on the same date updates the existing visit's rating/notes instead of creating a duplicate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results). Preferred if known."},"lounge_name":{"type":"string","description":"Lounge name — use with airport_iata if you don't have the slug."},"airport_iata":{"type":"string","description":"3-letter airport IATA code — use with lounge_name."},"visited_at":{"type":"string","format":"date","description":"Date of visit (YYYY-MM-DD)"},"rating":{"type":"integer","description":"Your rating, 1 (poor) to 5 (excellent)","minimum":1,"maximum":5},"notes":{"type":"string","description":"Optional notes about your visit"}},"required":["visited_at"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_update_visit","description":"Update one of your logged lounge visits — change the rating, notes, or date. Identify the visit by lounge_slug; if you have multiple visits to the same lounge, pass visited_at to pick the one to update.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the visit to update"},"visited_at":{"type":"string","format":"date","description":"Existing visit date (YYYY-MM-DD) — needed only to disambiguate multiple visits"},"rating":{"type":"integer","description":"New rating, 1-5","minimum":1,"maximum":5},"notes":{"type":"string","description":"New notes"},"new_visited_at":{"type":"string","format":"date","description":"Change the visit date to this (YYYY-MM-DD)"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_delete_visit","description":"Delete one of your logged lounge visits. Identify it by lounge_slug; pass visited_at to pick a specific date if you have multiple visits to the same lounge.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the visit to delete"},"visited_at":{"type":"string","format":"date","description":"Visit date (YYYY-MM-DD) — needed only to disambiguate multiple visits"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_wishlist","description":"Get your lounge wishlist — lounges you want to visit.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_add_to_wishlist","description":"Add a lounge to your wishlist. Idempotent — adding a lounge already on your wishlist is a no-op.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results)"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_remove_from_wishlist","description":"Remove a lounge from your wishlist.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results)"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_list_cards","description":"List credit cards in the database. Returns compact summaries (id, fees, welcome bonus value, top multipliers). Use get_card for full details.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"type":"string","enum":["amex","chase","bilt","capital-one","anz","nab","westpac","cba","barclaycard","hsbc","virgin-money","lloyds","currensea","yonder","other"],"description":"Filter by issuer."},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Filter by region/country."},"card_type":{"type":"string","enum":["personal","business"],"description":"Filter by personal vs business."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_get_card","description":"Get full details for a single card, including all multipliers, all benefits, welcome bonus, and source URL.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"Card id, e.g. \"amex-gold-us\". Use list_cards to discover ids."}},"required":["id"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_compare_cards","description":"Compare 2–4 cards side by side: annual fees, welcome bonuses, top multipliers, and total benefit credits. Pass card ids from list_cards.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":4,"description":"Card ids to compare, e.g. [\"amex-gold-us\", \"chase-sapphire-preferred\"]."}},"required":["ids"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_find_cards_for_category","description":"Find cards with the best earning multiplier for a spend category (e.g. \"dining\", \"groceries\", \"petrol\", \"travel\"). Returns cards sorted by multiplier descending.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"type":"string","description":"Spend category — supports UK/AU terms like \"petrol\", \"chemist\", \"woolworths\"."},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"]},"card_type":{"type":"string","enum":["personal","business"]},"min_multiplier":{"type":"number","description":"Only return cards at or above this multiplier."},"limit":{"type":"number","description":"Max results (default 10)."}},"required":["category"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_rank_welcome_bonuses","description":"List current welcome bonuses sorted by point/mile value descending. Optionally filter by spend achievability.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"]},"card_type":{"type":"string","enum":["personal","business"]},"monthly_spend":{"type":"number","description":"Monthly spend in the card's local currency. If provided, only includes bonuses where required spend ≤ monthly_spend × months."},"min_value":{"type":"number","description":"Minimum bonus point/mile value."},"limit":{"type":"number","description":"Max results (default 20)."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_analyze_spending","description":"Given a breakdown of the user's monthly spending, estimate annual rewards for each card and rank them. Includes net annual fee after benefit credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"monthly_spending":{"type":"array","description":"Array of {category, amount} for the user's typical monthly spend. Amounts in the local currency of the chosen region.","items":{"type":"object","properties":{"category":{"type":"string"},"amount":{"type":"number"}},"required":["category","amount"]}},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Region of cards to evaluate. Defaults to US."},"card_type":{"type":"string","enum":["personal","business"]},"limit":{"type":"number","description":"Max cards to return (default 10)."}},"required":["monthly_spending"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_list_changes","description":"List recent card data changes (welcome bonus updates, fee changes, multiplier edits). Useful for \"what changed recently?\" queries.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"card_id":{"type":"string","description":"Filter to changes for one card."},"days":{"type":"number","description":"Look back this many days (default 30)."},"limit":{"type":"number","description":"Max results (default 50)."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_list_transfer_partners","description":"List transferable points programs and their airline/hotel partners. Region filter shows programs relevant to that market (e.g. region=UK shows UK Amex MR, Barclaycard, HSBC).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"type":"string","description":"Filter to one provider, e.g. \"amex\" or \"anz\"."},"partner_type":{"type":"string","enum":["airline","hotel"]},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Filter to programs from a specific region."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_find_transfer_programs_for_airline","description":"Find which transferable points programs can transfer to a given airline or hotel. Optionally filter by region to see locally relevant programs.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"partner_name":{"type":"string","description":"Airline or hotel name, e.g. \"Qantas\", \"Virgin Atlantic\", \"Hyatt\"."},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Filter to programs from a specific region."}},"required":["partner_name"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"viator_get_experience_details","description":"Retrieves enriched information for a specific Viator experience, including detailed descriptions, highlights, imagery, pricing, duration, key features, and the click-out URL.It also returns what is included and excluded in the price, high-level itinerary metadata, bookable experience options, traveler age bands and booking constraints, start/end locations and traveler pickup, additional information such as requirements and restrictions, available language guides, associated destinations, the operating time zone, the operator, every image for the experience with its available dimension variants and captions, and the cancellation policy covering the refund terms, weather and minimum-traveler cancellation conditions, and how much is refundable depending on how far in advance the booking is cancelled.The model should call this tool only when the user clearly refers to a specific experience—either by selecting it in the UI or by asking follow-up questions such as “Tell me more about…”;if multiple experiences were ","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."},"language":{"type":"string","description":"(deprecated) This value is deprecated and should not be sent. Please only send the locale."},"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."},"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."}},"required":["code","sessionId"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"viator_search_experiences","description":"Retrieves a curated list of Viator experiences based on a free-text search of what the user wants (destination, activity type, and preferences), plus trip dates and optional refiners (budget, duration, etc.). The model must supply a non-blank searchTerm as natural language describing where and what the user is looking for (e.g. \"walking tours in Paris, France\", \"kid friendly food experiences in Rome\"). Dates, prices, duration limits, and currency belong in their dedicated parameters—not inside searchTerm. The model must provide searchTerm and dates before calling this tool. The model may re-issue a refined searchExperiences call whenever the user adds, removes, or adjusts refinement criteria (e.g., kid-friendly, price range, shorter duration) to narrow or improve the results. If the tool returns zero results, the model must proactively guide the user toward a successful refinement. It should review the parameters used in the failed request and recommend the most appropriate based on the proposed logic:\" If > ","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"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."},"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."},"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."},"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”)."},"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"},"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."},"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."}},"required":["searchTerm","startDate","endDate","sessionId"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}}]}},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"prompts_list":{"status":"ok","latency_ms":321.97,"details":{"url":"https://awardtravelfinder.com/mcp","payload":{"jsonrpc":"2.0","id":3,"result":{"prompts":[]}},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"no_prompt_name"}},"resources_list":{"status":"ok","latency_ms":121.66,"details":{"url":"https://awardtravelfinder.com/mcp","payload":{"jsonrpc":"2.0","id":5,"result":{"resources":[{"uri":"portfolio://current","name":"portfolio","title":"Your portfolio","description":"Aggregate view of the user's points balances + integration-synced totals.","mimeType":"application/json"},{"uri":"monitors://active","name":"monitors","title":"Active route monitors","description":"Saved route alerts that fire when fresh award seats appear.","mimeType":"application/json"},{"uri":"bookings://upcoming","name":"bookings","title":"Upcoming redemptions","description":"Tracked award flights + hotel stays that haven't departed.","mimeType":"application/json"},{"uri":"alerts://recent","name":"alerts","title":"Recent alerts","description":"Latest in-app notifications for the user (price drops, monitor hits, etc.).","mimeType":"application/json"},{"uri":"integrations://status","name":"integrations","title":"Connected integrations","description":"Which external services the user has connected (seats.aero, AwardWallet, ...).","mimeType":"application/json"},{"uri":"ui://awardtravelfinder/card","name":"atf_card","title":"Award Travel Finder card","description":"Interactive card that renders Award Travel Finder tool results — flight and hotel award availability, transfer paths, portfolios and more.","mimeType":"text/html;profile=mcp-app"}]}},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"resource_read":{"status":"auth_required","latency_ms":99.84,"details":{"url":"https://awardtravelfinder.com/mcp","error":"Client error '401 Unauthorized' for url 'https://awardtravelfinder.com/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401","http_status":401,"payload":{},"headers":{"content-type":"application/json; charset=utf-8","strict-transport-security":"max-age=63072000; includeSubDomains","www-authenticate":"Bearer resource_metadata=\"https://awardtravelfinder.com/.well-known/oauth-protected-resource\", scope=\"mcp:read\", error=\"invalid_token\", error_description=\"Authorization required\""},"reason":"auth_required","resource_uri":"portfolio://current"}},"determinism_probe":{"status":"ok","latency_ms":264.77,"details":{"attempts":2,"successful":2,"matches":0,"stable_ratio":0.0,"baseline_signature":"1257975b01c0e9af646f51ffec51aaf65f6e504f247500d18d6e0b7f6b1727c2","errors":[]}},"instruction_tool_reference_probe":{"status":"ok","latency_ms":null,"details":{"referenced_tools":[],"missing_tools":[],"observed_tool_count":137}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"ok","latency_ms":null,"details":{"oauth_present":true,"auth_required_checks":["resource_read"],"supported_scopes":["mcp:read"],"scope_specificity_ratio":1.0,"broad_scopes":[],"challenge_headers":["Bearer resource_metadata=\"https://awardtravelfinder.com/.well-known/oauth-protected-resource\", scope=\"mcp:read\", error=\"invalid_token\", error_description=\"Authorization required\""],"step_up_signals":["Bearer resource_metadata=\"https://awardtravelfinder.com/.well-known/oauth-protected-resource\", scope=\"mcp:read\", error=\"invalid_token\", error_description=\"Authorization required\""],"minimal_scope_documented":true}},"transport_compliance_probe":{"status":"error","latency_ms":201.12,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":false,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":200,"bad_protocol_payload":{"jsonrpc":"2.0","id":410,"result":{"tools":[{"name":"search_all_airlines","description":"Search award flight availability across every airline currently LIVE for a route and date, in parallel. The live list is measured from real searches in the last 72h (see list_supported_airlines); airlines whose source is down, blocked or login-walled are not fanned out to, and the response's `coverage` field says how many were. Any catalogued airline can still be requested by name with search_availability. Returns combined results grouped by airline. This is the recommended starting point — use single-airline search only if you need a specific airline. Requires sign-in. Free accounts get 3 economy searches/day; Premium ($9.99/mo) gets unlimited searches across every cabin.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"departure_code":{"type":"string","pattern":"^[A-Z]{3}$","description":"Departure airport IATA code (e.g. LHR)"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$","description":"Arrival airport IATA code (e.g. JFK)"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Travel date (YYYY-MM-DD)"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"],"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","minimum":0,"maximum":7,"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."}},"required":["departure_code","arrival_code","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_availability","description":"Search live award availability for a specific airline, route, and date. 30 airlines can be requested, but only those list_supported_airlines reports as live are returning seats right now — when a source is down, blocked, or needs a member login the result says so explicitly instead of reporting zero seats, so never read an unsearchable source as 'no availability'. Requires sign-in. Free accounts get 3 economy searches/day; Premium ($9.99/mo) gets unlimited searches across every cabin.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","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"]},"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"],"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."}},"required":["airline","departure_code","arrival_code","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_supported_airlines","description":"List the airlines ATF can search for award seats, with their LIVE status: which returned real award data in the last 72h, which are degraded (source down, blocked, or behind a member login) and which are idle. search_all_airlines only fans out to live sources, so call this before promising coverage or when a search comes back thin. Public, no sign-in.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_monthly_availability","description":"Search award flight availability for an entire month. Returns day-by-day availability with points costs. Renders as an interactive rate calendar. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","enum":["british_airways","qatar_airways","cathay_pacific","virgin_atlantic","iberia","qantas","qantas_rewards","etihad","smiles"]},"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}(-\\d{2})?$","description":"Month to search (YYYY-MM or YYYY-MM-DD)"}},"required":["airline","departure_code","arrival_code","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_pricing","description":"Get the award pricing chart for a specific airline route. Shows points required per cabin class (off-peak/peak). No date needed. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","enum":["british_airways","qatar_airways","cathay_pacific","virgin_atlantic","iberia","emirates","qantas"]},"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"}},"required":["airline","departure_code","arrival_code"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_hybrid","description":"Find the cheapest way to fly by combining cash tickets with award redemptions into one split-ticket journey. Searches cash fares (Google Flights) and award availability across airlines, then combines the best cash leg with the best award leg via connecting hubs. Best for premium cabins (business/first) on long-haul routes. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","business","first"],"description":"Target cabin class (default: business)"},"points_value_cents":{"type":"number","description":"How you value points in cents/pence per point (default: 1.5)"}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_award_trip_details","description":"Get flight-level detail for one award result from search_all_airlines or search_availability: flight numbers, aircraft, departure/arrival times, stops, and direct booking links into the mileage programme. Pass the `trip_id` from a seats.aero result row. Requires a connected seats.aero account.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"trip_id":{"type":"string","description":"The `trip_id` field from an award search result row"}},"required":["trip_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_program_rates","description":"Get the full award chart rates for a specific loyalty program. Returns all destinations with points required per cabin class including off-peak/peak pricing. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","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"],"description":"Loyalty program slug (e.g. british-airways, emirates, aeroplan)"}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_buy_points_pricing","description":"Get the cost to buy points/miles for a loyalty program. Returns tiered base purchase pricing and any active bonus promotion. Use to answer 'how much does it cost to buy X Avios/miles/points?' If no program specified, returns all programs with pricing data. Free — no account needed.","inputSchema":{"$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"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_status_matches","description":"Get current airline status match offers. Returns active promotions where you can match elite status from one airline to another. Includes direct apply links. Each program also has a detailed FAQ page at awardtravelfinder.com/status-match/{program-slug} with eligibility, requirements, and step-by-step instructions. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alliance":{"type":"string","enum":["SkyTeam","Star Alliance","oneworld"],"description":"Filter by airline alliance"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_hotels","description":"Search for hotels by name, city, or brand. Returns hotel codes needed for availability checks and price monitoring. Supports Marriott, Hilton, IHG, and Hyatt. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Hotel name or city"},"brand":{"type":"string","enum":["Marriott","Hilton","IHG","Hyatt"]},"limit":{"type":"integer","minimum":1,"maximum":20}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_hotel_availability","description":"Get current points availability for a hotel on specific dates. Use BEFORE monitor_hotel_price to find the correct rate_plan and current points rate. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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}$"}},"required":["hotel_code","check_in_date","check_out_date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"monitor_hotel_price","description":"Start monitoring a hotel points booking for price drops. Checks daily and sends email alerts when the points rate decreases. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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}$"},"original_points":{"type":"integer","minimum":1,"description":"TOTAL points cost (per-night rate x nights)"},"room_type":{"type":"string"},"rate_plan":{"type":"string"},"confirmation_number":{"type":"string"},"notes":{"type":"string"}},"required":["hotel_code","check_in_date","check_out_date","original_points","room_type","rate_plan"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"add_hotel_booking","description":"Log a hotel booking to the user's portfolio — award (points, with price-drop monitoring) or cash (paid with money; set kind:\"cash\" and original_pay_rate_usd). Use hotel_id from search_hotels / get_hotel_availability results. Pass trip_id to file the stay under a workspace Trip so it shows grouped with the matching flights. Works great with Gmail — pull check-in/out dates, room type, rate and confirmation number from the reservation email. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"hotel_id":{"type":"string","description":"Hotel identifier from search_hotels / get_hotel_availability results."},"check_in_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"check_out_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"kind":{"type":"string","enum":["award","cash"],"description":"award = points stay with price-drop monitoring (default); cash = paid with money. Defaults to award."},"original_points":{"type":"integer","minimum":1,"description":"Award bookings only. Total points paid for the stay."},"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)."},"cash_rate_currency":{"type":"string","description":"Currency of original_pay_rate_usd. Defaults to USD."},"room_type":{"type":"string"},"rate_plan":{"type":"string"},"confirmation_number":{"type":"string"},"trip_id":{"type":"integer","description":"Optional id of a workspace Trip (from create_trip / list_trips) to file this stay under."},"notes":{"type":"string"}},"required":["hotel_id","check_in_date","check_out_date"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_hotel_bookings","description":"List all hotel bookings being monitored for price drops. Shows current vs. original points rates.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_hotel_booking","description":"Get details and full price history of a monitored hotel booking.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_hotel_booking","description":"Update a tracked hotel booking — correct dates, room type, points, rate, confirmation number, etc. Do NOT use this to cancel a booking — use delete_hotel_booking instead.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1},"hotel_id":{"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}$"},"kind":{"type":"string","enum":["award","cash"]},"original_points":{"type":"integer","minimum":0},"original_pay_rate_usd":{"type":"number","minimum":0},"cash_rate_currency":{"type":"string"},"room_type":{"type":"string"},"rate_plan":{"type":"string"},"confirmation_number":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"notes":{"type":"string"}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_hotel_booking","description":"Remove a tracked hotel booking from the user's portfolio. Use when the trip is cancelled or the booking was added by mistake.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"add_flight_booking","description":"Log a flight booking/redemption — award (points) or cash (paid with money; set kind:\"cash\" and cash_paid). For multi-leg trips (connecting flights, open-jaw, return), call this once per leg using the same trip_id — put the total cost on the first leg and 0 on subsequent legs. Works great with Gmail — extract booking details from confirmation emails. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"departure_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"kind":{"type":"string","enum":["award","cash"],"description":"award = points/miles redemption (default); cash = paid with money. Defaults to award."},"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."},"program":{"type":"string","description":"Award bookings only. Loyalty program used."},"cash_paid":{"type":"number","minimum":0,"description":"Cash bookings only. Total cash fare paid for this leg, in taxes_currency (default USD)."},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"]},"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."},"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."},"flight_number":{"type":"string"},"return_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"taxes_paid":{"type":"number"},"taxes_currency":{"type":"string","description":"Currency for taxes_paid and cash_paid. Defaults to USD."},"passengers":{"type":"integer","minimum":1},"confirmation_number":{"type":"string"},"notes":{"type":"string"}},"required":["airline","origin","destination","departure_date","cabin_class"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_flight_bookings","description":"List all tracked flight award bookings/redemptions. Shows airlines, routes, points spent, and cabin classes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_flight_booking","description":"Get details of a specific flight booking/redemption.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_flight_booking","description":"Update a tracked flight booking. Use to correct details or add confirmation numbers. Do NOT use this to cancel a booking — use delete_flight_booking instead.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1},"airline":{"type":"string"},"flight_number":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"departure_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"return_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"]},"kind":{"type":"string","enum":["award","cash"]},"points_spent":{"type":"integer","minimum":0},"program":{"type":"string"},"cash_paid":{"type":"number","minimum":0},"taxes_paid":{"type":"number"},"trip_id":{"type":"string"},"confirmation_number":{"type":"string"},"notes":{"type":"string"}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_flight_booking","description":"Cancel or remove a tracked flight booking. Use this when the user says the flight is cancelled, superseded, no longer happening, or asks to remove/archive it.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"booking_id":{"type":"integer","minimum":1}},"required":["booking_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_voucher_types","description":"Browse the catalogue of companion & upgrade voucher types (UK + US): BA Amex companion (Travel Together), Barclaycard/Lloyds Avios upgrade vouchers, Virgin Atlantic companion, Delta/American/Alaska companion certificates, Southwest Companion Pass, United PlusPoints. Optionally filter by region (UK/US) or category. Free reference data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"region":{"type":"string","enum":["UK","US"],"description":"Filter by issuer region."},"category":{"type":"string","enum":["companion","upgrade","companion_pass","upgrade_cert"],"description":"Filter by voucher category."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_my_vouchers","description":"List the companion/upgrade vouchers the user holds, including which booking each is applied to. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"add_voucher","description":"Add a companion/upgrade voucher the user holds to their inventory. Use list_voucher_types to find the voucher_slug. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"voucher_slug":{"type":"string","description":"Slug from list_voucher_types, e.g. 'ba-amex-premium-plus-companion'."},"expires_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Voucher expiry date (YYYY-MM-DD)."},"reference":{"type":"string","description":"Voucher code or membership reference."},"notes":{"type":"string"}},"required":["voucher_slug"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"apply_voucher_to_booking","description":"Apply a held voucher to a flight or hotel booking (e.g. a BA companion voucher onto a flight redemption, or a Barclaycard upgrade voucher onto a Club World leg). Omit booking_id to detach the voucher. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"voucher_id":{"type":"integer","minimum":1,"description":"ID of the user's voucher (from list_my_vouchers)."},"booking_type":{"type":"string","enum":["flight","hotel"],"description":"Whether booking_id refers to a flight redemption or a hotel booking."},"booking_id":{"type":"integer","minimum":1,"description":"ID of the booking to apply the voucher to. Omit to detach."}},"required":["voucher_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_voucher","description":"Remove a voucher from the user's inventory.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"voucher_id":{"type":"integer","minimum":1}},"required":["voucher_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_points_balance","description":"Update your points/miles balance for a loyalty program. Creates the program if it doesn't exist, or updates the balance if it does. Use with Gmail to extract balance notifications and keep your portfolio current. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Loyalty program name"},"balance":{"type":"integer","minimum":0}},"required":["program","balance"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_points_balances","description":"List all your loyalty program points/miles balances.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_points_balance","description":"Remove a loyalty program from your points balances — e.g. you closed the account or added it by mistake. Use the program name as shown by list_points_balances. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Loyalty program name to remove (as shown by list_points_balances)"}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"set_loyalty_status","description":"Record or update the user's elite/loyalty status with an airline or hotel program (e.g. Marriott Bonvoy Titanium, BA Executive Club Gold, AA Executive Platinum). Knowing this lets the assistant flag perks like free breakfast, suite upgrades, lounge access, and free award nights when planning trips. Use exact tier names from the reference table: British Airways Executive Club → Blue/Bronze/Silver/Gold; Delta SkyMiles → Silver/Gold/Platinum/Diamond Medallion; Marriott Bonvoy → Member/Silver Elite/Gold Elite/Platinum Elite/Titanium Elite/Ambassador Elite; World of Hyatt → Member/Discoverist/Explorist/Globalist.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"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."},"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."},"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."},"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."},"target_tier":{"type":"string","description":"Optional — a tier the user is chasing (must be a valid tier for the program)."},"notes":{"type":"string","description":"Optional notes (free-form)."}},"required":["program","tier"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_loyalty_statuses","description":"List the user's tracked elite/loyalty statuses across airlines and hotels.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_loyalty_status","description":"Remove a tracked elite/loyalty status (e.g. when it lapses and the user doesn't want to renew it).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string"}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"set_status_progress","description":"Update the user's qualifying progress toward an elite tier — their current tier-points / XP / Loyalty Points / qualifying nights, the date their qualifying year ends, and (optionally) a target tier they're chasing. Use this to answer 'how far am I from BA Gold?'. If no status is tracked for the program yet, also pass `tier` (the user's CURRENT tier) and it will be created. Programs use different qualifying currencies — BA/Virgin: Tier Points; Flying Blue: XP; AA: Loyalty Points; United: PQP; Delta: MQD; hotels: nights.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Loyalty program slug — e.g. 'british-airways-executive-club', 'marriott-bonvoy'."},"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)."},"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."},"tier":{"type":"string","description":"Optional — the user's CURRENT tier. Required only if no status is tracked for this program yet."}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_status_progress","description":"Show the user's progress toward elite status across all their tracked loyalty programs — for each: current tier, qualifying balance, the next tier's threshold and what it unlocks, how far they are from it, and their requalification date. Answers 'how close am I to my next tier?' and 'what would the next tier get me?'. Read-only.","inputSchema":{"$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"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"calculate_flight_earnings","description":"Estimate the ELITE-QUALIFYING points a flight earns toward status — British Airways Tier Points, Air France/KLM Flying Blue XP, or American AAdvantage Loyalty Points — plus the great-circle distance. Answers 'how many tier points is LHR–JFK in business?' and 'how many BA tier points for a £600 fare?'. Tier Points and Loyalty Points are revenue-based (pass `fare_price`); Flying Blue XP is fixed per segment by distance + cabin. Use program slugs: 'british-airways-executive-club', 'air-france-klm-flying-blue', 'american-aadvantage'.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","description":"Origin airport IATA code, e.g. 'LHR'."},"destination":{"type":"string","description":"Destination airport IATA code, e.g. 'JFK'."},"program":{"type":"string","description":"Qualifying program slug: 'british-airways-executive-club', 'air-france-klm-flying-blue', or 'american-aadvantage'."},"cabin":{"type":"string","description":"Cabin: economy, premium, business, or first.","default":"economy"},"fare_price":{"type":"number","description":"Fare price for revenue-based programs (BA Tier Points, AA Loyalty Points). Base fare + carrier surcharges, excluding taxes."},"fare_currency":{"type":"string","description":"ISO currency of fare_price (e.g. GBP, USD, EUR). Defaults to the program's home currency."},"segments":{"type":"integer","minimum":1,"description":"Number of flight segments/legs (multiplies Flying Blue XP). Default 1."}},"required":["origin","destination","program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"recommend_status_path","description":"Recommend the cheapest path to an elite tier — EARN it through planned flying, RUN for it (a tier-point run), or MATCH/challenge into it from a status the user already holds. Uses the user's tracked statuses, booked flights, and the status-match graph. Answers 'what's the easiest way to get Qatar Gold?'. Premium. Pass the target program slug (e.g. 'qatar-privilege-club') and optionally a target tier; defaults to the next tier up from what they hold, else the top tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"target_program":{"type":"string","description":"Program slug to reach status with — e.g. 'qatar-privilege-club', 'british-airways-executive-club'."},"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."}},"required":["target_program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_award_release_window","description":"Look up when an airline opens award seats for booking (days from departure). Use this before searching for a date >330 days out to warn the user if inventory hasn't been loaded yet, and to suggest the right retry date or a route monitor.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","description":"IATA code (e.g. 'BA') or carrier name (e.g. 'British Airways')."}},"required":["airline"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_award_release_windows","description":"List all known per-airline award booking windows. Useful when the user asks 'when do award seats open?' generally.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_portfolio","description":"Get a complete summary of your travel rewards portfolio for signed-in users: points balances, spend on hotels and flights, upcoming and past trips, destinations, and monthly spending trends. Uses the same underlying snapshot as the server-loaded chat preamble; call after the user adds bookings or balances in-session when you need a refresh.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"log_lounge_visit","description":"Log an airport lounge visit to your portfolio: which lounge, airport, date, how you got in (Priority Pass, card, status, ticket), an optional 1-5 rating, and notes. Use with the lounge_* lookup tools to confirm the lounge name first. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airport_code":{"type":"string","description":"Airport IATA code, e.g. LHR"},"lounge_name":{"type":"string","description":"Lounge name, e.g. Qantas First Lounge"},"visit_date":{"type":"string","description":"Date of the visit (YYYY-MM-DD)"},"access_method":{"type":"string","description":"How you got in, e.g. Priority Pass, Amex Platinum, business ticket"},"rating":{"type":"integer","minimum":1,"maximum":5,"description":"Optional 1-5 rating"},"notes":{"type":"string","description":"Optional notes"}},"required":["airport_code","lounge_name","visit_date"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_lounge_visits","description":"List the airport lounge visits you've logged to your portfolio.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_lounge_visit","description":"Remove a lounge visit you previously logged with log_lounge_visit. Use list_lounge_visits to find the visit id. Paid feature.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"visit_id":{"type":"integer","description":"Id of the logged visit, from list_lounge_visits."}},"required":["visit_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"discover_more_flight_tools","description":"Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering aircraft seatmaps, airport delays/wait times, and lounges — with one-line install URLs. Call this when the user asks about seat selection, airport delays/security waits, baggage rankings, lounges, or 'what other flight tools are there?'","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_integrations","description":"List the external services the user can connect (seats.aero, AwardWallet, etc.) and their current connection status. Call this before any flight/hotel search if you suspect a connection is missing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"connect_integration","description":"Initiate the OAuth flow to connect an external integration. Returns the authorize URL; the user must open it in a browser to grant access. Use this when a tool returns connection_required.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider":{"type":"string","enum":["seats_aero","award_wallet","google_sheets","tripit","autopilot"],"description":"Which integration to connect"}},"required":["provider"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"disconnect_integration","description":"Revoke a previously connected integration. The OAuth tokens are deleted from ATF storage.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider":{"type":"string","enum":["seats_aero","award_wallet","google_sheets","tripit","autopilot"]}},"required":["provider"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sync_now","description":"Trigger an immediate refresh of the user's connected integrations (AwardWallet, Google Sheets, …) so balances/bookings are current before you answer. Use when the user asks to refresh, or when list_integrations shows stale data. Returns which connections are syncing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider":{"type":"string","enum":["seats_aero","award_wallet","google_sheets","tripit","autopilot"],"description":"Optional — sync just this provider. Omit to sync all connected integrations."}},"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"whats_on_sale","description":"List currently-active points sales: buy-points promos (airline + hotel) and transfer bonuses across credit-card and loyalty programs. No auth required. Useful as a starting point when a user asks 'what's a good deal right now?'.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"category":{"type":"string","enum":["all","airline","hotel","transfer"],"description":"Filter (default: all)"},"program":{"type":"string","description":"Filter to a single program (e.g. 'Avios', 'Marriott Bonvoy')"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"recommend_redemption","description":"Recommend the optimal points strategy for a specific trip given the user's known points balances. Combines active award availability + transfer bonuses + the user's portfolio. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":1,"maximum":9}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"audit_marriott_folio","description":"Audit a Marriott Bonvoy folio for commonly-disputable charges (resort fee on award stays, parking double-billing, destination fee, internet). Returns a finding list with a dispute template. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"folio_text":{"type":"string"},"stay_type":{"type":"string","enum":["award","cash","points_advance"]},"status_tier":{"type":"string","enum":["member","silver","gold","platinum","titanium","ambassador"]},"confirmation_number":{"type":"string"}},"required":["folio_text"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"compare_transfer_options","description":"Decide which points to use for a specific redemption. Given a target loyalty program and how many points it costs, ranks every transfer route from the user's own balances by real cash cost (cents-per-point), including multi-hop routes, active transfer bonuses, and how long each transfer takes to post. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"target_program":{"type":"string","description":"The program you need points in (e.g. 'Asia Miles', 'Avios', 'Aeroplan', 'Virgin Points')"},"points_needed":{"type":"integer","minimum":1,"description":"How many target-program points the redemption costs"}},"required":["target_program","points_needed"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"find_transfer_paths","description":"Find all transfer routes (direct AND multi-hop) to move points from one program to another, e.g. 'Amex Membership Rewards' to 'American Airlines AAdvantage'. Surfaces non-obvious second-hop routes through hotel programs, applies live transfer bonuses, and computes source points needed. Use when a card/program has no direct partner with the target.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"from_program":{"type":"string","description":"Program you have points in (e.g. 'Amex Membership Rewards', 'Chase', 'Marriott Bonvoy')"},"target_program":{"type":"string","description":"Program you want points in (e.g. 'American Airlines AAdvantage', 'Alaska', 'Avios')"},"points_needed":{"type":"integer","minimum":1,"description":"Optional: how many target-program points you need. Returns source points required per route."},"max_hops":{"type":"integer","minimum":1,"maximum":3,"description":"Max transfer steps to consider (default 3)"}},"required":["from_program","target_program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"create_route_monitor","description":"Create a saved route monitor. ATF checks every 6 hours for award seats matching the route + window + cabin and emails when fresh availability appears. Free accounts get one monitor; Premium is unlimited.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"earliest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"latest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"airlines":{"type":"array","items":{"type":"string"},"description":"Optional airline filter; omit to watch all supported carriers"},"passengers":{"type":"integer","minimum":1,"maximum":9},"max_points":{"type":"integer","description":"Only fire when points <= this cap"}},"required":["origin","destination","earliest_date","latest_date"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_route_monitors","description":"List the user's saved route monitors with their last-checked time and current status.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":"string","enum":["all","active","paused","cancelled","fired"]},"page":{"type":"integer","minimum":1,"description":"Page number (1-indexed). Defaults to 1."},"per_page":{"type":"integer","minimum":1,"maximum":100,"description":"Items per page (default 20, max 100)."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_route_monitor","description":"Edit a saved route monitor by ID — change the date window, cabin, airline filter, passenger count, max-points cap, or pause/resume it.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"monitor_id":{"type":"integer"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"earliest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"latest_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"airlines":{"type":"array","items":{"type":"string"},"description":"Replaces the existing airline filter; pass [] to watch all carriers"},"passengers":{"type":"integer","minimum":1,"maximum":9},"max_points":{"type":"integer"},"status":{"type":"string","enum":["active","paused"],"description":"Pause or resume the monitor"}},"required":["monitor_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cancel_route_monitor","description":"Cancel an active route monitor by ID. Cancelled monitors stop firing but are preserved for history.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"monitor_id":{"type":"integer"}},"required":["monitor_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"create_standing_order","description":"Save a recurring instruction ATF runs for the user unattended, then emails the result. Use for anything the user wants checked repeatedly without asking — e.g. 'every Sunday check whether LHR-NRT business opens on any programme I hold points for' or 'each morning tell me if any of my tracked bookings dropped in price'. Write `prompt` as a complete, self-contained instruction: it runs with no conversation history, so name the routes, programmes, cabins and dates explicitly. Premium only.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"prompt":{"type":"string","description":"The self-contained instruction to run each time. No conversation context is carried over."},"cadence":{"type":"string","enum":["daily","weekly"],"description":"Defaults to weekly."},"run_hour":{"type":"integer","minimum":0,"maximum":23,"description":"Hour of day in UTC to run. Defaults to 7."},"run_weekday":{"type":"integer","minimum":0,"maximum":6,"description":"0=Sunday … 6=Saturday. Weekly cadence only. Defaults to Monday (1)."},"trip_id":{"type":"integer","description":"Optional trip to file this order under."}},"required":["prompt"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_standing_orders","description":"List the user's standing orders — the recurring instructions ATF runs unattended — with their schedule, next run time, and the result of the last run.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"include_inactive":{"type":"boolean","description":"Include cancelled/paused orders. Defaults to false."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cancel_standing_order","description":"Stop a standing order by ID so it no longer runs. The record is kept, including its last result.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"standing_order_id":{"type":"integer"}},"required":["standing_order_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_multi_passenger","description":"Find award seats for a group — filters out single-seat phantom availability. Returns only carriers reporting seats >= the requested passenger count. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"departure_code":{"type":"string","pattern":"^[A-Z]{3}$"},"arrival_code":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":2,"maximum":9}},"required":["departure_code","arrival_code","date","passengers"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"audit_hotel_folio","description":"Audit a hotel folio for commonly-disputable charges. Supports Marriott, Hilton, Hyatt, and IHG. Returns a finding list with a chain-aware dispute template. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"chain":{"type":"string","enum":["marriott","hilton","hyatt","ihg"]},"folio_text":{"type":"string"},"stay_type":{"type":"string","enum":["award","cash","points_advance"]},"status_tier":{"type":"string"},"confirmation_number":{"type":"string"}},"required":["chain","folio_text"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"plan_trip","description":"Plan an end-to-end award trip in one call. Searches all airlines, ranks options against the user's balances + active transfer bonuses, and surfaces the best route — including transfer paths if the user is short on points. Premium tier.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":1,"maximum":9},"flexibility_days":{"type":"integer","minimum":0,"maximum":14,"description":"Optional ± days flexibility — if set, also probes adjacent dates"}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_cash_flights","description":"Real cash flight prices via Duffel (GDS) and Ignav (REST). Use to compare cash vs award redemptions or to surface the cheapest cash option for a route. Returns price + airline + flight number + cabin per option. Hosted keys — no per-user setup.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$"},"destination":{"type":"string","pattern":"^[A-Z]{3}$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"cabin":{"type":"string","enum":["economy","premium_economy","business","first"]},"passengers":{"type":"integer","minimum":1,"maximum":9},"source":{"type":"string","enum":["auto","duffel","ignav","airtrfx"],"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."}},"required":["origin","destination","date"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"find_premium_hotels","description":"Find Amex Fine Hotels & Resorts (FHR), Amex The Hotel Collection (THC), or Chase Edit hotels in a city. These programs stack benefits worth $300+: breakfast, F&B credits, room upgrades, late checkout. Use when the user wants premium hotel options that maximize portal stacking.","inputSchema":{"$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":{"type":"string","enum":["any","amex_fhr","amex_thc","chase_edit"],"description":"Filter by program. Default: any."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_skills","description":"List the reference skills available — institutional knowledge the agent can pull in on demand. Each skill explains a sub-domain (sweet spots, hold rules, cabin codes, etc). Free, no auth required.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_skill","description":"Fetch the full markdown body of a reference skill by key. Use when planning multi-step workflows where the skill's rules matter.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key":{"type":"string","description":"Skill key from list_skills"}},"required":["key"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_knowledge_base","description":"Search the Miles & Points Daily + Smart With Points editorial archive for explainers and strategy. Use when the user asks 'how does X work', 'should I transfer to Y', 'best way to redeem Z', credit-card or transfer-bonus strategy questions, or anything that benefits from authoritative context. Returns ranked article excerpts with URLs to cite.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Natural-language question or topic, e.g. 'best Avios redemption sweet spots from London'"},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"How many excerpts to return (default 5)"},"source":{"type":"string","enum":["miles_and_points_daily","smart_with_points"],"description":"Restrict to one publication. Omit to search both."}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"wikipedia_airports","description":"Look up airline service from a Wikipedia airport page. Use when fare/award tools say a route doesn't exist (false negative on small markets) or when you need the full destination list for an airport. Free, no auth.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airport_code":{"type":"string","pattern":"^[A-Z]{3,4}$","description":"IATA (3-letter) or ICAO (4-letter) airport code"},"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"}},"required":["airport_code"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_earning_rates","description":"Look up mileage earning rates for crediting a partner-airline ticket to a loyalty program. Returns the % of distance earned per booking class. Use when deciding which program to credit a flight to. Free.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","enum":["british-airways","aeroplan","alaska","american-aadvantage","virgin-atlantic","flying-blue"],"description":"Loyalty program to credit to"},"airline":{"type":"string","pattern":"^[A-Z0-9]{2}$","description":"Operating airline IATA code (e.g. AA, BA, QR)"},"fare_class":{"type":"string","description":"Optional booking class letter (e.g. K, M, Y). If omitted, returns the full table for that program×airline."}},"required":["program","airline"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_partner_award_options","description":"Given an operating airline and a route, list which loyalty programmes can book that airline as a PARTNER and how many points it costs per cabin. Example: a Korean Air (KE) flight ICN→LAX can be booked with Virgin Points. Use this to answer 'which of my programmes can book this flight and what's the cheapest?'. Points are off-peak/saver estimates from published partner award charts. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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)."}},"required":["carrier","departure","destination"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_program_partner_chart","description":"Get a loyalty programme's PARTNER airline award chart (the points to book partner-operated flights), as a region-pair or distance-band table with sources, confidence, and accuracy caveats. Supported: aeroplan (Air Canada), aadvantage (American), singapore-krisflyer, cathay-asia-miles (distance-based), turkish-miles-smiles, ana-mileage-club. Match the route's origin/destination regions (or distance) to a row to read the points cost. IMPORTANT: read the returned `confidence`, `caveats`, and `trip_basis` fields — points are one-way unless trip_basis says round_trip (ANA is round-trip), and these charts apply to PARTNER-operated flights, not the programme's own dynamically-priced flights. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","enum":["aeroplan","aadvantage","singapore-krisflyer","cathay-asia-miles","turkish-miles-smiles","ana-mileage-club"],"description":"Programme slug."}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lookup_flight","description":"Identify the airline behind a pasted flight code (e.g. 'BA117', 'AA 1234'). Returns carrier name, country, and — when ATF supports the airline — the slug and loyalty program so the assistant can pre-fill an add_flight_booking call. Use this any time a user pastes or types a raw flight code without context.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_code":{"type":"string","description":"A flight code like 'BA117', 'AA 1234', or 'EK521'."}},"required":["flight_code"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_trip_briefing","description":"Combine FlightSeatmap and FlightQueue data for a planned flight: aircraft and seatmap availability plus airport delay and security-wait snapshots. Use when a user asks how to prepare for a flight or wants one live flight brief.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","pattern":"^[A-Za-z0-9]{2,3}\\s*\\d{1,4}$","description":"Flight code such as BA117 or AA 100"},"flight_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Optional departure date"},"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"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"list_trips","description":"List the signed-in user's trips (their trip-as-project workspaces) with destination, dates, status, and itinerary section count.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":"string","enum":["all","active","archived","planning","booked","completed"],"description":"Filter by status (default: all)"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"create_trip","description":"Create a new trip (a project workspace grouping chats, searches, monitors, and bookings). Free accounts get one active trip; additional active trips require Premium.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"name":{"type":"string","description":"Trip name, e.g. 'Tokyo with the family'"},"destination":{"type":"string","description":"Primary destination (city or airport)"},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["name"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"delete_trip","description":"Archive a trip, or delete it permanently. Archiving keeps the trip and its itinerary but frees the active-trip slot; bookings, monitors and chats filed under it are always kept and simply unfiled.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","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."}},"required":["trip_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"assign_bookings_to_trip","description":"File existing flight and/or hotel bookings under a workspace Trip so the portfolio shows them grouped as one trip. Get the trip id from list_trips / create_trip and booking ids from list_flight_bookings / list_hotel_bookings. Pass an empty array (or omit) for a booking type you're not moving.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"trip_id":{"type":"integer","description":"Target workspace Trip id."},"flight_booking_ids":{"type":"array","items":{"type":"integer"},"description":"Flight redemption ids to file under the trip."},"hotel_booking_ids":{"type":"array","items":{"type":"integer"},"description":"Hotel booking ids to file under the trip."}},"required":["trip_id"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"update_itinerary","description":"Write a section onto a trip's itinerary canvas — the persistent, editable trip document the agent builds. Appends a new section, or updates an existing one when section_id is given. Returns the full updated canvas. Premium tier (itinerary canvas).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"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."},"heading":{"type":"string","description":"Section heading, e.g. 'Outbound flight' or 'Hotel: Tokyo'"},"body":{"type":"string","description":"Section body in markdown"},"kind":{"type":"string","enum":["flight","hotel","note","budget"],"description":"Section kind (default: note)"}},"required":["heading","body"],"type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_my_documents","description":"Search the user's OWN uploaded documents (award charts, hotel folios, itineraries, statements) and return ranked excerpts. Use when the user refers to 'my document', 'the folio/itinerary/chart I uploaded', or asks a question that should be answered from their own files rather than the public editorial archive. Returns matched excerpts with similarity scores.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Natural-language question or topic to find in the user's documents."},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"How many excerpts to return (default 5)."}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"search_merchant_multipliers","description":"Search a community-verified database of merchant bonus-category multipliers (e.g. 'which merchants earn 4x?', 'does Whole Foods earn a bonus on Amex Gold?'). Every entry is backed by a screenshot of the cardholder's statement as proof. Filter by merchant/card/category and a minimum multiplier. Returns verified entries with the earn rate, card, category, and a link to the proof. Free.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","description":"Merchant, card, or category to search for (e.g. 'Whole Foods', 'Amex Gold', 'Dining'). Optional."},"min_multiplier":{"type":"number","description":"Only return entries earning at least this multiplier (e.g. 4 for 4x and up). Optional."},"card":{"type":"string","description":"Filter to a specific card by name (e.g. 'Amex Gold'). Optional."},"category":{"type":"string","description":"Filter to a bonus category (e.g. 'Groceries', 'Dining'). Optional."},"country":{"type":"string","description":"Two-letter country code to filter by (e.g. 'US', 'UK'). Optional."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Max entries to return (default 20)."}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_points_valuation","description":"Get the cents-per-point valuation for a credit-card points/miles currency or hotel program — answers \"what is a Chase/Amex/Capital One/Avios/Marriott/Hyatt point worth?\". Returns the headline cents-per-point, the value we've actually observed across logged redemptions (with sample size) when available, and the best way to use the currency. Pass a slug (e.g. chase-ultimate-rewards) or a loose name (e.g. \"amex points\", \"hyatt\"). Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"currency":{"type":"string","description":"Points/miles currency — a slug (chase-ultimate-rewards) or loose name (\"amex points\", \"marriott\", \"hyatt\")."}},"required":["currency"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_cancellation_fee","description":"Get the award-ticket cancellation/redeposit fee for an airline's OWN loyalty programme (e.g. British Airways Avios, Qatar Privilege Club, Virgin Atlantic Flying Club). Returns the headline fee, who is exempt (elite tiers), and a source link. Accepts a slug or a loose airline name. NOTE: fees for booking a carrier through a PARTNER programme differ — this returns the airline's direct policy. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"airline":{"type":"string","description":"Airline slug or name, e.g. 'british-airways', 'Qatar Airways', 'virgin'."}},"required":["airline"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"get_award_chart_faq","description":"Get curated award-chart FAQs, sweet spots, and booking tips for a loyalty programme (e.g. Aeroplan, British Airways Avios, AAdvantage, Flying Blue, World of Hyatt). Use to answer questions about a programme's award pricing, best redemptions, and how to book. Accepts a programme slug OR a loose name. Returns editorial Q&A you can cite directly. Free — no account needed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"program":{"type":"string","description":"Programme slug or loose name, e.g. 'aeroplan', 'British Airways', 'avios', 'world-of-hyatt'."}},"required":["program"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"submit_feedback","description":"Email a user's confirmed feedback or bug report to Award Travel Finder support. Use this when the user explicitly wants to report a bug, share feedback, request an improvement, or report an incorrect AI result. Collect a concise summary and details first; for bugs, collect reproduction steps and expected/actual behaviour when possible. Only send after the user confirms the summary, or has clearly asked you to send the complete report. Never use this for ordinary travel questions.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"type":{"type":"string","enum":["feedback","bug"],"description":"Whether this is general feedback or a bug report."},"summary":{"type":"string","maxLength":160,"description":"A concise title for the feedback or bug."},"details":{"type":"string","maxLength":4000,"description":"What the user wants the Award Travel Finder team to know."},"steps_to_reproduce":{"type":"string","maxLength":4000,"description":"For bugs, the steps that reproduce the problem, if known."},"expected_behavior":{"type":"string","maxLength":4000,"description":"For bugs, what the user expected to happen."},"actual_behavior":{"type":"string","maxLength":4000,"description":"For bugs, what actually happened."},"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."}},"required":["type","summary","details","confirmed"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"render_ui","description":"Render a visual card in the chat instead of writing a markdown table or a long list of numbers. Use it for comparisons, cost breakdowns, transfer paths, plans, rankings, and any answer with more than ~3 numbers in it. Compose the card from blocks; every block is optional and you can repeat kinds.\n\nBlock kinds:\n- stats — headline numbers. items: [{label, value, sub}]\n- table — columns: [\"Program\",\"Points\"], rows: [[\"Aeroplan\",\"60,000\"]]\n- bars  — visual comparison. unit: \"pts\", items: [{label, value (number), note}]\n- steps — an ordered path or plan. items: [{label, detail}]\n- list  — rows with an optional right-hand value and link. items: [{title, subtitle, meta, value, url}]\n- note  — a callout. tone: info|warn|success|danger, text\n\nPlain text only in every field — no markdown, no HTML. Keep your written reply to a sentence or two; the card carries the detail, so do not restate it. Do NOT call this after a search/hotel/transfer tool that already returned its own card.\n","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"title":{"type":"string","description":"Card heading, e.g. \"SFO → NRT in business\"."},"subtitle":{"type":"string","description":"One-line context under the heading."},"blocks":{"type":"array","description":"Blocks to render, in order. Max 10.","items":{"type":"object","properties":{"kind":{"type":"string","enum":["stats","table","bars","steps","list","note"],"description":"Block kind."},"items":{"type":"array","description":"Rows for stats/bars/steps/list. Objects whose keys depend on the kind.","items":{"type":"object"}},"columns":{"type":"array","description":"table: column headers.","items":{"type":"string"}},"rows":{"type":"array","description":"table: rows of cell strings.","items":{"type":"array","items":{"type":"string"}}},"caption":{"type":"string","description":"table: optional caption under the table."},"unit":{"type":"string","description":"bars: unit shown after each value, e.g. \"pts\"."},"tone":{"type":"string","enum":["info","warn","success","danger"],"description":"note: callout tone."},"text":{"type":"string","description":"note: the callout body."}},"required":["kind"]}}},"required":["blocks"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_get_seatmap","description":"Get the seat map for a flight from our database. Shows all seats, cabin classes, characteristics, and availability as both text and an interactive visual seatmap. Returns cached data — for fresh/updated data, use search_flight (sign in via OAuth).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number including airline code, e.g. 'QF1', 'AA716', 'BA178'"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_find_best_seats","description":"Find the best available seats on a flight matching user preferences like window, aisle, extra legroom, exit row, quiet zone, etc. Returns a ranked list and an interactive seatmap with recommended seats highlighted.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1'"},"preferences":{"type":"array","items":{"type":"string","enum":["window","aisle","extra_legroom","exit_row","quiet_zone","front","rear","bulkhead"]},"description":"Seat preferences to match"},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"],"description":"Optional cabin class filter"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number","preferences"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_get_seat_info","description":"Get detailed information about a specific seat on a flight, including characteristics, cabin class, availability, and pricing. Also renders the interactive seatmap.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1'"},"seat_number":{"type":"string","description":"Seat number, e.g. '12A', '1F', '32K'"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number","seat_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_search_flight","description":"Search for a flight and get fresh seatmap data. Requires a signed-in account — connect this server to sign in via OAuth. Paid plan users can fetch new flights not yet in our database. Uses a search credit. Returns an interactive seatmap with the results.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1', 'AA716'"},"flight_date":{"type":"string","description":"Flight date in YYYY-MM-DD format (defaults to today)"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_interactive_seat_finder","description":"Seat finder that recommends the best seats on a flight and renders an interactive seatmap. Good default when the user wants help finding a seat but hasn't specified preferences.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1', 'AA716'"},"flight_date":{"type":"string","description":"Optional flight date in YYYY-MM-DD format"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_get_seat_reviews","description":"Get user-submitted reviews for a flight, optionally filtered to a specific seat. Shows ratings, comments, seat number, cabin, and helpfulness votes. Free — no auth required.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1'"},"seat_number":{"type":"string","description":"Optional seat number to filter reviews (e.g. '12A')"}},"required":["flight_number"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_list_seat_alerts","description":"List all your seat alerts (active and inactive). Shows which seats you're being notified about, priority, days until flight, and last check time. Requires authentication.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_create_seat_alert","description":"Create a seat alert that notifies you by email when a matching seat becomes available on a specific flight. Supports preferences like window, aisle, exit row, specific seat, adjacent seats, and class availability. Requires authentication. The flight must already be in our database — use search_flight first if not.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"flight_number":{"type":"string","description":"Flight number, e.g. 'QF1', 'AA716'"},"flight_date":{"type":"string","description":"Flight date in YYYY-MM-DD format. Must be today or within the next 60 days."},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"],"description":"Cabin class to monitor"},"seat_preference":{"type":"string","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"],"description":"Seat preference to alert on"},"specific_seat":{"type":"string","description":"Required when seat_preference is 'specific' (e.g. '12A')"},"adjacent_seats_count":{"type":"integer","minimum":2,"maximum":9,"description":"Required when seat_preference is 'adjacent_seats' or 'minimum_seats' (2-9)"}},"required":["flight_number","flight_date","cabin_class","seat_preference"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_delete_seat_alert","description":"Delete a seat alert by its ID. Use list_seat_alerts to find the alert ID. Requires authentication.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alert_id":{"type":"integer","description":"ID of the seat alert to delete"}},"required":["alert_id"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"fs_discover_more_flight_tools","description":"Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering award flights, airport delays/wait times, and lounges.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_wifi_facts","description":"Best answer for \"will this flight have WiFi\". Predicts the WiFi provider for a flight number on a given date, with probability, the tail number expected to operate it, aircraft type, and the airline fleet fallback. Prefer this over get_flight_wifi.","inputSchema":{"type":"object","properties":{"flight_number":{"type":"string","description":"IATA flight number, e.g. \"UA123\""},"date":{"type":"string","description":"Flight date in YYYY-MM-DD format. Defaults to today."}},"required":["flight_number"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_flight_wifi","description":"Shorter WiFi lookup for a flight number: provider, confidence, airline, aircraft, and Starlink status. Use get_wifi_facts instead when you need the date, tail number, or reasoning.","inputSchema":{"type":"object","properties":{"flight_number":{"type":"string","description":"IATA flight number, e.g. \"UA123\" or \"DL456\""}},"required":["flight_number"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_airline_wifi","description":"WiFi providers an airline uses fleet-wide, plus a fleet summary and whether WiFi is free. Use when the question is about the airline rather than one flight.","inputSchema":{"type":"object","properties":{"airline_code":{"type":"string","description":"IATA airline code, e.g. \"UA\" for United, \"DL\" for Delta"}},"required":["airline_code"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_rollouts","description":"Starlink and satellite WiFi rollout progress per aircraft type: status (complete, in_progress, planned, announced), fleet percentage, and expected completion. Omit airline_code for every tracked airline.","inputSchema":{"type":"object","properties":{"airline_code":{"type":"string","description":"Optional IATA airline code to filter rollouts, e.g. \"UA\""}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_speed_stats","description":"Crowd-sourced in-flight WiFi speed reports: average download/upload Mbps, latency, and a per-provider breakdown. Use for \"is the WiFi fast enough\" questions. Pass a flight_number or an airline_code, not both.","inputSchema":{"type":"object","properties":{"flight_number":{"type":"string","description":"IATA flight number, e.g. \"UA123\""},"airline_code":{"type":"string","description":"IATA airline code, e.g. \"UA\""}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_get_tail_info","description":"WiFi provider history for one aircraft by tail number, including crowd-sourced reports and fleet assignment. Use when the exact airframe is known.","inputSchema":{"type":"object","properties":{"tail_number":{"type":"string","description":"Aircraft registration / tail number, e.g. \"N12345\""}},"required":["tail_number"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_search_wifi","description":"Free-text search across airlines and flights when you only have a name or partial term. Use a specific tool instead when you already have a flight number, airline code, or tail number.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query, e.g. \"United\" or \"UA123\""}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"sw_list_airlines","description":"Every airline SeatWiFi tracks, with its WiFi providers. Large response — use search_wifi or get_airline_wifi when you know which airline you want.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_search_lounges","description":"Search airport lounges worldwide by name, airport name, IATA code, city, or country. Returns matching lounges with amenities, access methods, and ratings. Use this to find specific lounges or discover lounges in a location.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","minLength":2,"description":"Search query (lounge name, airport name, IATA code, city, or country)"}},"required":["query"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_airport_lounges","description":"Get all airport lounges at a specific airport by IATA code. Returns every lounge at the airport with terminal location, amenities, access methods, and ratings.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"iata":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Airport IATA code (e.g. LHR, JFK, SIN)"}},"required":["iata"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_lounge_details","description":"Get detailed information about a specific airport lounge by its slug. Returns full description, amenities, access methods, opening hours, capacity, ratings, and reviews count.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"slug":{"type":"string","description":"Lounge slug (from search results or airport lounges)"}},"required":["slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_find_lounges_by_access","description":"Find all airport lounges accessible with a specific credit card, membership program, airline club, alliance status, or ticket class. For example, find all lounges you can access with your Amex Platinum or Priority Pass membership.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"access_method":{"type":"string","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"],"description":"Access method slug (e.g. amex-platinum, priority-pass, chase-sapphire-reserve, business-class, star-alliance-gold)"}},"required":["access_method"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_list_access_methods","description":"List all available lounge access methods including credit cards (Amex Platinum, Chase Sapphire Reserve, etc.), membership programs (Priority Pass, LoungeKey, etc.), airline clubs, alliance status levels, and ticket classes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_list_networks","description":"List all lounge networks (Priority Pass, LoungeKey, DragonPass, Plaza Premium, Amex Centurion) with their descriptions and total lounge counts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_network_lounges","description":"Get all lounges in a specific lounge network. Returns every lounge that accepts a particular network membership (e.g. all Priority Pass lounges worldwide).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"network":{"type":"string","enum":["priority-pass","loungekey","dragonpass","plaza-premium","amex-centurion"],"description":"Network slug (priority-pass, loungekey, dragonpass, plaza-premium, amex-centurion)"}},"required":["network"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_discover_more_flight_tools","description":"Discover other flight & travel MCP servers you can add to your client. Lists complementary remote MCPs covering award flights/points redemptions, aircraft seatmaps, and airport delays/wait times — with one-line install URLs. Call this when the user asks about points/miles, seat selection, airport delays/security waits, or 'what other flight tools are there?'","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_profile","description":"Get your Airport Lounge List profile — username, stats (reviews, visits, wishlisted lounges), and recent activity.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_passport","description":"Get your lounge passport — stats (lounges visited, airports, countries, reviews), country stamps, full visit history, and your reviews. Includes a shareable passport URL when your profile is public.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_reviews","description":"Get your lounge reviews, including pending ones. Returns rating, content, approval status, and lounge info.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":"integer","description":"Max reviews to return (default 20, max 50)"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_write_review","description":"Write a review for a lounge. Requires the lounge slug, a rating (1-5), and review text (min 10 characters).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results)"},"rating":{"type":"integer","description":"Rating from 1 (poor) to 5 (excellent)","minimum":1,"maximum":5},"content":{"type":"string","description":"Review text (minimum 10 characters)","minLength":10}},"required":["lounge_slug","rating","content"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_update_review","description":"Update your review of a lounge — change the rating and/or the text. Identify the review by lounge_slug.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the review to update"},"rating":{"type":"integer","description":"New rating, 1-5","minimum":1,"maximum":5},"content":{"type":"string","description":"New review text (minimum 10 characters)","minLength":10}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_delete_review","description":"Delete your review of a lounge. Identify it by lounge_slug.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the review to delete"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_visits","description":"Get your visited lounges list with dates and notes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":"integer","description":"Max visits to return (default 20, max 50)"}},"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_mark_lounge_visited","description":"Log a lounge visit (check in). Identify the lounge by its slug OR by lounge_name + airport_iata. Optionally add a 1-5 rating and notes. Idempotent: logging the same lounge on the same date updates the existing visit's rating/notes instead of creating a duplicate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results). Preferred if known."},"lounge_name":{"type":"string","description":"Lounge name — use with airport_iata if you don't have the slug."},"airport_iata":{"type":"string","description":"3-letter airport IATA code — use with lounge_name."},"visited_at":{"type":"string","format":"date","description":"Date of visit (YYYY-MM-DD)"},"rating":{"type":"integer","description":"Your rating, 1 (poor) to 5 (excellent)","minimum":1,"maximum":5},"notes":{"type":"string","description":"Optional notes about your visit"}},"required":["visited_at"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_update_visit","description":"Update one of your logged lounge visits — change the rating, notes, or date. Identify the visit by lounge_slug; if you have multiple visits to the same lounge, pass visited_at to pick the one to update.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the visit to update"},"visited_at":{"type":"string","format":"date","description":"Existing visit date (YYYY-MM-DD) — needed only to disambiguate multiple visits"},"rating":{"type":"integer","description":"New rating, 1-5","minimum":1,"maximum":5},"notes":{"type":"string","description":"New notes"},"new_visited_at":{"type":"string","format":"date","description":"Change the visit date to this (YYYY-MM-DD)"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_delete_visit","description":"Delete one of your logged lounge visits. Identify it by lounge_slug; pass visited_at to pick a specific date if you have multiple visits to the same lounge.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug of the visit to delete"},"visited_at":{"type":"string","format":"date","description":"Visit date (YYYY-MM-DD) — needed only to disambiguate multiple visits"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_get_my_wishlist","description":"Get your lounge wishlist — lounges you want to visit.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_add_to_wishlist","description":"Add a lounge to your wishlist. Idempotent — adding a lounge already on your wishlist is a no-op.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results)"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"lounge_remove_from_wishlist","description":"Remove a lounge from your wishlist.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lounge_slug":{"type":"string","description":"Lounge slug (from search results)"}},"required":["lounge_slug"],"type":"object"},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_list_cards","description":"List credit cards in the database. Returns compact summaries (id, fees, welcome bonus value, top multipliers). Use get_card for full details.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"type":"string","enum":["amex","chase","bilt","capital-one","anz","nab","westpac","cba","barclaycard","hsbc","virgin-money","lloyds","currensea","yonder","other"],"description":"Filter by issuer."},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Filter by region/country."},"card_type":{"type":"string","enum":["personal","business"],"description":"Filter by personal vs business."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_get_card","description":"Get full details for a single card, including all multipliers, all benefits, welcome bonus, and source URL.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"Card id, e.g. \"amex-gold-us\". Use list_cards to discover ids."}},"required":["id"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_compare_cards","description":"Compare 2–4 cards side by side: annual fees, welcome bonuses, top multipliers, and total benefit credits. Pass card ids from list_cards.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":4,"description":"Card ids to compare, e.g. [\"amex-gold-us\", \"chase-sapphire-preferred\"]."}},"required":["ids"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_find_cards_for_category","description":"Find cards with the best earning multiplier for a spend category (e.g. \"dining\", \"groceries\", \"petrol\", \"travel\"). Returns cards sorted by multiplier descending.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"type":"string","description":"Spend category — supports UK/AU terms like \"petrol\", \"chemist\", \"woolworths\"."},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"]},"card_type":{"type":"string","enum":["personal","business"]},"min_multiplier":{"type":"number","description":"Only return cards at or above this multiplier."},"limit":{"type":"number","description":"Max results (default 10)."}},"required":["category"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_rank_welcome_bonuses","description":"List current welcome bonuses sorted by point/mile value descending. Optionally filter by spend achievability.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"]},"card_type":{"type":"string","enum":["personal","business"]},"monthly_spend":{"type":"number","description":"Monthly spend in the card's local currency. If provided, only includes bonuses where required spend ≤ monthly_spend × months."},"min_value":{"type":"number","description":"Minimum bonus point/mile value."},"limit":{"type":"number","description":"Max results (default 20)."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_analyze_spending","description":"Given a breakdown of the user's monthly spending, estimate annual rewards for each card and rank them. Includes net annual fee after benefit credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"monthly_spending":{"type":"array","description":"Array of {category, amount} for the user's typical monthly spend. Amounts in the local currency of the chosen region.","items":{"type":"object","properties":{"category":{"type":"string"},"amount":{"type":"number"}},"required":["category","amount"]}},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Region of cards to evaluate. Defaults to US."},"card_type":{"type":"string","enum":["personal","business"]},"limit":{"type":"number","description":"Max cards to return (default 10)."}},"required":["monthly_spending"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_list_changes","description":"List recent card data changes (welcome bonus updates, fee changes, multiplier edits). Useful for \"what changed recently?\" queries.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"card_id":{"type":"string","description":"Filter to changes for one card."},"days":{"type":"number","description":"Look back this many days (default 30)."},"limit":{"type":"number","description":"Max results (default 50)."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_list_transfer_partners","description":"List transferable points programs and their airline/hotel partners. Region filter shows programs relevant to that market (e.g. region=UK shows UK Amex MR, Barclaycard, HSBC).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"type":"string","description":"Filter to one provider, e.g. \"amex\" or \"anz\"."},"partner_type":{"type":"string","enum":["airline","hotel"]},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Filter to programs from a specific region."}}},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"cards_find_transfer_programs_for_airline","description":"Find which transferable points programs can transfer to a given airline or hotel. Optionally filter by region to see locally relevant programs.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"partner_name":{"type":"string","description":"Airline or hotel name, e.g. \"Qantas\", \"Virgin Atlantic\", \"Hyatt\"."},"region":{"type":"string","enum":["US","UK","AU","DE","FR","IT","ES","NL"],"description":"Filter to programs from a specific region."}},"required":["partner_name"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"viator_get_experience_details","description":"Retrieves enriched information for a specific Viator experience, including detailed descriptions, highlights, imagery, pricing, duration, key features, and the click-out URL.It also returns what is included and excluded in the price, high-level itinerary metadata, bookable experience options, traveler age bands and booking constraints, start/end locations and traveler pickup, additional information such as requirements and restrictions, available language guides, associated destinations, the operating time zone, the operator, every image for the experience with its available dimension variants and captions, and the cancellation policy covering the refund terms, weather and minimum-traveler cancellation conditions, and how much is refundable depending on how far in advance the booking is cancelled.The model should call this tool only when the user clearly refers to a specific experience—either by selecting it in the UI or by asking follow-up questions such as “Tell me more about…”;if multiple experiences were ","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","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."},"language":{"type":"string","description":"(deprecated) This value is deprecated and should not be sent. Please only send the locale."},"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."},"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."}},"required":["code","sessionId"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}},{"name":"viator_search_experiences","description":"Retrieves a curated list of Viator experiences based on a free-text search of what the user wants (destination, activity type, and preferences), plus trip dates and optional refiners (budget, duration, etc.). The model must supply a non-blank searchTerm as natural language describing where and what the user is looking for (e.g. \"walking tours in Paris, France\", \"kid friendly food experiences in Rome\"). Dates, prices, duration limits, and currency belong in their dedicated parameters—not inside searchTerm. The model must provide searchTerm and dates before calling this tool. The model may re-issue a refined searchExperiences call whenever the user adds, removes, or adjusts refinement criteria (e.g., kid-friendly, price range, shorter duration) to narrow or improve the results. If the tool returns zero results, the model must proactively guide the user toward a successful refinement. It should review the parameters used in the failed request and recommend the most appropriate based on the proposed logic:\" If > ","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"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."},"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."},"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."},"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”)."},"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"},"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."},"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."}},"required":["searchTerm","startDate","endDate","sessionId"]},"annotations":{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true},"_meta":{"ui":{"resourceUri":"ui://awardtravelfinder/card","visibility":["model","app"]},"ui/resourceUri":"ui://awardtravelfinder/card","openai/outputTemplate":"ui://awardtravelfinder/card","openai/widgetAccessible":true,"openai/toolInvocation/invoking":"Checking Award Travel Finder…","openai/toolInvocation/invoked":"Done."}}]}},"bad_protocol_headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","missing_protocol_header","bad_protocol_not_rejected"]}},"utility_coverage_probe":{"status":"ok","latency_ms":128.92,"details":{"completions":{"advertised":false,"sample_target":{"type":"resource","uri":"portfolio://current"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"auth_required","http_status":401},"initialize_capability_keys":["extensions","logging","prompts","resources","tools"]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":true,"resources":true,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":true},"enabled_count":3,"enabled":["prompts","resource_links","resources"],"initialize_capability_keys":["extensions","logging","prompts","resources","tools"]}},"tool_snapshot_probe":{"status":"ok","latency_ms":null,"details":{"current_tool_count":137,"previous_tool_count":137,"similarity":1.0,"added":[],"removed":[],"changed_outputs":[]}},"connector_replay_probe":{"status":"ok","latency_ms":null,"details":{"backward_compatible":true,"would_break_after_refresh":false,"added_tools":[],"removed_tools":[],"required_arg_breaks":[],"output_breaks":[],"additive_output_changes":[]}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"ok","latency_ms":null,"details":{"risk_hits":[],"safe_hits":["oauth","sign in","login","browser"],"oauth_supported":true,"prompt_available":false}},"action_safety_probe":{"status":"warning","latency_ms":null,"details":{"summary":{"tool_count":137,"high_risk_tools":5,"destructive_tools":11,"exec_tools":0,"egress_tools":113,"secret_tools":2,"bulk_access_tools":4,"declared_non_read_only_tools":30,"annotation_conflict_tools":107,"risk_distribution":{"low":3,"medium":129,"high":5,"critical":0},"capability_distribution":{"read":107,"network":113,"financial":3,"write":24,"delete":11,"undetermined":3,"admin":1,"export":4,"secrets":2},"has_mutating_capability":true,"has_non_read_capability":true},"auth_present":true,"safeguard_count":10,"confirmation_signals":["add_hotel_booking","update_hotel_booking","add_flight_booking","update_flight_booking","log_lounge_visit","submit_feedback","lounge_get_my_reviews","lounge_mark_lounge_visited","lounge_add_to_wishlist"],"reason":null}},"official_registry_probe":{"status":"missing","latency_ms":null,"details":{"registry_source":"github_topic_registry","direct_match":false,"official_peer_count":0}},"provenance_divergence_probe":{"status":"not_assessed","latency_ms":null,"details":{"direct_official_match":false,"registry_title":null,"server_card_title":"AwardTravelFinder","registry_version":null,"server_card_version":"3.0.0","registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":2,"compared_fields":["title","version","homepage","repository"],"readable_sources":["server_card"],"comparable_field_count":0}},"schema_divergence_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_server_card_tools","compared_tool_count":0,"compared_dimensions":["server_name","server_version","declared_vs_observed_auth","tool_membership","parameter_names","required_parameters","parameter_types","output_schema_presence"],"server_name_mismatch":false,"card_server_name":"AwardTravelFinder","live_server_name":"AwardTravelFinder","server_version_mismatch":false,"card_server_version":"3.0.0","live_server_version":"3.0.0","auth_scheme_mismatch":false}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":137,"high_risk_tools":5,"blockers":["protocol_version","session_resume","transport_compliance","request_association","action_safety"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":false,"session_resume":false,"step_up_auth":true,"transport_compliance":false,"connector_replay":true,"request_association":false,"action_safety":false,"server_card":true,"tool_surface":true,"auth_flow":true}}}}},"active_alerts":[],"maintainer_analytics":{},"public_server_reputation":{},"maintainer_response_quality":{},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{},"tool_security_inventory":[],"transport_compliance":{},"utility_coverage":{},"write_action_governance":{},"provenance_divergence":{},"alias_consolidation":{},"alert_routing":{},"authenticated_validation":{},"hosted_runtime":{},"action_controls_diff":null,"benchmark_tasks":[],"latest_capability_counts":{},"point_loss_breakdown":[],"verdict_traces":{},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_589b1f35e366c45a","generated_at":"2026-09-08T14:19:42.104193+00:00","trust_evaluated_at":"2026-09-08T14:19:42.104193+00:00","evidence_revision":"c40dec6fce1730a255645630","source":"current_snapshot","server":"github-awardtravelfinder/mcp","last_validated_at":"2026-09-08T13:06:16.256421+00:00","validation_age_hours":1.22,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-08T13:06:16.256421+00:00","age_hours":1.22,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":66.67,"raw_score":66.67,"confidence_score":98.8,"confidence_weighted_score":65.8,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":66.67,"display_score":66.67,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"write/admin actions need confirmation safeguards + unauthenticated behavior not proven","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":98.75,"label":"high","validation_age_hours":1.22,"live_check_count":21,"basis":{"evidence_bearing_validations":19,"affirmative_live_check_count":21,"validation_age_hours":1.22,"freshness_threshold_hours":24}},"active_alerts":[],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-08T14:19:42.104193+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_589b1f35e366c45a","generated_at":"2026-09-08T14:19:42.104193+00:00","trust_evaluated_at":"2026-09-08T14:19:42.104193+00:00","evidence_revision":"c40dec6fce1730a255645630","source":"current_snapshot","server":"github-awardtravelfinder/mcp","last_validated_at":"2026-09-08T13:06:16.256421+00:00","validation_age_hours":1.22,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-08T13:06:16.256421+00:00","age_hours":1.22,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":66.67,"raw_score":66.67,"confidence_score":98.8,"confidence_weighted_score":65.8,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":66.67,"display_score":66.67,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"write/admin actions need confirmation safeguards + unauthenticated behavior not proven","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":98.75,"label":"high","validation_age_hours":1.22,"live_check_count":21,"basis":{"evidence_bearing_validations":19,"affirmative_live_check_count":21,"validation_age_hours":1.22,"freshness_threshold_hours":24}},"active_alerts":[],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-08T14:19:42.104193+00:00"}},"agent_commerce":{},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"trust_evaluated_at":"2026-09-08T14:19:42.104193+00:00","evidence_revision":"c40dec6fce1730a255645630","active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-08T14:19:42.104193+00:00"},"owner_opted_out":false},"latest_validation":null,"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_589b1f35e366c45a","generated_at":"2026-09-08T14:19:42.104193+00:00","trust_evaluated_at":"2026-09-08T14:19:42.104193+00:00","evidence_revision":"c40dec6fce1730a255645630","source":"current_snapshot","server":"github-awardtravelfinder/mcp","last_validated_at":"2026-09-08T13:06:16.256421+00:00","validation_age_hours":1.22,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-08T13:06:16.256421+00:00","age_hours":1.22,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":66.67,"raw_score":66.67,"confidence_score":98.8,"confidence_weighted_score":65.8,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":66.67,"display_score":66.67,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"write/admin actions need confirmation safeguards + unauthenticated behavior not proven","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":98.75,"label":"high","validation_age_hours":1.22,"live_check_count":21,"basis":{"evidence_bearing_validations":19,"affirmative_live_check_count":21,"validation_age_hours":1.22,"freshness_threshold_hours":24}},"active_alerts":[],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-08T14:19:42.104193+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_589b1f35e366c45a","generated_at":"2026-09-08T14:19:42.104193+00:00","trust_evaluated_at":"2026-09-08T14:19:42.104193+00:00","evidence_revision":"c40dec6fce1730a255645630","source":"current_snapshot","server":"github-awardtravelfinder/mcp","last_validated_at":"2026-09-08T13:06:16.256421+00:00","validation_age_hours":1.22,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-08T13:06:16.256421+00:00","age_hours":1.22,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":66.67,"raw_score":66.67,"confidence_score":98.8,"confidence_weighted_score":65.8,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":66.67,"display_score":66.67,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"write/admin actions need confirmation safeguards + unauthenticated behavior not proven","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":2},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":98.75,"label":"high","validation_age_hours":1.22,"live_check_count":21,"basis":{"evidence_bearing_validations":19,"affirmative_live_check_count":21,"validation_age_hours":1.22,"freshness_threshold_hours":24}},"active_alerts":[],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-08T14:19:42.104193+00:00"}},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"snapshot_invariant":{"schema_version":"verify.snapshot_invariant.v1","server":"github-awardtravelfinder/mcp","ok":true,"surface_snapshot_ids":{"page":"trustsnap_589b1f35e366c45a","badge":null,"report":"trustsnap_589b1f35e366c45a","policy":null},"checked_surfaces":["page","report"],"unchecked_surfaces":["badge","policy"],"checked_count_surfaces":[],"count_mismatches":{},"checked_at":"2026-09-08T14:19:42.070674+00:00"},"history":{},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0,"high_or_critical_alerts":0,"degraded_by_active_alerts":false},"agent_commerce_readiness":{},"evidence_confidence":{"score":98.75,"label":"high","reason":"Based on 19 recent validations, 21 captured checks, and validation age of 1.2 hours.","live_check_count":21,"validation_age_hours":1.22,"basis":{"evidence_bearing_validations":19,"affirmative_live_check_count":21,"validation_age_hours":1.22,"freshness_threshold_hours":24}},"recommended_for":[],"active_alerts":[],"remediations":[],"cache_note":"Fast fallback response; full report evidence is deferred to protect web capacity. Fields listed in fields_unavailable (including tool_security_inventory, and write_action_governance) are not yet computed on this response -- an empty value means unchecked, not confirmed clean. Treat partial responses as indeterminate.","publisher_claim":{"verified":false,"status":"unclaimed","claim_url":"https://verify.sentinelsignal.io/claim?server=github-awardtravelfinder%2Fmcp&source=report_json","reason_code":"claim_to_publish_metadata","reason":"Claim this profile to verify publisher identity, add evidence, and manage trust metadata.","score_neutral":true},"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"},"related_machine_surfaces":{"compare_index":"/compare.json","compare_api":"/v1/compare?server=github-awardtravelfinder%2Fmcp","trust_summary":"/v1/servers/github-awardtravelfinder/mcp/trust-summary","ledger":"/v1/servers/github-awardtravelfinder/mcp/ledger","policy":"/v1/servers/github-awardtravelfinder/mcp/policy","report":"/v1/servers/github-awardtravelfinder/mcp/report"},"intelligence_api":{"available":true,"signup_url":"https://verify.sentinelsignal.io/verify-intelligence-api","use_case":"Programmatic MCP server trust, comparison, policy, and evidence enrichment."},"trust_evaluated_at":"2026-09-08T14:19:42.104193+00:00","evidence_revision":"c40dec6fce1730a255645630","active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-08T14:19:42.104193+00:00"}}