Fortrip
Search hotels worldwide, compare live room rates, book and pay securely, and cancel bookings.
Descripción del creador (original en inglés)
Search Ryanair flights from your AI agent. Unofficial.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"flyan": {
"command": "uvx",
"args": [
"Flyan"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add flyan -- uvx FlyanPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"flyan": {
"command": "uvx",
"args": [
"Flyan"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"flyan": {
"type": "stdio",
"command": "uvx",
"args": [
"Flyan"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub victorlane, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.4.4) llegó al registro hace 3 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Fortrip, Bhutan Trips by Druk Asia, CarHauler247 Car Shipping Quotes
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Search hotels worldwide, compare live room rates, book and pay securely, and cancel bookings.
Bhutan trip search & booking via the Druk Asia API: festivals, itineraries, flights, bookings.
Car shipping prices between US locations from a licensed auto transport broker, with a booking link.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
An open-source unofficial API wrapper to get flight data from Ryanair.
[!TIP]
New: MCP server for AI agents. Plug Flyan into Claude Desktop,
Claude Code, or Cursor and search Ryanair flights in natural language.
Jump to the MCP Quickstart.
pip install Flyan
Or using uv:
uv add Flyan
from datetime import datetime
from flyan import RyanAir, FlightSearchParams
client = RyanAir(currency="EUR")
search_params = FlightSearchParams( from_airport="DUB", # Dublin to_airport="BCN", # Barcelona from_date=datetime(2025, 8, 15), to_date=datetime(2025, 8, 20), max_price=200 )
flights = client.get_oneways(search_params)
for flight in flights: print(f"Flight {flight.flight_number}: {flight.departure_airport.name} → {flight.arrival_airport.name}") print(f"Departure: {flight.departure_date}") print(f"Price: {flight.price} {flight.currency}") print("---")
RyanAir(currency: str = "EUR")
Creates a new RyanAir client instance.
Parameters:
currency (str, optional): Preferred currency for pricing. Defaults to "EUR". Must be a valid currency code from the supported currencies list.Example:
# Default EUR currency
client = RyanAir()
client = RyanAir(currency="USD")
get_oneways(params: FlightSearchParams) -> list[Flight]Search for one-way flights.
Parameters:
params (FlightSearchParams): Search parametersReturns:
list[Flight]: List of available flightsParameters for searching flights.
FlightSearchParams(
from_airport: str, from_date: datetime, to_date: datetime, destination_country: Optional[str] = None, max_price: Optional[int] = None, to_airport: Optional[str] = None, departure_time_from: Optional[str] = "00:00", departure_time_to: Optional[str] = "23:59" )
Parameters:
from_airport (str): IATA code of departure airport (e.g., "DUB")from_date (datetime): Earliest departure dateto_date (datetime): Latest departure datedestination_country (str, optional): Country code for destinationmax_price (int, optional): Maximum price filterto_airport (str, optional): IATA code of arrival airportdeparture_time_from (str, optional): Earliest departure time (HH:MM format)departure_time_to (str, optional): Latest departure time (HH:MM format)Example:
from datetime import datetime
params = FlightSearchParams( from_airport="DUB", from_date=datetime(2025, 8, 15), to_date=datetime(2025, 8, 20), to_airport="BCN", max_price=150, departure_time_from="08:00", departure_time_to="18:00" )
Extended parameters for return flight searches.
ReturnFlightSearchParams(
return_date_from: datetime, return_date_to: datetime, inbound_departure_time_from: Optional[str] = "00:00", inbound_departure_time_to: Optional[str] = "23:59" )
Represents a single flight.
Attributes:
departure_airport (Airport): Departure airport informationarrival_airport (Airport): Arrival airport informationdeparture_date (datetime): Departure date and timearrival_date (datetime): Arrival date and timeprice (float): Flight pricecurrency (str): Price currencyflight_key (str): Unique flight identifierflight_number (str): Flight numberprevious_price (Optional[str | float]): Previous price if availableRepresents airport information.
Attributes:
country_name (str): Country nameiata_code (str): IATA airport codename (str): Airport nameseo_name (str): SEO-friendly namecity_name (str): City namecity_code (str): City codecity_country_code (str): Country codeRepresents a return flight booking.
Attributes:
outbound (Flight): Outbound flightinbound (Flight): Return flightsummary_price (float): Total price for both flightssummary_currency (str): Currency for total priceprevious_price (str | float): Previous total price if availableRepresents an airport in Ryanair's live network. Returned by the explore methods.
Attributes:
iata_code (str): IATA airport codename (str): Airport nameseo_name (str): SEO-friendly namecountry_code (str): Lowercase ISO2 country code (e.g. "ie", "es")city_code (str): City code (e.g. "LONDON", "DUBLIN")region_code (Optional[str]): Region code (e.g. "SCOTLAND", "ANDALUSIA")currency_code (str): Local currency codetime_zone (str): IANA timezone (e.g. "Europe/Dublin")base (bool): True if this is a Ryanair baselatitude (float), longitude (float): Coordinatesroutes (list[str]): Raw route strings (year-round)seasonal_routes (list[str]): Raw route strings (seasonal-only)categories (list[str]): Marketing categories assigned by Ryanairaliases (list[str]): Alternative namesHelpers: airport_routes(), country_routes(), seasonal_airport_routes(), typed_routes(), typed_seasonal_routes().
Returned by explore_with_fares(). Pairs a reachable destination with its cheapest sampled fare, if one was returned by the price probe.
Attributes:
airport (NetworkAirport): The destination airportfare (Optional[Flight]): The cheapest sampled fare in the window, or None if the route is in the network but no priced inventory came back (no flights in the window, sold out, etc.)# Search flights to any airport in Spain
params = FlightSearchParams( from_airport="DUB", destination_country="ES", from_date=datetime(2025, 9, 1), to_date=datetime(2025, 9, 7) )
flights = client.get_oneways(params)
# Morning flights under €100
params = FlightSearchParams( from_airport="STN", # London Stansted to_airport="DUB", # Dublin from_date=datetime(2025, 8, 1), to_date=datetime(2025, 8, 5), max_price=100, departure_time_from="06:00", departure_time_to="12:00" )
flights = client.get_oneways(params)
from flyan import RyanairException
try: flights = client.get_oneways(params) if not flights: print("No flights found for the given criteria") except RyanairException as e: print(f"Ryanair API error: {e}") except Exception as e: print(f"Unexpected error: {e}")
Explore Mode answers the question "where can I actually fly from here?". It reads Ryanair's live network metadata once and exposes the reachable destinations from any airport, optionally grouped, filtered, or joined with the cheapest fare in a date window.
All methods below are available on both RyanAir and AsyncRyanAir.
destinations = client.get_destinations("DUB")
for airport in destinations: print(f"{airport.iata_code} {airport.name} ({airport.country_code})")
# All Scottish airports DUB flies to
in_scotland = client.get_destinations_in_region("DUB", "SCOTLAND")
in_london = client.get_destinations_in_city("DUB", "LONDON")
in_spain = client.get_destinations_in_country("DUB", "es")
Country codes are lowercase ISO2. Region and city codes come from the live network (uppercase, e.g. SCOTLAND, ANDALUSIA, COSTA_DE_SOL, LONDON, MILAN).
# {country_code: [airports]}
by_country = client.explore_by_country("DUB")
print(f"DUB flies to {len(by_country)} countries") for country, airports in sorted(by_country.items()): codes = ", ".join(a.iata_code for a in airports) print(f" {country}: {codes}")
# {region_code: [airports]}
by_region = client.explore_by_region("DUB")
Airports without a region_code are collected under the empty-string key, so callers can decide whether to surface or drop them.
seasonal = client.get_seasonal_destinations("DUB")
Ryanair's seasonalRoutes list is sparsely populated upstream, so this often returns [] outside of summer/winter schedule transitions. The method is provided so callers do not need to peek at the raw route strings.
explore_with_fares() joins the network destinations with a oneWayFares probe, so each destination comes back with its cheapest sampled Flight (or None if no fare was returned for that route in the window). It costs one network call plus one fare call.
from datetime import datetime, timedelta
start = datetime.now() + timedelta(days=14) end = start + timedelta(days=7)
results = client.explore_with_fares("DUB", start, end, max_price=100)
priced = [d for d in results if d.fare is not None] cheapest_first = sorted(priced, key=lambda d: d.fare.price)
for d in cheapest_first[:10]: print(f"{d.airport.iata_code} {d.airport.name}: " f"{d.fare.price} {d.fare.currency}")
AsyncRyanAir mirrors every explore method:
import asyncio
from flyan import AsyncRyanAir
async def main(): async with AsyncRyanAir() as client: by_country = await client.explore_by_country("DUB") print(f"{len(by_country)} countries reachable from DUB")
asyncio.run(main())
If you call multiple explore methods in a row, wrap the transport in CachingTransport so the network metadata is fetched once and reused.
[!IMPORTANT]
Two commands and you're done:
`bash
uv tool install "Flyan[mcp]"
claude mcp add flyan flyan-mcp
`
Now your agent can search Ryanair flights in natural language. No API
keys, no accounts.
Flyan ships an optional Model Context Protocol server so your agent can search Ryanair fares from natural-language prompts like *"find me a cheap flight from Dublin to Spain in August under €150"* or *"what's the cheapest day in July to fly DUB to BCN"*.
1. Install Flyan with the MCP extra:
uv tool install "Flyan[mcp]"
Or with pip:
pipx install "Flyan[mcp]"
This install
Solo se muestra el principio; lee el resto en el repo