flightaware-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AEROAPI_API_KEY | Yes | Your AeroAPI key (sent as the x-apikey header). | |
| AEROAPI_OUTPUT_DIR | No | Default directory for flight-map PNGs (default: cwd). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fa_get_flightsA | Get flights for an ident — a flight designator (e.g. UAL123, AAL100), aircraft registration (e.g. N12345), or fa_flight_id. Returns recent, current, and scheduled flights for that ident. |
| fa_search_flightsA | Search airborne flights using AeroAPI's simplified query syntax — a single string of "-key value" pairs. Keys: -prefix -type -idents -identOrReg -airline -destination -origin -originOrDestination -aboveAltitude -belowAltitude -aboveGroundspeed -belowGroundspeed -latlong "MINLAT MINLON MAXLAT MAXLON" -filter {ga|airline}. Example: -airline UAL -belowAltitude 30000 |
| fa_search_flights_advancedA | Search flights using AeroAPI's full structured query language (more expressive than fa_search_flights). The |
| fa_get_flight_trackA | Get the position track (breadcrumb log) for a specific flight by fa_flight_id. |
| fa_get_flight_positionA | Get the most recent reported position for an in-air flight by fa_flight_id. |
| fa_get_flight_routeB | Get the decoded route (fixes/waypoints) for a specific flight by fa_flight_id. |
| fa_get_flight_mapA | Get a rendered map image (PNG) of a flight by fa_flight_id. Writes the PNG to disk (default: $AEROAPI_OUTPUT_DIR or cwd) and returns the path, or returns it inline as base64 when inline:true. |
| fa_get_flight_historyA | Get historical flights for an ident (designator, registration, or fa_flight_id) beyond the recent window covered by fa_get_flights. NOTE: historical data requires a Standard or Premium AeroAPI tier — the free Personal tier returns 401. |
| fa_search_flight_positionsA | Search live flight POSITIONS using the structured "{operator key value}" query language (same grammar as fa_search_flights_advanced — NOT the simplified "-key value" syntax). Returns position points rather than flight summaries. Example: {match ident UAL*} {> alt 300}. |
| fa_count_flightsA | Count flights matching a query without returning the flights themselves. Returns { count }. Uses the SIMPLIFIED "-key value" syntax (same as fa_search_flights, NOT the structured grammar of fa_search_flights_advanced). Example: -airline UAL -belowAltitude 30000. |
| fa_resolve_flightA | Resolve a flight ident (designator/registration) to its canonical form and any alternate idents. NOTE: requires a Standard or Premium AeroAPI tier — the free Personal tier returns 401. |
| fa_get_airportA | Get details for an airport by code (ICAO like KJFK, IATA like JFK, or LID). |
| fa_get_airport_flightsB | Get a flight board for an airport: all flights, or just arrivals/departures/scheduled_arrivals/scheduled_departures. |
| fa_list_airportsA | List airports known to AeroAPI (paged). Use the cursor to page through. |
| fa_get_nearby_airportsB | Find airports near a latitude/longitude within a radius (statute miles). |
| fa_get_airport_delaysA | Get current airport delays — all delayed airports, or just one when |
| fa_get_airport_weatherA | Get weather for an airport: current METAR observations, or the TAF forecast. |
| fa_get_airport_flight_countsB | Get current flight counts at an airport: { departed, enroute, scheduled_arrivals, scheduled_departures }. |
| fa_get_airport_routesA | Get the most popular routes (with aircraft types, counts, and filed altitudes) flown between an origin and destination airport. |
| fa_resolve_airportA | Resolve an airport code to its canonical AeroAPI identifier (and equivalents). NOTE: requires a Standard or Premium AeroAPI tier — the free Personal tier returns 401. |
| fa_get_operatorB | Get details for an operator (airline) by code (ICAO like UAL, or IATA like UA). |
| fa_get_operator_flightsB | Get a flight board for an operator (airline): all flights, or arrivals/departures/enroute/scheduled. |
| fa_list_operatorsB | List operators (airlines) known to AeroAPI (paged). Use the cursor to page through. |
| fa_healthcheckA | Resolves the credential the way real tools do, then makes one authenticated request to aeroapi.flightaware.com. Reports which source supplied the credential, whether aeroapi.flightaware.com accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a aeroapi.flightaware.com-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke. |
| fa_get_aircraft_ownerA | Get the registered owner of an aircraft by tail number / registration (e.g. N12345). |
| fa_get_scheduled_flightsA | Get airline-scheduled flights between two dates (YYYY-MM-DD), optionally filtered by origin, destination, airline, or flight number. |
| fa_foresight_searchA | Predictive flight search via AeroAPI Foresight (Boolean query language, like fa_search_flights_advanced, but predicted data). NOTE: Foresight is a premium tier — expect a 402/403 unless your subscription includes it. |
| fa_list_alertsA | List the flight alerts configured on your AeroAPI account. Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_get_alertA | Get a single configured flight alert by its id. Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_create_alertA | Create a flight alert on your AeroAPI account. Without confirm:true this returns a dry-run preview of the request and makes NO network call; with confirm:true it creates the alert. Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_update_alertA | Update an existing flight alert (replaces its configuration). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it applies the update. Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_delete_alertA | Delete a flight alert by id. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it deletes the alert. Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_get_alerts_endpointA | Get the current delivery (webhook) endpoint configured for your AeroAPI alerts. Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_set_alerts_endpointA | Set the delivery (webhook) endpoint AeroAPI POSTs alert notifications to. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it applies the change. Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Most tools target a distinct resource and action (flights, airports, operators, alerts), but the flight-search family (fa_search_flights, fa_search_flights_advanced, fa_search_flight_positions) and flight-list family (fa_get_flights, fa_get_flight_history, fa_get_scheduled_flights) overlap enough that an agent must read descriptions carefully to pick the right one.
The fa_ prefix and mostly get/search/list/count verb-noun pattern is consistent and predictable. Minor deviations like fa_healthcheck, fa_foresight_search, and fa_search_flights_advanced break the pattern slightly, but the overall naming is recognizable and organized by resource.
34 tools is a large surface that exceeds the 25+ threshold for 'too many.' The FlightAware domain is broad, but several search variants and alert operations could be consolidated, making the server feel heavy and harder to navigate rather than carefully curated.
The tool set provides comprehensive coverage of the AeroAPI domain: flight current/history/track/position/route/map/scheduled, airport details/flights/delays/weather/routes, operators, aircraft owners, and full alert CRUD plus endpoint management. There are no obvious dead ends in the covered surface.