Skip to content

cssnr/flightaware-mcp

Repository files navigation

GitHub Release Version PyPI Version Image Latest Image Size Deployment PyPi Workflow Build Workflow Deploy Workflow Release GitHub Last Commit GitHub Repo Size GitHub Top Language GitHub Contributors GitHub Issues GitHub Discussions GitHub Forks GitHub Repo Stars GitHub Org Stars Discord Ko-fi

FlightAware MCP

FlightAware MCP

MCP Server exposing the FlightAware AeroAPI via the Model Context Protocol.

You need a Free API Key to use this MCP.

Features

  • List Flights by ICAO or IATA Flight Number
  • Accurately Convert IATA to ICAO Flight Numbers
  • Response Caching with Configurable TTL

Setup

This can be run in Local CLI mode or Remote server mode.

Local

In CLI mode using uv.

View Config - Local uv
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "flightaware": {
      "type": "local",
      "command": ["uvx", "flightaware-mcp"],
      "environment": {
        "AEROAPI_KEY": "xxx"
      }
    }
  }
}

In CLI mode using Python pip.

pip install flightaware-mcp
View Config - Local Python
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "flightaware": {
      "type": "local",
      "command": ["flightaware-mcp"],
      "environment": {
        "AEROAPI_KEY": "xxx"
      }
    }
  }
}

Remote

With Docker run.

docker run --rm -p 80:8000 -e AEROAPI_KEY=${AEROAPI_KEY} ghcr.io/cssnr/flightaware-mcp:latest

With Docker Compose.

services:
  app:
    image: ghcr.io/cssnr/flightaware-mcp:latest
    ports:
      - '80:8000'
    environment:
      AEROAPI_KEY: ${AEROAPI_KEY}

With Python from source.

uv sync
export AEROAPI_KEY=${AEROAPI_KEY}
uv run uvicorn flightaware_mcp.server:app --app-dir src --host 0.0.0.0 --port 8000
View Config - Remote
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "flightaware": {
      "type": "remote",
      "url": "http://localhost/mcp"
    }
  }
}

Note: Set the url to the host you are running the server on.

Deploy to Render

For a Docker Swarm + Traefik example see the docker-compose-swarm.yaml.

For a Portainer Deploy workflow see the .github/workflows/deploy.yaml.

Configure

Variable Description
AEROAPI_KEY FlightAware API Key
HISHEL_CACHE_PATH Cache DB Path
HISHEL_CACHE_TTL Cache TTL

You only need AEROAPI_KEY the rest are for advanced configuration.

Development

Sync project.

uv sync

Run local server.

run cli

Run remote server (live reload).

run dev

Point your client to: http://localhost:8000/mcp

Run remote Docker Compose (live reload).

run compose

Point your client to: http://localhost/mcp

You can set the PORT environment variable.

Building

Docker Image

To build and test the docker image run.

bash build.sh
docker compose up

Point your client to: http://localhost/mcp

Python Package

This builds the bdist and wheel, if you have a use for it...

run build

Support

If you run into any issues or need help getting started, please do one of the following:

Features Issues Discussions Discord

Contributing

Please consider making a donation to support the development of this project and additional open source projects.

Ko-fi

For a full list of current projects visit: https://cssnr.github.io/

Star History Chart

About

MCP Server exposing the FlightAware AeroAPI via the Model Context Protocol.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors