Google Flights MCP

Busca de voos em tempo real: tarifas de ida e volta em intervalos de datas, com avaliações de preço.

Documentação

Habilidades do Agente de Viagens

Oito habilidades de agente que transformam preços em tempo real do Google Flights e Booking.com em respostas de viagem — a data mais barata para voar, para onde ir, um orçamento completo de viagem, um monitoramento de tarifas, uma lista de hotéis, uma auditoria de paridade de preços e um relatório pronto para o cliente.

Comece com o servidor hospedado, não com o repositório. Uma linha e qualquer cliente MCP pode pesquisar voos ao vivo:

claude mcp add --transport http google-flights https://google-flights-mcp.flightpowers.com/mcp --header "x-rapidapi-key: YOUR_RAPIDAPI_KEY"

Isso dá ao seu agente os dados. As habilidades abaixo são o que fazem ele usar os dados bem — uma chamada para um intervalo de datas inteiro em vez de trinta, o veredito low | typical | high em vez de um número puro, e uma busca nova a cada vez em vez de uma tarifa desatualizada.


Como as habilidades se encaixam

Um hub central contém autenticação, hosts, todos os endpoints, todos os nomes de campos de resposta e as regras de cobrança. Sete habilidades de fluxo de trabalho permanecem enxutas e delegam para ele.

travel-data-api                 hub — auth, hosts, endpoints, response fields, cost per call
  |- cheapest-dates             WHEN to fly: scan a date range, judge the winner
  |- destination-compare        WHERE to go: price many cities from one origin
  |- trip-planner               flights + hotel totalled into one all-in budget
  |- fare-watch                 one pinned route, re-checked over time, book-now-or-wait
  |- hotel-search               find and price places to stay
  |- rate-parity-monitor        same hotel priced as a resident of each country
  `- travel-brief               presentation layer — recommendation, table, links
HabilidadeUse quando quiser…Ela retorna
travel-data-apiescrever código curl ou de cliente, consultar um parâmetro ou campo de resposta, instalar o servidor MCP ou calcular quanto custa uma chamadatabelas de endpoints, curl executável, nomes exatos de campos JSON
cheapest-datesencontrar o dia, semana ou mês mais barato para voar em uma rota conhecida — ou a duração de viagem mais baratatarifa mais barata por data, o departure_date/return_date vencedor, buy_link e o veredito da oferta
destination-comparedecidir para onde ir: "algum lugar quente abaixo de $300 em outubro"tabela de cidades classificada por preço, além de uma linha de cobertura nomeando cada destino realmente pesquisado
trip-plannerprecificar uma viagem nomeada de ponta a ponta: "7 noites em Lisboa abaixo de $2000"check-in/check-out alinhados, voos de ida e volta, hotéis correspondentes, total combinado por pessoa vs. o limite
fare-watchacompanhar o preço de uma rota ao longo de verificações repetidas e alertar apenas em uma queda significativapreço ao vivo, veredito low/typical/high, faixa histórica do Google, checked_at, delta vs. seu histórico armazenado
hotel-searchencontrar hotéis por cidade, bairro ou ponto de referência, ou precificar uma propriedade nomeadaname, price_string, review_score, room_type, location, link — ou available mais nights
rate-parity-monitorver se o mesmo hotel é mais barato reservado de outro paístabela por mercado com proxy_country, tarifa por noite em uma moeda, spread vs. mercado mais barato, veredito de violação vs. ruído
travel-brieftransformar resultados em algo que você possa enviar a um clienterecomendação → tabela → veredito → links de reserva → linha de horário verificado

As habilidades são nomeadas pelo trabalho, não pelo endpoint. Dois endpoints de voos e dois endpoints de hotéis produzem sete fluxos de trabalho, porque "qual dia é mais barato" e "para onde devo ir" são perguntas diferentes para um usuário e perguntas idênticas para uma API.


Instalação

Claude Code (plugin)

claude plugin marketplace add mtnrabi/travel-agent-skills
claude plugin install travel-agent-skills@travel-agent-skills

Reinicie o Claude Code e todas as oito habilidades carregam juntas — o agente escolhe a certa a partir da pergunta, e você também pode invocar uma diretamente pelo nome (cheapest-dates, trip-planner, rate-parity-monitor).

Qualquer agente com um diretório simples de habilidades

git clone https://github.com/mtnrabi/travel-agent-skills.git

# personal, every project:
cp -r travel-agent-skills/skills/* ~/.claude/skills/

# or scoped to one project:
mkdir -p .claude/skills && cp -r travel-agent-skills/skills/* .claude/skills/

Cada habilidade é uma pasta autocontida com um SKILL.md e um descritor de exibição agents/openai.yaml, então qualquer runtime que leia um diretório de habilidades pode carregá-las — copie o conjunto inteiro ou apenas as pastas que quiser. Nada aqui importa nada; não há etapa de build e nenhuma dependência.

Sua chave de API

cp .env.example .env    # then paste your key into RAPIDAPI_KEY

As habilidades nunca imprimem, registram ou confirmam sua chave, e não pedirão uma a menos que uma chamada ao vivo precise.


Obtenha uma chave

Ambas as APIs são cobradas via RapidAPI na sua própria chave, e a mesma chave funciona para ambas depois que você assinar cada uma. Assine o que precisar — apenas voos, apenas hotéis ou ambos.

APIO que retornaCadastro
Google Flights Live APItarifas de voos em tempo real, ida e voltahttps://rapidapi.com/mtnrabi/api/google-flights-live-api
Booking Live APIdisponibilidade de hotéis e tarifas por noite em tempo realhttps://rapidapi.com/mtnrabi/api/booking-live-api

Prefere execuções sem código ou em lote agendado? Os mesmos dados são distribuídos como atores Apify: voos ($5 / 1k) e hotéis ($4 / 1k).


MCP hospedado — o servidor sem anúncios

claude mcp add --transport http google-flights https://google-flights-mcp.flightpowers.com/mcp --header "x-rapidapi-key: YOUR_RAPIDAPI_KEY"

Duas ferramentas, search_oneway_flights e search_roundtrip_flights. Ambas aceitam um intervalo de datas (departure_date_from / departure_date_to), uma lista de destinos e — para ida e volta — nights (um número ou uma lista como [5,6,7]) em vez de uma data de retorno fixa. Uma intenção do usuário é uma chamada de ferramenta, nunca uma chamada por data. Se seu cliente não suporta cabeçalhos personalizados, o servidor pago também aceita ?rapidapi_key= na URL ou um campo de chave de API onde o cliente oferecer um.

Grátis vs. pago

Pagogoogle-flights-mcp.flightpowers.com/mcpGrátisgoogle-flights-lulu.flightpowers.com/mcp
Anúnciosnenhumum card patrocinado divulgado por resultado
Chavesua própria chave RapidAPInenhuma necessária
Limite de fan-out30 por chamada (máx. 60)15 por chamada
Relatório de gastosapi_usage em cada respostan/a
Listável em diretóriosimnão — anúncios são proibidos pela Anthropic, OpenAI e o registro oficial MCP

Hotéis ainda não têm servidor MCP; as habilidades de hotéis chamam a API REST diretamente.


O que os dados fazem que um scraper não consegue

  • price_insights_low / price_insights_high / price_range_in_relation_to_other_periods — a faixa histórica de preços do próprio Google para aquela rota e período, além de um veredito low | typical | high. Essa é a diferença entre "$209" e "$209 é típico para esta rota — sem necessidade de pressa". Toda habilidade de voo lidera com o veredito, não com o número.
  • proxy_country nos endpoints de hotéis roteia a solicitação através de um proxy residencial naquele país, então o mesmo hotel e datas podem ser precificados como um usuário em us, de ou il veria. É isso que torna rate-parity-monitor possível.

Exemplo prático

Você pergunta ao Claude:

I'm flexible — cheapest 4 nights in Paris out of Berlin, sometime in the first half of June.
Is it actually a good price, or should I wait?

cheapest-dates reconhece a janela flexível, emite uma chamada search_roundtrip_flights com departure_date_from: 2026-06-01, departure_date_to: 2026-06-15 e nights: 4, ordena os resultados ele mesmo e então responde neste formato:

Low for this route. $119 round-trip sits under Google's historical band of
$135–$205 for BER–CDG in this period — this is a book-it price, not a wait-it-out price.

Best: depart Mon Jun 1, return Fri Jun 5 (4 nights)
  Out   easyJet · non-stop · 1 hr 50 min · 7:00 AM → 8:50 AM
  Back  easyJet · non-stop · 1 hr 45 min · 8:20 PM → 10:05 PM
  Total $119 · https://www.google.com/travel/flights?tfs=...

Runner-up dates, cheapest per departure day:
  Jun 2  $131   Jun 8  $146   Jun 11  $158   Jun 4  $172

Prices checked at 2026-06-01 09:14 UTC — fares go stale in minutes.

(Nomes de campos e valores de exemplo acima vêm do formato de resposta documentado da API — eles ilustram o formato da resposta, não são uma cotação ao vivo.)

Três coisas nessa resposta são o ponto central das habilidades:

  1. Uma chamada, não quinze. Uma janela de quinze dias via REST são quinze solicitações cobradas; via MCP com intervalo é uma. A habilidade diz o número de solicitações em voz alta antes de gastar seu dinheiro.
  2. O veredito lidera. Uma varredura sempre produz um mínimo — um mínimo não é uma oferta. Se a data mais barata encontrada vier como typical ou high, a habilidade diz isso.
  3. Nada é reutilizado. Pergunte novamente uma hora depois e ela re-busca e re-carimba. Nenhuma habilidade neste repositório armazena tarifa em cache, e toda resposta carrega o horário em que foi buscada.

Outros prompts para os quais essas habilidades são construídas:

Where can I go from JFK for under $400 in late October? Somewhere warm.
Watch BER→LHR for the 14th and ping me if it drops below $90.
Plan a week in Rome in May for two, £1800 all in, hotel needs free cancellation.
Is the Hilton Paris Opera cheaper booked from Germany than from the US, same dates?
Write up the Lisbon options for my client with a table and booking links.

Regras de design que essas habilidades seguem

  1. Prefira as ferramentas MCP quando um cliente as tiver; caso contrário, use REST curl. Hotéis são sempre REST.
  2. Diga quanto uma chamada custa antes de fazê-la. Toda solicitação cobrada é dinheiro do usuário.
  3. Um resultado vazio é [] com HTTP 200 — isso significa "sem voos nesta rota e data", não um erro. Reporte e siga em frente; não tente novamente em loop.
  4. Nunca armazene em cache ou reutilize uma tarifa de antes na conversa. Sempre carimbe a resposta com quando os dados foram buscados.
  5. Liderar com a resposta, depois a evidência. Nunca apresente um buy_link como uma tarifa garantida, travada ou assegurada.
  6. Nunca imprima, registre ou confirme uma chave de API.

Estas são APIs independentes que retornam preços de voos e hotéis publicamente disponíveis. Elas não são afiliadas, endossadas ou patrocinadas pelo Google ou Booking.com.

Licença MIT — veja LICENSE.