Aviationstack MCP Server for Flight, Aircraft, Airport Data
Access AviationStack data with an MCP server to retrieve real-time and future flights, aircraft, airports, airlines and routes for easy app integration.
npx -y @Pradumnasaraf/aviationstack-mcpOverview
The Aviationstack MCP Server is a small Model Context Protocol (MCP) server that wraps the AviationStack REST API and exposes a curated set of MCP tools for flight, aircraft, airport, airline and route data. It standardizes common queries (real-time flights, future schedules, airport arrival/departure boards, and reference lists) into callable MCP tools so you can integrate aviation data into chatbots, assistants, dashboards, or automation workflows without wiring raw HTTP requests.
This server is ideal when you want quick access to AviationStack data from any MCP-compatible client. Instead of parsing endpoints and handling pagination or API-key plumbing yourself, you register the server once and call high-level tools that return structured results suitable for further processing in an app or agent.
Repository: https://github.com/Pradumnasaraf/aviationstack-mcp
Features
- Exposes MCP tools for common AviationStack queries
- Real-time and historical flights, plus future schedules
- Arrival/departure schedules filtered by airport and airline
- Randomized reference data helpers (aircraft types, airplanes, countries, cities)
- Reference listers for airports, airlines, routes and taxes with pagination and search
- Implemented in Python using FastMCP-style MCP tool functions for easy extension
Installation / Configuration
Prerequisites
- Python 3.13+
- An AviationStack API key (free tier available): https://aviationstack.com/signup/free
- A runtime that can run MCP servers (uv / uvx is recommended)
- Run without cloning (recommended) Set your API key and start the packaged server via uvx:
- Run from a cloned repository
# run the server with uvx pointing to the local directory
- (Alternative) Run as ASGI with uvicorn The MCP server exposes an ASGI-compatible app (via FastMCP). You can run it directly with uvicorn if you prefer:
MCP client registration example (add to your client config)
Available Tools
All endpoints are exposed as MCP tools (Python functions decorated with @mcp.tool()). Below is a condensed reference.
| Tool | Purpose | Key Parameters |
|---|---|---|
| flights_with_airline | Random sample of flights for an airline | airline_name (str), number_of_flights (int) |
| historical_flights_by_date | Historical flights for a date | flight_date (YYYY-MM-DD), number_of_flights, optional airline_iata/dep_iata/arr_iata |
| flight_arrival_departure_schedule | Arrival/departure board for an airport | airport_iata_code, schedule_type (“arrival” |
| future_flights_arrival_departure_schedule | Future scheduled flights for airport+airline+date | airport_iata_code, schedule_type, airline_iata, date (YYYY-MM-DD), number_of_flights |
| random_aircraft_type | Random aircraft types | number_of_aircraft |
| random_airplanes_detailed_info | Detailed info on random airplanes | number_of_airplanes |
| random_countries_detailed_info | Detailed info on countries | number_of_countries |
| random_cities_detailed_info | Detailed city info | number_of_cities |
| list_airports | Paginated listing of airports | limit, offset, search |
| list_airlines | Paginated listing of airlines | limit, offset, search |
| list_routes | Paginated routes listing | limit, offset, airline_iata, dep_iata, arr_iata |
| list_taxes | Paginated aviation taxes | limit, offset, search |
Each tool returns structured JSON-like dictionaries ready for downstream use inside your MCP-driven workflows.
Use Cases
- Embed arrival board data into a travel assistant
- Register the server in your MCP client.
- Call flight_arrival_departure_schedule(“JFK”, “arrival”, “Delta Air Lines”, 10)
- Present the returned list of upcoming arrivals in the assistant response or UI.
- Build an operations dashboard showing tomorrow’s departures for an airline
- Use future_flights_arrival_departure_schedule(“LAX”, “departure”, “DL”, “2026-04-11”, 50)
- Aggregate schedules and show counts, delays (if provided), or gate assignments.
- Generate synthetic test data for UI/QA
- Use random_aircraft_type(5) and random_airplanes_detailed_info(10) to seed front-end prototypes with realistic aircraft metadata.
- Research & analytics (historical slices)
- Use historical_flights_by_date(“2024-12-01”, 200, airline_iata=“AA