Skip to main content

An MCP server using the AviationStack API to fetch real-time flight data including airline flights, airport schedules, future flights and aircraft types

Project description

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 FastMCP class from mcp.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.

  1. Using uvx without cloning the repository (recommended)
{
  "mcpServers": {
    "Aviationstack MCP": {
      "command": "uvx",
      "args": [
        "aviationstack-mcp"
      ],
      "env": {
        "AVIATION_STACK_API_KEY": "<your-api-key>"
      }
    }
  }
}
  1. 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>"
      }
    }
  }
}

License

This project is licensed under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aviationstack_mcp-1.5.1.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aviationstack_mcp-1.5.1-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file aviationstack_mcp-1.5.1.tar.gz.

File metadata

  • Download URL: aviationstack_mcp-1.5.1.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aviationstack_mcp-1.5.1.tar.gz
Algorithm Hash digest
SHA256 9635b70e75a87f622b49d4c9a27e7fbb69fa9e800e0303ee9648889b647ee004
MD5 c6c191eec75841d9fa9a0cfe8fcbab23
BLAKE2b-256 f19e745c663b11fd8caba1760da23706d898a81ceb3f4cc3f6799c8f6def8ad9

See more details on using hashes here.

File details

Details for the file aviationstack_mcp-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: aviationstack_mcp-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aviationstack_mcp-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7ec259e72b779b03b1b4a1b5764b20b8deadb95761dd0c5a19565736869e5287
MD5 6933a9997f2c08c14726ca60c30163aa
BLAKE2b-256 88c554df810146969ba38029c05609e989d0f11b37e0dc834a695d14a7f362e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page