EasyGroupFlights MCP

MCP remoto para cotizaciones reales de tarifas aéreas grupales (10+ pasajeros) vía https://easygroupflights.com/ — especialistas IATA, no scraping de OTA. Endpoint https://mcp.easygroupflights.com/mcp

Documentación

easygroupflights MCP

Un servidor de Model Context Protocol para easygroupflights.com — viajes aéreos grupales acreditados por IATA, con tarifas negociadas de más de 500 aerolíneas.

Permite que un asistente de IA haga lo que hace el sitio web: determinar si un viaje es una reserva grupal, recopilar lo que un agente necesita para cotizarlo y poner la consulta frente a un humano — o, para un grupo demasiado pequeño para ser grupal, encontrar tarifas normales reservables.

Por qué un grupo necesita una herramienta diferente

Una tarifa grupal se negocia directamente con la aerolínea. No se vende a través de ningún motor de reservas público, por lo que ninguna API de búsqueda puede devolver un precio para una. Lo que este servidor hace en su lugar es enviar una consulta completa y estructurada y decirle al viajero honestamente qué sucede después: un especialista responde por correo electrónico en aproximadamente dos horas, hasta 24 para rutas complejas.

La línea divisoria es 10 viajeros sentados. Los bebés de regazo menores de dos años no ocupan asiento y no cuentan.

Herramientas

HerramientaQué hace
egf_get_service_infoCómo funciona la reserva grupal, cuál es el umbral, cuánto cuesta una cotización y cuánto tarda. No envía nada.
egf_prepare_group_quote10+ viajeros. Verifica el resumen y devuelve exactamente lo que se enviaría, con un token de confirmación. No envía nada.
egf_request_group_quoteEnvía un resumen preparado a un especialista grupal. Solo toma el token. Devuelve una confirmación, no un precio.
egf_search_flights9 o menos. Tarifas en vivo con aerolíneas y escalas, cada una con un offer_id.
egf_get_offerUna tarifa por offer_id: precio, vuelos, un enlace de reserva y valid_until.

Las dos herramientas de tarifas se ocultan de tools/list a menos que PELIKAN_MCP_URL esté configurado — una herramienta anunciada que no puede ejecutarse es peor que una que no está allí.

egf_get_service_info termina con los contactos humanos de cada mercado — sitio web, correo electrónico, teléfono y WhatsApp — para que un agente pueda pasar un usuario a una persona.

Cada herramienta:

  • establece las cuatro anotaciones (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) explícitamente. Solo egf_request_group_quote es una escritura, y nada es destructivo.
  • declara un outputSchema y devuelve structuredContent junto con el texto.
  • acepta entradas en snake_case.

La escritura viene como un par, porque no todos los clientes preguntan al usuario antes de una escritura. La herramienta de preparación devuelve el resumen y un confirmation_token, que está firmado con CONFIRM_SECRET y válido por 15 minutos. La escritura toma solo ese token, por lo que no puede enviar nada que el resumen no haya mostrado.

Acepta un idempotency_key opcional. Sin uno, el token en sí es la clave, por lo que una escritura preparada se realiza como máximo una vez. Las claves se conservan durante 24 horas, por centro de datos de Cloudflare.

Los llamadores que presentan GATEWAY_TOKEN como token de portador son la puerta de enlace de Tripdesk:

  • Obtienen su propio límite de velocidad de 1,200 por minuto; todos los demás obtienen 60 por minuto por dirección.
  • Sus enlaces de reserva se dejan sin etiquetar. Los enlaces de llamadores directos obtienen utm_source=mcp.

Cada llamada de herramienta responde dentro de 28 segundos.

egf_search_flights páginas con limit (predeterminado 10, como máximo 20) y cursor. Cada tarifa lleva un offer_id opaco, válido por 30 minutos. Es todo lo que egf_get_offer necesita. Los resultados de búsqueda no llevan enlaces de reserva, ni IDs de sesión o de viaje.

Eliminado en 2.1

egf_prepare_flight_offer y egf_send_flight_offer (1.x send_flight_offer) han desaparecido. Pasaban a través del correo electrónico de ofertas orientado al agente del servicio de tarifas, que enviaba un correo electrónico de marca, con el texto del llamador, a cualquier dirección. La revisión del directorio lo señaló; egf_get_offer devuelve el enlace de reserva en su lugar.

Actualización desde 1.x

2.0 renombró las herramientas con el prefijo egf_ y las entradas a snake_case. La mayor parte de lo que funcionaba en 1.x todavía funciona:

  • Los nombres antiguos (request_group_quote, …) todavía se responden, aunque ya no se enumeran.
  • Los argumentos camelCase (departureDate, fareId, …) se leen como sus nombres snake_case.
  • Una escritura de un solo paso de 1.x se rechaza, con un mensaje que nombra la herramienta de preparación a llamar primero.

Privacidad

Lo que el servidor recibe, a dónde va y cuánto tiempo se conserva: easygroupflights.com/mcp-privacy/. El controlador es pelicantravel.com s.r.o.; las preguntas de privacidad van a dpo@pelikan.sk.

Prompts

Resúmenes guiados. En Claude Desktop y claude.ai están bajo + → Connectors → Add from Easygroupflights; en Claude Code son /mcp__easygroupflights__<name>. Cada uno guía al usuario a través de lo que el escritorio necesita, más las preguntas que solo ese tipo de viaje plantea, y envía solo una vez que el usuario confirma.

PromptPara
school-tripEscuelas y universidades: alumnos y personal por separado, edades para ratios de supervisión, formularios de consentimiento aún por llegar
wedding-guestsBodas de destino: invitados de varias ciudades, última llegada, quién paga
sports-teamClubes y equipos: hora del primer partido, equipo, riesgo de calendario
company-offsiteOffsites, incentivos, conferencias: la semana fija, mezcla de cabinas, una factura
pilgrimageParroquias y grupos de fe: cómo pagan los participantes, accesibilidad

Cada prompt toma un market opcional (en, pl, at) más lo que ya se conoce: origin, destination, dates, travellers.

Recursos

Material que un agente puede citar en lugar de recordar, cada uno servido como markdown bajo su URL pública — por lo que un recurso citado ya es un enlace que un lector puede seguir.

  • Guías: cada página de contenido de los tres sitios de mercado (16 cada uno, en inglés, polaco y alemán), leídas desde el /mcp-resources.json que cada sitio publica.
  • Estudios: los estudios publicados de EGF Data Desk, en inglés y polaco, leídos desde la API de contenido Ghost de cada blog. Las tablas siguen siendo tablas.

Ambos se obtienen bajo demanda y se almacenan en caché durante una hora, para que el contenido nuevo llegue a los agentes sin volver a implementar el servidor.

Úsalo

claude mcp add --transport http easygroupflights https://mcp.easygroupflights.com/mcp

En Claude Desktop o claude.ai: Settings → Connectors → Add custom connector, y pega https://mcp.easygroupflights.com/mcp.

O en la configuración de cualquier otro cliente MCP:

{
  "mcpServers": {
    "easygroupflights": {
      "type": "http",
      "url": "https://mcp.easygroupflights.com/mcp"
    }
  }
}

El transporte es HTTP transmisible. El servidor no tiene estado — no emite ID de sesión y no necesita Durable Objects, porque cada llamada de herramienta es autocontenida.

Configuración

Los valores públicos viven en wrangler.toml:

VariableSignificado
SITE_URLSitio orientado a humanos, mostrado en la salida de la herramienta y en la página de inicio
GROUP_MIN_PASSENGERSTamaño del grupo en el que una reserva se convierte en grupal. Predeterminado 10
FARE_CURRENCYMoneda en la que el servicio de tarifas cotiza. Predeterminado EUR

Tres secretos, configurados con wrangler secret put:

SecretoSignificado
AUTOPILOT_URLRecepción de consultas grupales. Infraestructura más que una credencial; un secreto solo porque este repositorio es público
AUTOPILOT_API_KEYEnviado como X-API-Key a la recepción. Sin ninguno de estos egf_request_group_quote se niega en lugar de fallar silenciosamente
PELIKAN_MCP_URLEndpoint HTTP transmisible del servidor MCP de Pelikan, que cotiza grupos subgrupales. Opcional — sus herramientas permanecen ocultas mientras no esté configurado

Licencia

MIT. Ver LICENSE.

Las consultas se atribuyen al dominio de mercado desnudo. Autopilot solo procesa una fuente que reconoce, por lo que no se le puede agregar nada.

Desarrollar

npm install
npm run dev        # wrangler dev on :8787
npm test           # unit tests, no network
npm run typecheck
npm run deploy     # wrangler deploy

Pon los secretos locales en .dev.vars (ignorado por git). Dejar AUTOPILOT_API_KEY sin configurar es la forma segura de ejercitar egf_request_group_quote de extremo a extremo: valida todo y se detiene en el límite de la recepción sin crear un lead real.

Manéjalo a mano con:

curl -s localhost:8787/mcp -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

GET / sirve una página legible por humanos, /health una sonda de estado, y /.well-known/mcp.json un manifiesto para directorios.

Mercados

Un sitio por mercado; el mercado decide tanto qué marca maneja la consulta como a qué dominio se atribuye el lead.

marketSitioIdioma
eneasygroupflights.comInglés
plgrupoweloty.plPolaco
atgruppenfluege.atAlemán