EasyGroupFlights MCP

MCP remoto para cotações reais de tarifas aéreas em grupo (10+ passageiros) via https://easygroupflights.com/ — especialistas IATA, sem scraping de OTA. Endpoint https://mcp.easygroupflights.com/mcp

Documentação

easygroupflights MCP

Um servidor Model Context Protocol para easygroupflights.com — viagens aéreas em grupo credenciadas pela IATA, com tarifas negociadas de mais de 500 companhias aéreas.

Ele permite que um assistente de IA faça o que o site faz: descobrir se uma viagem é uma reserva em grupo, reunir o que um agente precisa para precificá-la e colocar a consulta diante de um humano — ou, para um grupo pequeno demais para ser considerado grupo, encontrar tarifas comuns reserváveis.

Por que um grupo precisa de uma ferramenta diferente

Uma tarifa de grupo é negociada diretamente com a companhia aérea. Ela não é vendida por nenhum mecanismo público de reservas, então nenhuma API de busca pode retornar um preço para ela. O que este servidor faz em vez disso é enviar uma consulta completa e estruturada e informar honestamente ao viajante o que acontece em seguida: um especialista responde por e-mail em cerca de duas horas, até 24 para roteiros complexos.

A linha divisória é 10 viajantes sentados. Bebês de colo com menos de dois anos não ocupam assento e não contam.

Ferramentas

FerramentaO que faz
egf_get_service_infoComo funciona a reserva em grupo, qual é o limite, quanto custa um orçamento e quanto tempo leva. Não envia nada.
egf_prepare_group_quote10+ viajantes. Verifica o resumo e retorna exatamente o que seria enviado, com um token de confirmação. Não envia nada.
egf_request_group_quoteEnvia um resumo preparado a um especialista em grupos. Aceita apenas o token. Retorna uma confirmação, não um preço.
egf_search_flights9 ou menos. Tarifas ao vivo com companhias e escalas, cada uma com um offer_id.
egf_get_offerUma tarifa por offer_id: preço, voos, um link de reserva e valid_until.

As duas ferramentas de tarifas são ocultadas de tools/list a menos que PELIKAN_MCP_URL esteja definido — uma ferramenta anunciada que não pode ser executada é pior do que uma que não existe.

egf_get_service_info termina com os contatos humanos de cada mercado — site, e-mail, telefone e WhatsApp — para que um agente possa encaminhar um usuário a uma pessoa.

Toda ferramenta:

  • define explicitamente todas as quatro anotações (readOnlyHint, destructiveHint, idempotentHint, openWorldHint). Apenas egf_request_group_quote é uma escrita, e nada é destrutivo.
  • declara um outputSchema e retorna structuredContent junto com o texto.
  • aceita entradas em snake_case.

A escrita vem em par, porque nem todo cliente pergunta ao usuário antes de uma escrita. A ferramenta de preparação retorna o resumo e um confirmation_token, que é assinado com CONFIRM_SECRET e válido por 15 minutos. A escrita aceita apenas esse token, então não pode enviar nada que o resumo não tenha mostrado.

Ela aceita um idempotency_key opcional. Sem um, o token em si é a chave, então uma escrita preparada é executada no máximo uma vez. As chaves são mantidas por 24 horas, por data center da Cloudflare.

Chamadas que apresentam GATEWAY_TOKEN como token de portador são o gateway Tripdesk:

  • Elas têm seu próprio limite de taxa de 1.200 por minuto; todos os outros recebem 60 por minuto por endereço.
  • Seus links de reserva ficam sem marcação. Os links de chamadas diretas recebem utm_source=mcp.

Toda chamada de ferramenta responde em até 28 segundos.

egf_search_flights páginas com limit (padrão 10, no máximo 20) e cursor. Cada tarifa carrega um offer_id opaco, válido por 30 minutos. É tudo o que egf_get_offer precisa. Os resultados de busca não carregam links de reserva, nem IDs de sessão ou de viagem.

Removido na versão 2.1

egf_prepare_flight_offer e egf_send_flight_offer (send_flight_offer da 1.x) foram removidos. Eles repassavam o e-mail de oferta voltado ao agente do serviço de tarifas, que enviava um e-mail com a marca, com o texto do próprio chamador, para qualquer endereço. A revisão do diretório sinalizou isso; egf_get_offer retorna o link de reserva em vez disso.

Atualizando da versão 1.x

A 2.0 renomeou as ferramentas com o prefixo egf_ e as entradas para snake_case. A maior parte do que funcionava na 1.x ainda funciona:

  • Os nomes antigos (request_group_quote, …) ainda são respondidos, embora não sejam mais listados.
  • Argumentos em camelCase (departureDate, fareId, …) são lidos como seus nomes em snake_case.
  • Uma escrita de uma etapa da 1.x é recusada, com uma mensagem indicando a ferramenta de preparação a ser chamada primeiro.

Privacidade

O que o servidor recebe, para onde vai e por quanto tempo é mantido: easygroupflights.com/mcp-privacy/. O controlador é a pelicantravel.com s.r.o.; perguntas sobre privacidade vão para dpo@pelikan.sk.

Prompts

Resumos guiados. No Claude Desktop e no claude.ai, eles estão em + → Connectors → Add from Easygroupflights; no Claude Code, são /mcp__easygroupflights__<name>. Cada um orienta o usuário pelo que a central precisa, além das perguntas que apenas esse tipo de viagem levanta, e envia somente após a confirmação do usuário.

PromptPara
school-tripEscolas e universidades: alunos e funcionários separadamente, idades para proporções de supervisão, formulários de consentimento ainda chegando
wedding-guestsCasamentos em destino: convidados de várias cidades, horário de chegada mais recente, quem paga
sports-teamClubes e equipes: horário do primeiro jogo, equipamento, risco de calendário
company-offsiteOffsites, incentivos, conferências: a semana fixa, mix de cabines, uma única fatura
pilgrimageParóquias e grupos de fé: como os participantes pagam, acessibilidade

Cada prompt aceita um market opcional (en, pl, at) além do que já é conhecido: origin, destination, dates, travellers.

Recursos

Material que um agente pode citar em vez de lembrar, cada um servido como markdown sob sua URL pública — então um recurso citado já é um link que o leitor pode seguir.

  • Guias: todas as páginas de conteúdo dos três sites de mercado (16 cada, em inglês, polonês e alemão), lidas do /mcp-resources.json que cada site publica.
  • Estudos: os estudos publicados do EGF Data Desk, em inglês e polonês, lidos da API Ghost Content de cada blog. Tabelas continuam tabelas.

Ambos são buscados sob demanda e armazenados em cache por uma hora, para que novos conteúdos cheguem aos agentes sem reimplantar o servidor.

Como usar

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

No Claude Desktop ou claude.ai: Settings → Connectors → Add custom connector, e cole https://mcp.easygroupflights.com/mcp.

Ou na configuração de qualquer outro cliente MCP:

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

O transporte é HTTP streamable. O servidor não tem estado — ele não emite ID de sessão e não precisa de Durable Objects, porque toda chamada de ferramenta é autocontida.

Configuração

Valores públicos ficam em wrangler.toml:

VariávelSignificado
SITE_URLSite voltado a humanos, exibido na saída das ferramentas e na página inicial
GROUP_MIN_PASSENGERSTamanho do grupo a partir do qual uma reserva vira grupo. Padrão: 10
FARE_CURRENCYMoeda em que o serviço de tarifas cotiza. Padrão: EUR

Três segredos, definidos com wrangler secret put:

SegredoSignificado
AUTOPILOT_URLRecebimento de consultas de grupo. Infraestrutura em vez de credencial; é segredo apenas porque este repositório é público
AUTOPILOT_API_KEYEnviado como X-API-Key ao recebimento. Sem nenhum desses, egf_request_group_quote recusa em vez de falhar silenciosamente
PELIKAN_MCP_URLEndpoint streamable-HTTP do servidor MCP da Pelikan, que precifica grupos menores. Opcional — suas ferramentas ficam ocultas enquanto não estiver definido

Licença

MIT. Veja LICENSE.

As consultas são atribuídas ao domínio de mercado puro. O Autopilot só processa uma fonte que reconhece, então nada pode ser anexado a ela.

Desenvolvimento

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

Coloque segredos locais em .dev.vars (ignorado pelo git). Deixar AUTOPILOT_API_KEY sem definir é a forma segura de exercitar egf_request_group_quote de ponta a ponta: ele valida tudo e para na fronteira do recebimento sem criar um lead real.

Execute manualmente com:

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

GET / serve uma página legível por humanos, /health uma sonda de status, e /.well-known/mcp.json um manifesto para diretórios.

Mercados

Um site por mercado; o mercado decide tanto qual marca lida com a consulta quanto a qual domínio o lead é atribuído.

marketSiteIdioma
eneasygroupflights.comInglês
plgrupoweloty.plPolonês
atgruppenfluege.atAlemão