Asistentes de IA en Wildpass
Esta demo se puede contratar entera desde un asistente de IA, sin rellenar ningún formulario.
Para cualquier persona
Qué puede hacer un asistente aquí
- Calcular el precio de tu viaje y enseñarte los dos planes, Wild y Wild+.
- Ayudarte a elegir: si vas a hacer trekking, buceo o esquí, solo Wild+ lo cubre.
- Guardar tus datos y los de cada viajero: nombre y fecha de nacimiento (nunca DNI, pasaporte ni tarjeta).
- Enseñarte el resumen completo, con el total, antes de pagar.
- Pagar (es un pago de prueba) solo cuando tú le digas que sí.
- Consultar tu póliza más tarde, con su número y tu email.
Tu asistente nunca paga sin tu confirmación explícita y nunca toca tu tarjeta: cuando dices «sí», el pago de prueba se completa en nuestro servidor.
Un ejemplo
- Tú: Búscame un seguro de viaje para 2 personas de 35 y 38 años, de España a Tailandia, del 10 al 24 de diciembre.
- Asistente: Aquí tienes los dos planes con su precio. Wild+ incluye deportes de aventura y cancelación. ¿Cuál prefieres?
- Tú: Wild+, que vamos a bucear.
- Asistente: Necesito el nombre y la fecha de nacimiento de cada viajero, y un email para enviarte la póliza.
- Tú: Ana López, 3 de mayo de 1991; Luis Martín, 20 de enero de 1988; ana@example.com.
- Asistente: Este es el resumen: viaje, plan, viajeros, coberturas, exclusiones y el total. ¿Aceptas las condiciones y confirmas el pago?
- Tú: Sí, confirmo.
- Asistente: Hecho: aquí tienes el número de póliza y el enlace al PDF. También te la hemos enviado por email.
Texto de ejemplo para copiar
Búscame un seguro de viaje para 2 personas de 35 y 38 años, de España a Tailandia, del 10 al 24 de diciembre, y enséñame el resumen antes de pagar.
Funciona con asistentes y navegadores compatibles con WebMCP, un estándar nuevo que se está incorporando a Chrome.
Qué pasa después
La póliza se emite en cuanto confirmas: tu asistente te da el número y el enlace al PDF, y te llega por email en un par de minutos (si no la ves, mira en Spam). Es una demo: no se cobra nada y la póliza no tiene validez.
Para desarrolladores
Los agentes no deben introducir datos de tarjeta. Usa las herramientas WebMCP: tras la confirmación explícita del usuario, confirm_payment completa el pago de prueba en el servidor.
Qué es WebMCP
WebMCP es un estándar web nuevo (en preparación en el W3C y en pruebas en Chrome) que permite a una página ofrecer «herramientas» a los asistentes de IA del navegador: en vez de leer la pantalla y pulsar botones, el asistente llama a funciones con datos claros. La página principal de Wildpass registra sus herramientas al cargarse, y cada una usa las mismas reglas del servidor que la web.
Las 6 herramientas, en orden
get_quoteCalcula el precio de los dos planes para un viaje: destino, fechas y edades.select_planEmpieza un pedido con el plan que ha elegido la persona.set_traveler_detailsGuarda quién contrata (nombre y email) y el nombre y la fecha de nacimiento de cada viajero; nada más.review_orderDevuelve el resumen completo y el total, que el asistente debe enseñarte antes de pagar.confirm_paymentPaga (pago de prueba con Stripe, el asistente nunca ve datos de tarjeta) y emite la póliza, solo si se cumplen todas estas reglas:get_policyConsulta una póliza con su número y el email de quien la contrató.
Las herramientas están disponibles en la página principal.
El flujo
get_quote → select_plan → set_traveler_details → review_order → el usuario ve el resumen y dice que sí → confirm_payment · get_policy
Cada paso usa lo que devuelve el anterior: quote_id → order_id → review_token. review_order congela el resumen que ve el usuario; si cambian los datos o se vuelve a revisar, el review_token anterior deja de valer.
Reglas de seguridad de confirm_payment
El pago se rechaza si falta cualquiera de estas condiciones:
review_token: el código del último resumen revisado. Caduca si cambian los datos o se vuelve a revisar.accept_terms: has aceptado las condiciones del seguro.confirmed_total_eur: el total coincide al céntimo con el del resumen.user_confirmed: has dicho que sí, expresamente, a pagar.
Compatibilidad con navegadores
La página principal registra las herramientas en document.modelContext (WebMCP, en pruebas en Chrome). Si el navegador solo tiene navigator.modelContext (la API anterior), las registra ahí y los dos nombres apuntan al mismo objeto. Si no tiene ninguno, carga el polyfill MCP-B (@mcp-b/global). Las herramientas aparecen un momento después de cargar la página.
En tu navegador: Comprobando…
Errores
Ninguna herramienta lanza excepciones: cada respuesta es { ok: true, … } o { ok: false, error_code, message, how_to_fix }, y how_to_fix dice qué hacer. Los más habituales:
INVALID_INPUTFalta un campo, sobra uno o un tipo no es correcto.DESTINATION_NOT_COVEREDDestino con recomendación oficial de no viajar: propón otro.QUOTE_EXPIREDEl presupuesto ha caducado: pide otro con get_quote.AGE_MISMATCHUna fecha de nacimiento no da la edad del presupuesto el día de la ida.INVALID_REVIEW_TOKENNo es el review_token del último review_order.TERMS_NOT_ACCEPTEDaccept_terms no es true: el usuario no ha aceptado las condiciones.USER_CONFIRMATION_REQUIREDuser_confirmed no es true: falta el «sí» del usuario.TOTAL_MISMATCHconfirmed_total_eur no es exactamente el total revisado.ALREADY_PAIDEl pedido ya está pagado: consulta la póliza con get_policy.PAYMENT_PROVIDER_UNAVAILABLEStripe no responde: no se emite la póliza; reinténtalo más tarde.
Ejemplos para copiar
const mc = document.modelContext ?? navigator.modelContext;
const quote = await mc.executeTool('get_quote', {
origin_country: 'ES', destination_country: 'TH',
departure_date: '2026-12-13', return_date: '2026-12-27',
traveler_ages: [35, 38],
});
console.log(quote.plans.map(p => [p.plan_name, p.total_price_eur]));{
"ok": false,
"error_code": "TOTAL_MISMATCH",
"message": "El total confirmado no coincide con el total revisado (170,16 €).",
"how_to_fix": "Envía confirmed_total_eur como número, exactamente igual al total_eur que devolvió review_order y que el usuario ha aceptado."
}await mc.executeTool('confirm_payment', {
order_id: order.order_id,
review_token: review.review_token,
accept_terms: true, // the user accepted the terms
user_confirmed: true, // the user said yes to this total
confirmed_total_eur: review.total_eur,
});