Decode N-numbers to aircraft, engine, status, and owner; search the US civil aircraft registry by owner, type, or state; resolve active/deregistered/reserved status — offline via MCP. STDIO or Streamable HTTP.
Strong tool definitions with clear naming, comprehensive descriptions (avg 250+ chars), and well-structured input schemas. All 5 tools follow verb_noun pattern (faa_lookup_*, faa_get_*, faa_search_*). Descriptions are LLM-optimized, explaining WHAT, WHEN, and dependencies. Parameters have types and descriptions. Output schemas are documented in descriptions. Key strength: pagination support with totalCount/nextOffset pattern. Minor gaps: no explicit error handling guidance in descriptions, no per-tool destructive/idempotent hints visible in schema, and output field mappings could be more explicit.
Decode a 7-character FAA manufacturer/model/series code to aircraft specifications — manufacturer, model, aircraft category, aircraft type, engine type, number of engines, number of seats, weight class, cruise speed, and type-certificate data sheet/holder. Use faa_search_aircraft_types first to discover a code by manufacturer or model name.
Resolve whether a US civil aircraft N-number is active, deregistered, reserved, or unknown, including the available registration and airworthiness status. Use this rather than faa_lookup_registration when a number may be inactive. A number that was never issued returns recordType "unknown" — a valid, informative answer, not an error. Accepts "N12345" or "12345".
Decode one US civil aircraft N-number to its full registration record — aircraft make/model, engine, year manufactured, airworthiness, registration status, Mode S (ICAO 24-bit) code, and registered owner (when owner-PII redaction is off). Accepts "N12345" or "12345" (the leading N is optional). Returns ownerRedacted: true when owner details were withheld. A number that is known but inactive (deregistered or reserved) is not found here — use faa_get_registration_status for its current state.
Search FAA aircraft types by manufacturer/model name, aircraft type code, or category code to discover 7-character manufacturer/model/series codes and browse specifications. Use this before faa_get_aircraft_type to find a code by name. At least one filter is required. Every response reports totalCount (all matches, not just this page); when more remain, it returns nextOffset — pass it back as offset to page forward.
Output schemas not formally documented in JSON Schema format. Descriptions mention returned fields (e.g., 'ownerRedacted: true', 'totalCount', 'nextOffset') but no explicit output type definitions visible in tool registration.
No explicit error handling guidance in tool descriptions. Descriptions do not state what errors are possible, when to retry, or how to recover (e.g., 'If N-number is invalid, returns...' or 'Retryable on timeout').
Tool annotations (readOnlyHint, idempotentHint) are declared in FEATURES but not visible in tool definitions. All tools are READ_ONLY but no explicit annotation in schema.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Search active US civil aircraft registrations by owner name, make/model, state, aircraft type, or Mode S (hex) code. Returns decoded summaries with N-numbers to drill into via faa_lookup_registration. At least one filter is required. Owner-name search is unavailable when this deployment redacts owner PII — search by make/model, state, aircraft type, or Mode S code instead. Every response reports totalCount (all matches, not just this page); when more remain, it returns nextOffset — pass it back as offset to page forward.
Parameter 'limit' in search tools lacks explicit min/max constraints in descriptions. Descriptions state '1 - 200, default 25' but no enum or numeric range validation visible in schema.
No batch variants for tools. If an agent needs to look up 10 N-numbers, it must call faa_lookup_registration 10 times sequentially instead of one batch call.