MCP 服务器

Ignav Flights

io.github.gusgordon/ignav-flights
旅行与酒店 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Searches flight itineraries and prices between airports and returns preferred booking links.

search_airports
Search airports
Find airport IATA codes by city, airport name, metro area, or code.
只读 可访问外部资源
输入模式
{'type': 'object', 'title': 'SearchAirportsArgs', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 5, 'maximum': 10, 'minimum': 1, 'description': 'Maximum number of airport results to return.'}, 'query': {'type': 'string', 'title': 'Query', 'description': 'Search query for airport names, city names, or airport codes.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'name', 'city', 'country'], 'properties': {'city': {'type': 'string', 'description': 'City served by the airport.'}, 'code': {'type': 'string', 'description': 'Three-letter airport IATA code.'}, 'name': {'type': 'string', 'description': 'Full airport name.'}, 'country': {'type': 'string', 'description': 'Country where the airport is located.'}}, 'description': 'Single airport result matching the query.', 'additionalProperties': False}, 'description': 'List of airports matching the query.'}}, 'additionalProperties': False}
search_flights
Search flights
Search one-way or round-trip flight prices between two IATA airport codes. Returns only itineraries with a preferred booking link and includes a top-level booking_url for each itinerary.
只读 可访问外部资源
输入模式
{'type': 'object', 'title': 'SearchFlightsArgs', 'required': ['origin', 'destination', 'departure_date'], 'properties': {'adults': {'type': 'integer', 'title': 'Adults', 'default': 1, 'minimum': 1, 'description': 'Number of adult passengers traveling.'}, 'market': {'type': 'string', 'title': 'Market', 'default': 'US', 'description': '2-letter market or country code affecting pricing and results.'}, 'origin': {'type': 'string', 'title': 'Origin', 'description': 'Origin airport or metro IATA code.'}, 'children': {'type': 'integer', 'title': 'Children', 'default': 0, 'minimum': 0, 'description': 'Number of child passengers traveling.'}, 'max_price': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Max Price', 'default': None, 'description': 'Maximum price in the selected market currency for flight results.'}, 'max_stops': {'anyOf': [{'type': 'integer', 'maximum': 2, 'minimum': 0}, {'type': 'null'}], 'title': 'Max Stops', 'default': None, 'description': 'Maximum number of stops allowed in the flight itinerary.'}, 'cabin_class': {'enum': ['economy', 'premium_economy', 'business', 'first'], 'type': 'string', 'title': 'Cabin Class', 'default': 'economy', 'description': 'Preferred cabin class: economy, premium_economy, business, or first.'}, 'destination': {'type': 'string', 'title': 'Destination', 'description': 'Destination airport or metro IATA code.'}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 8, 'maximum': 10, 'minimum': 1, 'description': 'Maximum number of flight results to return.'}, 'return_date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Return Date', 'default': None, 'description': 'Optional return date in YYYY-MM-DD format for round-trip flights.'}, 'departure_date': {'type': 'string', 'title': 'Departure Date', 'format': 'date', 'description': 'Departure date in YYYY-MM-DD format.'}, 'infants_on_lap': {'type': 'integer', 'title': 'Infants On Lap', 'default': 0, 'minimum': 0, 'description': "Number of infants traveling on an adult's lap."}, 'infants_in_seat': {'type': 'integer', 'title': 'Infants In Seat', 'default': 0, 'minimum': 0, 'description': 'Number of infants traveling with their own seat.'}, 'airlines_exclude': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Airlines Exclude', 'default': None, 'description': 'Airline codes to specifically exclude from search results.'}, 'airlines_include': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Airlines Include', 'default': None, 'description': 'Airline codes to specifically include in search results.'}, 'allow_self_transfer': {'type': 'boolean', 'title': 'Allow Self Transfer', 'default': True, 'description': 'Whether to include self-transfer flight options (true or false).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['origin', 'destination', 'departure_date', 'itineraries'], 'properties': {'origin': {'type': 'string', 'description': 'Origin airport details for flight search.'}, 'destination': {'type': 'string', 'description': 'Destination airport details for flight search.'}, 'itineraries': {'type': 'array', 'items': {'type': 'object', 'required': ['price', 'outbound', 'booking_url', 'booking_link'], 'properties': {'bags': {'type': 'object', 'properties': {'checked': {'type': ['integer', 'null'], 'description': 'Number of allowed checked bags.'}, 'carry_on': {'type': ['integer', 'null'], 'description': 'Number of allowed carry-on bags.'}}, 'description': 'Details on baggage allowance.'}, 'price': {'type': 'object', 'required': ['amount', 'currency', 'status'], 'properties': {'amount': {'type': 'number', 'description': 'Numerical price amount in given currency.'}, 'status': {'enum': ['verified', 'unverified'], 'type': 'string', 'description': 'Whether the price was confirmed or is an unverified search hint.'}, 'currency': {'type': 'string', 'description': 'Currency code of the price amount.'}}, 'description': 'Total flight price details.'}, 'inbound': {'type': 'object', 'required': ['segments'], 'properties': {'carrier': {'type': ['string', 'null'], 'description': 'Airline operating the flight segment.'}, 'segments': {'type': 'array', 'items': {'type': 'object', 'properties': {'flight_number': {'type': ['string', 'null'], 'description': 'Flight number assigned by airline.'}, 'arrival_airport': {'type': 'string', 'description': 'Airport code for arrival location.'}, 'duration_minutes': {'type': 'integer', 'description': 'Flight duration in minutes.'}, 'departure_airport': {'type': 'string', 'description': 'Airport code for departure location.'}, 'arrival_time_local': {'type': 'string', 'description': 'Local arrival date and time.'}, 'departure_time_local': {'type': 'string', 'description': 'Local departure date and time.'}, 'marketing_carrier_code': {'type': ['string', 'null'], 'description': 'Airline code marketing the flight segment.'}, 'operating_carrier_name': {'type': ['string', 'null'], 'description': 'Name of the airline operating the flight segment.'}}}, 'description': 'List of individual flight segments.'}, 'duration_minutes': {'type': ['integer', 'null'], 'description': 'Flight duration in minutes.'}}, 'description': 'Inbound flight itinerary details for round-trip flights.'}, 'ignav_id': {'type': ['string', 'null'], 'description': 'Unique Ignav identifier for the itinerary.'}, 'outbound': {'type': 'object', 'required': ['segments'], 'properties': {'carrier': {'type': ['string', 'null'], 'description': 'Airline operating the flight segment.'}, 'segments': {'type': 'array', 'items': {'type': 'object', 'properties': {'flight_number': {'type': ['string', 'null'], 'description': 'Flight number assigned by airline.'}, 'arrival_airport': {'type': 'string', 'description': 'Airport code for arrival location.'}, 'duration_minutes': {'type': 'integer', 'description': 'Flight duration in minutes.'}, 'departure_airport': {'type': 'string', 'description': 'Airport code for departure location.'}, 'arrival_time_local': {'type': 'string', 'description': 'Local arrival date and time.'}, 'departure_time_local': {'type': 'string', 'description': 'Local departure date and time.'}, 'marketing_carrier_code': {'type': ['string', 'null'], 'description': 'Airline code marketing the flight segment.'}, 'operating_carrier_name': {'type': ['string', 'null'], 'description': 'Name of the airline operating the flight segment.'}}}, 'description': 'List of individual flight segments.'}, 'duration_minutes': {'type': ['integer', 'null'], 'description': 'Flight duration in minutes.'}}, 'description': 'Outbound flight itinerary details.'}, 'booking_url': {'type': 'string', 'description': 'Direct URL to book the itinerary.'}, 'cabin_class': {'type': ['string', 'null'], 'description': 'Class of cabin booked.'}, 'booking_link': {'type': 'object', 'required': ['provider_name', 'url'], 'properties': {'url': {'type': 'string', 'description': 'Direct URL to book the itinerary.'}, 'provider_name': {'type': 'string', 'description': 'Name of booking provider.'}, 'provider_type': {'type': ['string', 'null'], 'description': 'Type of booking provider.'}}, 'description': 'Clickable booking link for the itinerary.'}, 'booking_provider_name': {'type': 'string', 'description': 'Name of booking provider.'}, 'booking_provider_type': {'type': ['string', 'null'], 'description': 'Type of booking provider.'}, 'requires_self_transfer': {'type': ['boolean', 'null'], 'description': 'Indicates if itinerary includes self-transfer.'}}}, 'description': 'List of flight itineraries.'}, 'return_date': {'type': ['string', 'null'], 'description': 'Scheduled return date for round-trip flights (YYYY-MM-DD).'}, 'departure_date': {'type': 'string', 'description': 'Scheduled departure date (YYYY-MM-DD).'}}, 'description': 'Flight itinerary details including prices, times, and stops.'}
已添加
search_flights
2026年9月17日 12:42
已添加
search_airports
2026年9月17日 12:42