Access Real-Time Aviation Data
An MCP server for AviationStack - live and historical flights, aircraft details, and airport/airline reference data.
Why it matters
Leverage the AviationStack API to retrieve real-time flight data, schedules, and detailed aircraft information for your data analysis needs.
Outcomes
What it gets done
Retrieve real-time and future flight schedules by airline and airport.
Access detailed information on aircraft types and specific airplanes.
Obtain comprehensive data on countries and cities relevant to aviation.
Integrate flight data into your applications via a structured API.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-aviationstack | bash Capabilities
Tools your agent gets
Get a random sample of flights for a specific airline
Get arrival or departure schedule for a specified airport and airline
Get future flight schedule for a specified airport, airline, and date
Get random aircraft types
Get detailed information about random airplanes
Get detailed information about random countries
Get detailed information about random cities
Overview
Aviationstack MCP Server
This MCP server exposes 12 tools for the AviationStack API: flight schedules by airline/airport/date, random aircraft and location lookups, and searchable airport/airline/route/tax listings. Use it when an AI assistant needs flight schedules or aviation reference data. Requires an AviationStack API key; historical flight lookups need a Basic plan or higher.
What it does
An MCP server exposing the AviationStack API as 12 tools covering flight, aircraft, and reference data. Flight tools: flights_with_airline returns a random sample of flights for a named airline; historical_flights_by_date fetches historical flights for a given date with optional airline/departure/arrival IATA filters (requires a Basic plan or higher); flight_arrival_departure_schedule returns arrival or departure schedules for a specific airport and airline; and future_flights_arrival_departure_schedule returns future scheduled flights for an airport, airline, and date. Random-sample lookup tools: random_aircraft_type, random_airplanes_detailed_info, random_countries_detailed_info, and random_cities_detailed_info each return a requested count of random records. Reference-data listing tools: list_airports, list_airlines, list_routes, and list_taxes all support limit/offset pagination, and list_airports/list_airlines/list_taxes additionally support a free-text search filter while list_routes filters by airline/departure/arrival IATA codes rather than free text.
When to use - and when NOT to
Use it when an AI assistant needs live or historical flight schedules, aircraft and airplane details, or airport/airline/route/tax reference data - for example, checking a specific airline's current flights, an airport's arrival board, or looking up airport codes by search term. It requires a free or paid AviationStack API key (a free tier is available at signup) and Python 3.13 or newer with the uv package manager. Historical flight lookups specifically require a Basic AviationStack plan or higher - the free tier won't support that tool.
Capabilities
12 tools spanning live/historical/future flight schedules by airline, airport, or date; random-sample lookups for aircraft types, airplanes, countries, and cities; and paginated, searchable listings of airports, airlines, routes, and taxes - all implemented as Python functions decorated with @mcp.tool() on top of the FastMCP class from mcp.server.fastmcp.
How to install
{
"mcpServers": {
"Aviationstack MCP": {
"command": "uvx",
"args": ["aviationstack-mcp"],
"env": { "AVIATION_STACK_API_KEY": "<your-api-key>" }
}
}
}
That's the recommended zero-clone install via uvx. Alternatively, clone the repository and run it locally by pointing uv's --directory at the cloned src/aviationstack_mcp path and running -m aviationstack_mcp mcp run. Either way, an AVIATION_STACK_API_KEY environment variable is required.
Who it's for
Developers building travel, transportation, or aviation-data applications who want live/historical flight schedules and aviation reference data available through an MCP-compatible AI assistant instead of calling the AviationStack REST API directly - listed in the official modelcontextprotocol/servers community directory as well as Smithery and Glama. Also listed on mcpservers.org and in punkpeye/awesome-mcp-servers under travel and transportation. Distributed under the MIT License, with the main server logic living in server.py.
Source README
Aviationstack MCP Server
This project is an MCP (Model Context Protocol) server that provides a set of tools to interact with the AviationStack API. It exposes endpoints for retrieving real-time and future flight data, aircraft and airplane details, and core reference data (airports, airlines, routes, taxes), making it easy to integrate aviation data into your applications.
You can also find the Aviationstack MCP server in these well-known MCP server repositories for easy access:
Demo
https://github.com/user-attachments/assets/9325fcce-8ecc-4b01-8923-4ccb2f6968f4
Features
- Get flights for a specific airline
- Fetch historical flights by date
- Retrieve arrival and departure schedules for airports
- Fetch future flight schedules
- Get random aircraft types
- Get detailed info on random airplanes
- Get detailed info on random countries
- Get detailed info on random cities
- List airports, airlines, routes, and taxes
All endpoints are implemented as MCP tools and are ready to be used in an MCP-compatible environment.
Prerequisites
- Aviationstack API Key (You can get a FREE API Key from Aviationstack)
- Python 3.13 or newer
- uv package manager installed
Available Tools
| Tool | Description | Parameters |
|---|---|---|
flights_with_airline(airline_name: str, number_of_flights: int) |
Get a random sample of flights for a specific airline. | - airline_name: Name of the airline (e.g., "Delta Air Lines")- number_of_flights: Number of flights to return |
historical_flights_by_date(flight_date: str, number_of_flights: int, airline_iata: str = "", dep_iata: str = "", arr_iata: str = "") |
Get historical flights for a date (Basic plan+). | - flight_date: Date in YYYY-MM-DD format- number_of_flights: Number of flights to return- airline_iata: Optional airline IATA filter- dep_iata: Optional departure airport IATA filter- arr_iata: Optional arrival airport IATA filter |
flight_arrival_departure_schedule(airport_iata_code: str, schedule_type: str, airline_name: str, number_of_flights: int) |
Get arrival or departure schedules for a given airport and airline. | - airport_iata_code: IATA code of the airport (e.g., "JFK")- schedule_type: "arrival" or "departure"- airline_name: Name of the airline- number_of_flights: Number of flights to return |
future_flights_arrival_departure_schedule(airport_iata_code: str, schedule_type: str, airline_iata: str, date: str, number_of_flights: int) |
Get future scheduled flights for a given airport, airline, and date. | - airport_iata_code : IATA code of the airport- schedule_type: "arrival" or "departure"- airline_iata: IATA code of the airline (e.g., "DL" for Delta)- date: Date in YYYY-MM-DD format- number_of_flights: Number of flights to return |
random_aircraft_type(number_of_aircraft: int) |
Get random aircraft types. | - number_of_aircraft: Number of aircraft types to return |
random_airplanes_detailed_info(number_of_airplanes: int) |
Get detailed info on random airplanes. | - number_of_airplanes: Number of airplanes to return |
random_countries_detailed_info(number_of_countries: int) |
Get detailed info on random countries. | - number_of_countries: Number of countries to return |
random_cities_detailed_info(number_of_cities: int) |
Get detailed info on random cities. | - number_of_cities: Number of cities to return |
list_airports(limit: int = 10, offset: int = 0, search: str = "") |
List airports. | - limit: Number of results to return- offset: Pagination offset- search: Optional search query |
list_airlines(limit: int = 10, offset: int = 0, search: str = "") |
List airlines. | - limit: Number of results to return- offset: Pagination offset- search: Optional search query |
list_routes(limit: int = 10, offset: int = 0, airline_iata: str = "", dep_iata: str = "", arr_iata: str = "") |
List routes. | - limit: Number of results to return- offset: Pagination offset- airline_iata: Optional airline IATA filter- dep_iata: Optional departure airport IATA filter- arr_iata: Optional arrival airport IATA filter |
list_taxes(limit: int = 10, offset: int = 0, search: str = "") |
List aviation taxes. | - limit: Number of results to return- offset: Pagination offset- search: Optional search query |
Development
- The main server logic is in
server.py. - All MCP tools are defined as Python functions decorated with
@mcp.tool(). - The server uses the
FastMCPclass frommcp.server.fastmcp.
MCP Server configuration
To add this server to your favorite MCP client, you can add the following to your MCP client configuration file.
- Using
uvxwithout cloning the repository (recommended)
{
"mcpServers": {
"Aviationstack MCP": {
"command": "uvx",
"args": [
"aviationstack-mcp"
],
"env": {
"AVIATION_STACK_API_KEY": "<your-api-key>"
}
}
}
}
- By cloning the repository and running the server locally
{
"mcpServers": {
"Aviationstack MCP": {
"command": "uv",
"args": [
"--directory",
"/path/to/aviationstack-mcp/src/aviationstack_mcp",
"run",
"-m",
"aviationstack_mcp",
"mcp",
"run"
],
"env": {
"AVIATION_STACK_API_KEY": "<your-api-key>"
}
}
}
}
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.