
Is Airside Labs Aviation Tools MCP server safe?
Probably. Read the findings first.
Use with care. Some checks failed or could not be verified.
Public scan report
scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it
2 low
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 997ms20/20
- Tool poisoning22 tool descriptions checked13/15
- Auth qualityAPI key sent as a header8/15
- Maintenanceno repository listed3/15
- Maintainer identityverified namespace with website, no repo4/10
Findings (2)
- lowUnusually long tool description (over 2,000 characters)
poison.long-descriptiontool resolve_aircraft_type: …Which aircraft type does this designator or marketing name refer to? Accepts an ICAO type designator (A21N) or a marketing name people actually say ("A321neo", "Dash 8-400", "777-300ER", "Q400"). Returns the ICAO designator, manufacturer, model, engine count and type, aircraft class, and the ICAO wake turbulence category. A name that identifies a family rather than a variant -- "Dreamliner", "777X", "A330neo" -- returns `ambiguous` with the variants as alternates and a confidence in the 0.4-0.69 band. That is the correct answer to an imprecise question; do not collapse it to the first alternate. `wtc` (wake turbulence category) is stated for almost every type, from FAA Order JO 7360.1K, and is cited like any other field. Where it is null the document leaves it blank -- do NOT fill it in from your own knowledge if the caller needs it for separation or charging, say it is unavailable. IATA aircraft type codes are NOT held -- the three-character form used in schedules and booking systems, "77W" or "32N". IATA's list is licensed and is not reproduced here, so those return `unresolved` with a note saying so. If you are working from schedule data, convert to the ICAO designator before calling (B77W, A20N); if you cannot, report the mapping as unavailable rather than guessing it. `capacity`, where present, carries what a network or fleet planner needs from the TYPE: `seats_max_certified` (the type certificate's maximum), `seats_typical` (the band the manufacturer publishes, with the cabin configuration it assumes), `range_nm` (maximum range at typical payload, a band where variants share a designator) and `mtow_kg`. Every value was read from a type certificate data sheet or the manufacturer's own page and confirmed by a second check; each is cited. The exact seat count of any airframe is the operator's configuration and is NOT held -- do not present the typical band as a particular aircraft's layout. For US markets, frequency, seats flown and load factor by route and type ARE held -- use route_capacity and airport_fleet_mix (BTS T-100, about three months in arrears). Yield is not held anywhere: supply it to build a revenue model. `capacity` is null where no confirmed record exists yet, and a null field inside it means the value was researched but not confirmed, and the notes say so. Do NOT use this to determine what type operated a particular flight; use resolve_registration for a specific airframe. Reading `confidence`: 1.0 means an exact unique match on an unambiguous identifier for the as_of date. 0.7-0.99 means a unique match reached through normalisation, an alias or a historical record. 0.4-0.69 means the best of several plausible candidates and `alternates` is populated -- prefer asking the user over picking one. Below 0.4 is speculative: do not act on it. `status` is resolved, ambiguous or unresolved. An unresolved answer is a real result, not an error: it means this dataset cannot identify the thing, and inventing one would be worse. Every field in `best` has a citation in `provenance`. When the thing exists and this dataset could not identify it, report_unmet_need with gap_kind `unresolved` is how that gap gets prioritised -- report it, then tell the user you could not find it.… - lowNo source repository listed
maint.no-repo
Overall 64/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON