{
  "markdown": "# flightaware-mcp\n\n[![npm](https://img.shields.io/npm/v/@chrischall/flightaware-mcp)](https://www.npmjs.com/package/@chrischall/flightaware-mcp)\n\nMCP server for **FlightAware AeroAPI** (v4) — live flight tracking and aviation data for Claude. Track flights, read airport boards, look up operators and aircraft, fetch scheduled flights, and manage flight alerts, all over stdio.\n\n> Developed and maintained by AI (Claude Code). Use at your own discretion.\n\n## Quick start\n\n```json\n{\n  \"mcpServers\": {\n    \"flightaware\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chrischall/flightaware-mcp\"],\n      \"env\": { \"AEROAPI_API_KEY\": \"your-aeroapi-key-here\" }\n    }\n  }\n}\n```\n\nGet a key at [flightaware.com/aeroapi/portal](https://www.flightaware.com/aeroapi/portal/). The free **Personal** tier (500 calls/month) is enough to start; AeroAPI bills per query.\n\n## Tools\n\n| Area | Tools |\n| --- | --- |\n| Flights | `fa_get_flights`, `fa_search_flights`, `fa_search_flights_advanced`, `fa_search_flight_positions`, `fa_count_flights`, `fa_get_flight_track`, `fa_get_flight_position`, `fa_get_flight_route`, `fa_get_flight_map`, `fa_get_flight_history`, `fa_resolve_flight` |\n| Airports | `fa_get_airport`, `fa_get_airport_flights`, `fa_get_airport_flight_counts`, `fa_get_airport_routes`, `fa_list_airports`, `fa_get_nearby_airports`, `fa_get_airport_delays`, `fa_get_airport_weather`, `fa_resolve_airport` |\n| Operators / aircraft | `fa_get_operator`, `fa_get_operator_flights`, `fa_list_operators`, `fa_get_aircraft_owner` |\n| Schedules / predictive | `fa_get_scheduled_flights`, `fa_foresight_search` (premium tier) |\n| Alerts | `fa_list_alerts`, `fa_get_alert`, `fa_create_alert`, `fa_update_alert`, `fa_delete_alert`, `fa_get_alerts_endpoint`, `fa_set_alerts_endpoint` |\n| Health | `fa_healthcheck` — is this connector working? Reports whether AEROAPI_API_KEY resolved, whether AeroAPI accepted it, and what to fix. Uses a static-cached lookup, so repeat checks are not re-billed. |\n\nAlert mutations are **confirm-gated**: without `confirm: true` they return a dry-run preview and make no network call.\n\n## Configuration\n\n| Var | Required | Purpose |\n| --- | --- | --- |\n| `AEROAPI_API_KEY` | yes | Your AeroAPI key (sent as the `x-apikey` header). |\n| `AEROAPI_OUTPUT_DIR` | no | Default directory for flight-map PNGs (default: cwd). |\n| `AEROAPI_CACHE_TTL` | no | Seconds to cache identical **live-data** GET responses (default: 15; `0` disables). Cuts AeroAPI per-query billing. |\n| `AEROAPI_STATIC_CACHE_TTL` | no | Longer TTL for **reference data** — airport/operator info, routes, ownership, canonical lookups (default: 3600; `0` disables). |\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\n```\n\nEvery request rides your own AeroAPI key and counts against your subscription quota. See `docs/FLIGHTAWARE-API.md` for the pinned endpoint surface.\n\n## License\n\nMIT\n",
  "bytes": 2879,
  "sha": "18f8ddacd08eb25113837f59d9579f00b6e89ce90e1757806b38877d4ada0d8c",
  "repo_slug": "chrischall/flightaware-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_chrischall_flightaware_mcp_0bd50ec3/readme"
}