Google Flights MCP

Búsqueda de vuelos en tiempo real: tarifas de ida y vuelta en rangos de fechas, con veredictos de precios.

Documentación

Habilidades de Agente de Viajes

Ocho habilidades de agente que convierten los precios en tiempo real de Google Flights y Booking.com en respuestas de viaje: la fecha más barata para volar, a dónde ir, un presupuesto completo de viaje, un seguimiento de tarifas, una lista corta de hoteles, una auditoría de paridad de tarifas y un informe listo para el cliente.

Empieza con el servidor alojado, no con el repositorio. Una línea y cualquier cliente MCP puede buscar vuelos en vivo:

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

Eso le da a tu agente los datos. Las habilidades siguientes son las que hacen que use bien los datos: una llamada para todo un rango de fechas en lugar de treinta, el veredicto low | typical | high en lugar de un número desnudo, y una obtención fresca cada vez en lugar de una tarifa obsoleta.


Cómo encajan las habilidades

Un centro central contiene la autenticación, los hosts, cada endpoint, cada nombre de campo de respuesta y las reglas de facturación. Siete habilidades de flujo de trabajo se mantienen delgadas y delegan en él.

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
HabilidadÚsala cuando quieras…Devuelve
travel-data-apiescribir código curl o de cliente, buscar un parámetro o campo de respuesta, instalar el servidor MCP, o calcular cuánto cuesta una llamadatablas de endpoints, curl ejecutable, nombres exactos de campos JSON
cheapest-datesencontrar el día, semana o mes más barato para volar una ruta conocida — o la duración de viaje más baratatarifa más barata por fecha, el departure_date/return_date ganador, buy_link, y el veredicto de oferta
destination-comparedecidir a dónde ir: "algún lugar cálido por menos de $300 en octubre"una tabla de ciudades ordenadas por precio, más una línea de cobertura que nombra cada destino realmente buscado
trip-plannercotizar un viaje nombrado de principio a fin: "7 noches en Lisboa por menos de $2000"check-in/check-out alineados, vuelos de ida y vuelta, hoteles coincidentes, total combinado por persona vs. el límite
fare-watchrastrear el precio de una ruta en comprobaciones repetidas y alertar solo ante una caída significativaprecio en vivo, veredicto low/typical/high, banda histórica de Google, checked_at, delta vs. tu historial almacenado
hotel-searchencontrar hoteles por ciudad, barrio o punto de referencia, o cotizar una propiedad nombradaname, price_string, review_score, room_type, location, link — o available más nights
rate-parity-monitorver si el mismo hotel es más barato reservado desde otro paístabla por mercado con proxy_country, tarifa por noche en una moneda, diferencial vs. mercado más barato, veredicto de brecha vs. ruido
travel-briefconvertir resultados en algo que puedas enviar a un clienterecomendación → tabla → veredicto → enlaces de reserva → línea de verificación

Las habilidades se nombran por el trabajo, no por el endpoint. Dos endpoints de vuelos y dos endpoints de hoteles producen siete flujos de trabajo, porque "qué día es más barato" y "a dónde debería ir" son preguntas diferentes para un usuario y preguntas idénticas para una API.


Instalación

Claude Code (plugin)

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

Reinicia Claude Code y las ocho habilidades se cargan juntas: el agente elige la correcta según la pregunta, y también puedes invocar una directamente por nombre (cheapest-dates, trip-planner, rate-parity-monitor).

Cualquier agente con un directorio de habilidades simple

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 habilidad es una carpeta autocontenida con un descriptor de visualización SKILL.md y un agents/openai.yaml, por lo que cualquier runtime que lea un directorio de habilidades puede cargarlas: copia todo el conjunto, o solo las carpetas que quieras. Nada aquí importa nada; no hay paso de compilación ni dependencia.

Tu clave de API

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

Las habilidades nunca imprimen, registran ni confirman tu clave, y no la pedirán a menos que una llamada en vivo la necesite.


Obtén una clave

Ambas APIs se facturan a través de RapidAPI con tu propia clave, y la misma clave funciona para ambas una vez que te suscribes a cada una. Suscríbete a la que necesites: solo vuelos, solo hoteles, o ambas.

APIQué devuelveRegístrate
Google Flights Live APItarifas de vuelos en tiempo real, ida y vueltahttps://rapidapi.com/mtnrabi/api/google-flights-live-api
Booking Live APIdisponibilidad de hoteles y tarifas por noche en tiempo realhttps://rapidapi.com/mtnrabi/api/booking-live-api

¿Prefieres ejecuciones sin código o programadas por lotes? Los mismos datos se envían como actores de Apify: vuelos ($5 / 1k) y hoteles ($4 / 1k).


MCP alojado — el servidor sin anuncios

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

Dos herramientas, search_oneway_flights y search_roundtrip_flights. Ambas toman un rango de fechas (departure_date_from / departure_date_to), una lista de destinos y, para ida y vuelta, nights (un número, o una lista como [5,6,7]) en lugar de una fecha de regreso fija. Una intención de usuario es una llamada de herramienta, nunca una llamada por fecha. Si tu cliente no admite encabezados personalizados, el servidor de pago también acepta ?rapidapi_key= en la URL o un campo de clave de API donde el cliente lo ofrezca.

Gratis vs. de pago

De pagogoogle-flights-mcp.flightpowers.com/mcpGratisgoogle-flights-lulu.flightpowers.com/mcp
Anunciosningunouna tarjeta patrocinada divulgada por resultado
Clavetu propia clave de RapidAPIninguna necesaria
Límite de fan-out30 por llamada (máx. 60)15 por llamada
Informe de gastosapi_usage en cada respuestan/a
Listable en directoriono — los anuncios están prohibidos por Anthropic, OpenAI y el registro oficial de MCP

Los hoteles aún no tienen servidor MCP; las habilidades de hoteles llaman a la API REST directamente.


Lo que los datos hacen que un scraper no puede

  • price_insights_low / price_insights_high / price_range_in_relation_to_other_periods — la propia banda de precios histórica de Google para esa ruta y período, más un veredicto low | typical | high. Esa es la diferencia entre "$209" y "$209 es típico para esta ruta — no hay necesidad de apresurarse". Cada habilidad de vuelo comienza con el veredicto, no con el número.
  • proxy_country en los endpoints de hoteles enruta la solicitud a través de un proxy residencial en ese país, por lo que el mismo hotel y las mismas fechas pueden cotizarse como los vería un usuario en us, de o il. Eso es lo que hace posible rate-parity-monitor.

Ejemplo práctico

Le preguntas a 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 reconoce la ventana flexible, emite una llamada search_roundtrip_flights con departure_date_from: 2026-06-01, departure_date_to: 2026-06-15 y nights: 4, ordena los resultados por sí mismo y luego responde con esta forma:

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.

(Los nombres de campos y valores de muestra anteriores provienen de la forma de respuesta documentada de la API — ilustran el formato de respuesta, no son una cotización en vivo.)

Tres cosas en esa respuesta son el punto central de las habilidades:

  1. Una llamada, no quince. Una ventana de quince días sobre REST son quince solicitudes facturadas; sobre MCP con un rango es una. La habilidad dice el número de solicitudes en voz alta antes de gastar tu dinero.
  2. El veredicto lidera. Un escaneo siempre produce un mínimo — un mínimo no es una oferta. Si la fecha más barata encontrada devuelve typical o high, la habilidad lo dice.
  3. Nada se reutiliza. Pregunta de nuevo una hora después y vuelve a obtener y a sellar. Ninguna habilidad en este repositorio almacena en caché una tarifa, y cada respuesta lleva la hora en que se obtuvo.

Otros prompts para los que están construidas estas habilidades:

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.

Reglas de diseño que siguen estas habilidades

  1. Prefiere las herramientas MCP cuando un cliente las tenga; de lo contrario, recurre a curl REST. Los hoteles siempre son REST.
  2. Di cuánto cuesta una llamada antes de hacerla. Cada solicitud facturada es dinero del usuario.
  3. Un resultado vacío es [] con HTTP 200 — eso significa "no hay vuelos en esta ruta y fecha", no un error. Repórtalo y continúa; no reintentes en un bucle.
  4. Nunca almacenes en caché ni reutilices una tarifa de una conversación anterior. Siempre sella la respuesta con cuándo se obtuvieron los datos.
  5. Comienza con la respuesta, luego la evidencia. Nunca presentes un buy_link como una tarifa retenida, bloqueada o garantizada.
  6. Nunca imprimas, registres ni confirmes una clave de API.

Estas son APIs independientes que devuelven precios de vuelos y hoteles disponibles públicamente. No están afiliadas, respaldadas ni patrocinadas por Google o Booking.com.

Licencia MIT — consulta LICENSE.