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_flightsB | 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_flightsB | 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_trackB | Get the position track (breadcrumb log) for a specific flight by fa_flight_id. |
| fa_get_flight_positionB | 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, else ~/Downloads/flightaware-mcp) 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_flightsA | Get a flight board for an airport: all flights, or just arrivals/departures/scheduled_arrivals/scheduled_departures. |
| fa_list_airportsB | 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_countsA | 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_operatorA | Get details for an operator (airline) by code (ICAO like UAL, or IATA like UA). |
| fa_get_operator_flightsC | 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_ownerB | Get the registered owner of an aircraft by tail number / registration (e.g. N12345). |
| fa_get_scheduled_flightsB | 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. Asks the user to confirm first: a confirmation prompt where the client supports one (unless the server sets MCP_CONFIRM_ELICITATION=off); otherwise the first call returns a preview of the request (method, path, body) and a confirmToken, makes NO network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_update_alertA | Update an existing flight alert (replaces its configuration). Asks the user to confirm first: a confirmation prompt where the client supports one (unless the server sets MCP_CONFIRM_ELICITATION=off); otherwise the first call returns a preview of the request (method, path, body) and a confirmToken, makes NO network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Requires a Standard or Premium AeroAPI tier (the free Personal tier returns 401). |
| fa_delete_alertA | Delete a flight alert by id. Asks the user to confirm first: a confirmation prompt where the client supports one (unless the server sets MCP_CONFIRM_ELICITATION=off); otherwise the first call returns a preview of the request (method, path, body) and a confirmToken, makes NO network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). 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. Asks the user to confirm first: a confirmation prompt where the client supports one (unless the server sets MCP_CONFIRM_ELICITATION=off); otherwise the first call returns a preview of the request (method, path, body) and a confirmToken, makes NO network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). 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+action (flight track vs position vs route vs map, airport vs operator boards, alert CRUD). The search family is the weak spot: fa_search_flights, fa_search_flights_advanced, fa_search_flight_positions, fa_count_flights, and fa_foresight_search all overlap in intent and differ mainly by query grammar, which descriptions do explain but an agent can still easily misselect.
Nearly all tools follow a consistent fa_verb_noun snake_case pattern (fa_get_flights, fa_list_airports, fa_create_alert, fa_delete_alert). Minor deviations exist: fa_healthcheck is noun-only and fa_foresight_search inverts the verb/noun order to noun_verb.
34 tools is well above the range where a surface stays navigable for an agent, and several families (five search variants, four airport sub-resources) inflate the count. The underlying AeroAPI domain is broad, so the heavy count is defensible, but it still exceeds the ~15-tool sweet spot for coherent selection.
Coverage is broad and lifecycle-complete for most sub-domains: flights (get/search/track/route/history), airports (details, boards, delays, weather, counts, nearby, popular routes), operators, and alerts with full create/update/delete/endpoint management plus a healthcheck. Only minor gaps remain, e.g. no airport lookup by name/city, and several resolve/history tools are gated behind paid tiers so free-tier agents hit dead ends.