{"schema_version":"1.0","name":"Ati-Light-Web (ATI Viajes)","description":"Plataforma de búsqueda y reserva de vuelos con soporte W3C WebMCP para Agentes de IA","instructions":"# ATI Viajes (Ati-Light-Web) — AI Agent Instructions & WebMCP Specification\n\n> Plataforma de búsqueda y reserva de vuelos con integración nativa W3C WebMCP para Agentes de IA.\n\n## Guía de Uso de Herramientas WebMCP para Agentes de IA (Grok, ChatGPT, Claude)\n\nCuando un usuario solicite buscar o cotizar vuelos en ATI Viajes, ejecuta la siguiente secuencia optimizada:\n\n1. **Obtener Códigos IATA**: Si el usuario menciona nombres de ciudad (ej. \"Buenos Aires\", \"Miami\", \"Madrid\"), llama primero a search_airports({ query: \"Buenos Aires\" }). Usa 'BUE' para buscar en todos los aeropuertos de Buenos Aires (EZE y AEP).\n2. **Ejecutar Búsqueda**: Llama a search_flights({ origin: \"BUE\", destination: \"MAD\", departure_date: \"YYYY-MM-DD\", return_date: \"YYYY-MM-DD\", adults: 2, children_ages: [0, 4], currency: \"ARS\" }). Redirige a los resultados. Soporta adultos (18+ años) y children_ages (edades de menores 0-17 años). El Hub procesa automáticamente infantes (0-1 año) y menores.\n3. **Leer Ofertas (con Espera Asíncrona)**: Llama a get_flight_offers({ wait: true, max_stops: 0, sort_by: \"price_asc\" }). Pasar 'wait: true' garantiza esperar automáticamente a que finalice la carga de los resultados. Si status es \"error\", la búsqueda no devolvió vuelos.\n4. **Detalle Ampliado**: Llama a get_flight_details({ offer_id: \"...\" }) para obtener información extendida de equipaje (bodega/mano), políticas de reembolso y números de vuelo operados.\n5. **Seleccionar Vuelo (Confirmación de Usuario)**: Únicamente cuando el usuario confirme la opción elegida, llama a select_flight_offer({ offer_id: \"...\" }) para redirigir al checkout seguro.\n6. **Resumen de Checkout**: Llama a get_checkout_summary() para leer las tarifas finales y comunicar las 3 garantías de ATI Viajes (\"Reservá sin pagar\", \"Un experto revisa tu reserva\", \"Cancelación sin costo\").\n7. **Autocompletar Pasajeros**: Llama a fill_passenger_details({ passengers: [...], contact: {...} }) para poblar de forma transparente los datos de los viajeros en el formulario de React.\n8. **Crear Reserva PNR (Confirmación de Usuario)**: Previa confirmación explícita del usuario, llama a create_booking() para asegurar los lugares en la aerolínea/GDS (0 cobro a tarjeta). El pago final lo realiza el usuario humano mediante PCI Vault.\n","tools":[{"name":"search_flights","description":"Inicia la búsqueda de vuelos especificando origen (IATA), destino (IATA), fechas y pasajeros. Si el usuario ingresó un nombre de ciudad, usa 'search_airports' primero. Usar 'get_flight_offers({ wait: true })' para leer las ofertas.","inputSchema":{"type":"object","properties":{"origin":{"type":"string","description":"Código IATA de origen (ej: BUE para todo Buenos Aires, EZE, AEP, BRC)"},"destination":{"type":"string","description":"Código IATA de destino (ej: MIA, MAD, BCN, PUJ, CUN)"},"departure_date":{"type":"string","description":"Fecha de salida YYYY-MM-DD"},"return_date":{"type":"string","description":"Fecha de regreso YYYY-MM-DD (opcional para ida y vuelta)"},"adults":{"type":"number","description":"Pasajeros adultos de 18 años o más (por defecto 1)"},"children_ages":{"type":"array","items":{"type":"number"},"description":"Lista de edades de todos los menores entre 0 y 17 años (ej. [0, 4, 10, 15]). El Hub de ATI Viajes clasificará automáticamente infantes en regazo (0-1 año) y menores (2-17 años)."},"cabin":{"type":"string","enum":["Y","C","F"],"description":"Cabina: 'Y' (Económica), 'C' (Ejecutiva), 'F' (Primera)"},"currency":{"type":"string","enum":["ARS","USD"],"description":"Moneda de visualización (por defecto ARS)"},"nonstop":{"type":"boolean","description":"Alias para vuelos directos sin escala (max_stops: 0)"}},"required":["origin","destination","departure_date"]},"annotations":{"readOnlyHint":false}},{"name":"search_airports","description":"Busca códigos IATA de ciudades y aeropuertos por nombre (ej: Buenos Aires -> BUE/EZE/AEP, Miami -> MIA, Madrid -> MAD). Usar BUE para buscar en todos los aeropuertos de Buenos Aires.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Nombre de ciudad o aeropuerto a buscar"}},"required":["query"]},"annotations":{"readOnlyHint":true}},{"name":"get_flight_offers","description":"Obtiene las ofertas de vuelos activas. Soporta 'wait: true' para esperar automáticamente a que finalice la carga de los resultados en pantalla.","inputSchema":{"type":"object","properties":{"wait":{"type":"boolean","description":"Si es true, espera asíncronamente a que finalice la carga de vuelos antes de responder"},"timeout_ms":{"type":"number","description":"Tiempo máximo de espera en ms cuando wait: true (por defecto 8000 ms)"},"max_results":{"type":"number","description":"Límite de ofertas a retornar (por defecto 50, máximo 100)"},"max_stops":{"type":"number","description":"Cantidad máxima de escalas (0 = solo vuelos directos sin escalas)"},"nonstop":{"type":"boolean","description":"Alias opcional para max_stops: 0 (vuelos sin escalas)"},"sort_by":{"type":"string","enum":["price_asc","duration_asc","recommended"],"description":"Criterio de ordenamiento ('price_asc', 'duration_asc', 'recommended')"}}},"annotations":{"readOnlyHint":true}},{"name":"get_flight_details","description":"Obtiene el detalle ampliado de una oferta por offer_id, incluyendo equipaje en bodega/mano, políticas de reembolso y números de vuelo operados.","inputSchema":{"type":"object","properties":{"offer_id":{"type":"string"}},"required":["offer_id"]},"annotations":{"readOnlyHint":true}},{"name":"select_flight_offer","description":"Selecciona una oferta de vuelo por su offer_id e inicia la reserva en checkout. Requiere confirmación del usuario.","inputSchema":{"type":"object","properties":{"offer_id":{"type":"string"}},"required":["offer_id"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"requiresConfirmation":true}},{"name":"get_checkout_summary","description":"Obtiene el resumen de la oferta en checkout, campos requeridos por pasajero y las 3 garantías de ATI Viajes ('Reservá sin pagar', 'Un experto revisa tu reserva', 'Cancelación sin costo').","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},{"name":"fill_passenger_details","description":"Autocompleta en pantalla los nombres y apellidos de los pasajeros y los datos de contacto (email y teléfono) de forma transparente.","inputSchema":{"type":"object","properties":{"passengers":{"type":"array","items":{"type":"object","properties":{"passenger_index":{"type":"number"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"required":["first_name","last_name"]}},"contact":{"type":"object","properties":{"email":{"type":"string"},"phone":{"type":"string"}}}},"required":["passengers"]},"annotations":{"readOnlyHint":false,"requiresConfirmation":false}},{"name":"create_booking","description":"Crea la reserva oficial del vuelo en ATI Viajes (generando el PNR / código de reserva en el GDS). Asegura los lugares y la tarifa sin realizar cobro a la tarjeta. Requiere confirmación del usuario.","inputSchema":{"type":"object","properties":{"offer_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"requiresConfirmation":true}},{"name":"navigate_to_flights_search","description":"Navega al buscador principal de vuelos.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}}]}