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
| Ferramenta | O que faz |
|---|---|
egf_get_service_info | Como funciona a reserva em grupo, qual é o limite, quanto custa um orçamento e quanto tempo leva. Não envia nada. |
egf_prepare_group_quote | 10+ viajantes. Verifica o resumo e retorna exatamente o que seria enviado, com um token de confirmação. Não envia nada. |
egf_request_group_quote | Envia um resumo preparado a um especialista em grupos. Aceita apenas o token. Retorna uma confirmação, não um preço. |
egf_search_flights | 9 ou menos. Tarifas ao vivo com companhias e escalas, cada uma com um offer_id. |
egf_get_offer | Uma 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). Apenasegf_request_group_quoteé uma escrita, e nada é destrutivo. - declara um
outputSchemae retornastructuredContentjunto 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.
| Prompt | Para |
|---|---|
school-trip | Escolas e universidades: alunos e funcionários separadamente, idades para proporções de supervisão, formulários de consentimento ainda chegando |
wedding-guests | Casamentos em destino: convidados de várias cidades, horário de chegada mais recente, quem paga |
sports-team | Clubes e equipes: horário do primeiro jogo, equipamento, risco de calendário |
company-offsite | Offsites, incentivos, conferências: a semana fixa, mix de cabines, uma única fatura |
pilgrimage | Paró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.jsonque 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ável | Significado |
|---|---|
SITE_URL | Site voltado a humanos, exibido na saída das ferramentas e na página inicial |
GROUP_MIN_PASSENGERS | Tamanho do grupo a partir do qual uma reserva vira grupo. Padrão: 10 |
FARE_CURRENCY | Moeda em que o serviço de tarifas cotiza. Padrão: EUR |
Três segredos, definidos com wrangler secret put:
| Segredo | Significado |
|---|---|
AUTOPILOT_URL | Recebimento de consultas de grupo. Infraestrutura em vez de credencial; é segredo apenas porque este repositório é público |
AUTOPILOT_API_KEY | Enviado como X-API-Key ao recebimento. Sem nenhum desses, egf_request_group_quote recusa em vez de falhar silenciosamente |
PELIKAN_MCP_URL | Endpoint 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.
market | Site | Idioma |
|---|---|---|
en | easygroupflights.com | Inglês |
pl | grupoweloty.pl | Polonês |
at | gruppenfluege.at | Alemão |