An MCP server using the AviationStack API to fetch real-time flight data including airline flights, airport schedules, future flights and aircraft types ✈️.
SaferSkills independently audited Aviationstack Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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:
https://github.com/user-attachments/assets/9325fcce-8ecc-4b01-8923-4ccb2f6968f4
All endpoints are implemented as MCP tools and are ready to be used in an MCP-compatible environment.
| 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")<br> - `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<br> - `number_of_flights`: Number of flights to return<br> - `airline_iata`: Optional airline IATA filter<br> - `dep_iata`: Optional departure airport IATA filter<br> - `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")<br> - `schedule_type`: "arrival" or "departure"<br> - `airline_name`: Name of the airline<br> - `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<br> - `schedule_type`: "arrival" or "departure"<br> - `airline_iata`: IATA code of the airline (e.g., "DL" for Delta)<br> - `date`: Date in YYYY-MM-DD format<br> - `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<br> - `offset`: Pagination offset<br> - `search`: Optional search query |
list_airlines(limit: int = 10, offset: int = 0, search: str = "") | List airlines. | - `limit`: Number of results to return<br> - `offset`: Pagination offset<br> - `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<br> - `offset`: Pagination offset<br> - `airline_iata`: Optional airline IATA filter<br> - `dep_iata`: Optional departure airport IATA filter<br> - `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<br> - `offset`: Pagination offset<br> - `search`: Optional search query |
server.py.@mcp.tool().FastMCP class from mcp.server.fastmcp.To add this server to your favorite MCP client, you can add the following to your MCP client configuration file.
uvx without cloning the repository (recommended){
"mcpServers": {
"Aviationstack MCP": {
"command": "uvx",
"args": [
"aviationstack-mcp"
],
"env": {
"AVIATION_STACK_API_KEY": "<your-api-key>"
}
}
}
}{
"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>"
}
}
}
}This project is licensed under the MIT License. See LICENSE for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.