MCP Server

faa-aircraft-registry-mcp-server

io.github.cyanheads/faa-aircraft-registry-mcp-server
Science & Engineering Public & reachable MCP 2025-11-25

What this MCP does

Searches and decodes US civil aircraft registrations and aircraft type specifications from the FAA registry.

faa_get_aircraft_type
faa-aircraft-registry-mcp-server: get aircraft type
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.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['code'], 'properties': {'code': {'type': 'string', 'minLength': 1, 'description': 'Manufacturer/model/series code (e.g. "2072714") â\x80\x94 6â\x80\x937 uppercase alphanumeric characters, usually 7. Discover codes via faa_search_aircraft_types.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['code']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'code': {'type': 'string', 'description': 'The 7-char manufacturer/model/series code.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found', 'invalid_code'], 'description': 'Machine-readable failure mode. Declared by this tool: `not_found`: The code is well-formed but does not identify a known aircraft type. `invalid_code`: The input is not a structurally valid code (expected 6â\x80\x937 uppercase alphanumeric characters). Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'model': {'type': 'string', 'description': 'Aircraft model name.'}, 'category': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Aircraft category (Land, Sea, Amphibian) as code + label.', 'additionalProperties': False}, 'engineType': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Engine type as code + label.', 'additionalProperties': False}, 'weightClass': {'type': 'string', 'description': 'Weight class as the literal FAA string (e.g. "CLASS 1").'}, 'aircraftType': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Aircraft type as code + label.', 'additionalProperties': False}, 'manufacturer': {'type': 'string', 'description': 'Aircraft manufacturer name.'}, 'numberOfSeats': {'type': 'number', 'description': 'Number of seats; may be blank on the reference record.'}, 'cruiseSpeedMph': {'type': 'number', 'description': 'Cruise speed in mph; often blank (permissible field).'}, 'numberOfEngines': {'type': 'number', 'description': 'Number of engines; may be blank on the reference record.'}, 'builderCertification': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Builder certification (Type Certificated, Not Type Certificated, Light Sport) as code + label.', 'additionalProperties': False}, 'typeCertificateDataSheet': {'type': 'string', 'description': 'Type-certificate data sheet identifier.'}, 'typeCertificateDataHolder': {'type': 'string', 'description': 'Type-certificate data holder.'}}, 'additionalProperties': False}
faa_get_registration_status
faa-aircraft-registry-mcp-server: get registration status
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".
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['nNumber'], 'properties': {'nNumber': {'type': 'string', 'minLength': 1, 'description': 'US registration N-number to resolve. Accepts "N12345" or "12345" (leading N optional). Shape: 1â\x80\x935 characters â\x80\x94 a leading digit 1â\x80\x939, then digits, optionally ending in 1â\x80\x932 letters (I and O are unused).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['recordType', 'nNumber', 'nNumberDisplay']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['invalid_n_number'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_n_number`: The input is not a structurally valid N-number (after the optional leading "N": 1â\x80\x935 characters, a leading digit 1â\x80\x939, then digits, optionally 1â\x80\x932 trailing letters; I and O are unused). Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'status': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Registration/cancellation status as code + label (active and deregistered records).', 'additionalProperties': False}, 'nNumber': {'type': 'string', 'description': 'Normalized N-number without the leading "N".'}, 'purgeDate': {'type': 'string', 'description': 'Scheduled purge date, YYYY-MM-DD (reserved records).'}, 'cancelDate': {'type': 'string', 'description': 'Cancellation date, YYYY-MM-DD (deregistered records).'}, 'recordType': {'enum': ['active', 'deregistered', 'reserved', 'unknown'], 'type': 'string', 'description': 'Resolved registration state: active, deregistered, reserved, or unknown.'}, 'reserveDate': {'type': 'string', 'description': 'Date the number was reserved, YYYY-MM-DD (reserved records).'}, 'modeSCodeHex': {'type': 'string', 'description': 'Mode S code in hex / ICAO 24-bit address (deregistered records).'}, 'serialNumber': {'type': 'string', 'description': 'Manufacturer serial number (deregistered records).'}, 'certIssueDate': {'type': 'string', 'description': 'Certificate issue date, YYYY-MM-DD (active records).'}, 'expirationDate': {'type': 'string', 'description': 'Registration expiration date, YYYY-MM-DD (active records).'}, 'nNumberDisplay': {'type': 'string', 'description': 'N-number with the leading "N" for display.'}, 'typeReservation': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Type of reservation as code + label (reserved records).', 'additionalProperties': False}, 'nNumberForChange': {'type': 'string', 'description': 'The N-number this reservation changes to/from (reserved records).'}, 'airworthinessDate': {'type': 'string', 'description': 'Airworthiness certificate date, YYYY-MM-DD (active records).'}, 'airworthinessClass': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Airworthiness classification as code + label (active records).', 'additionalProperties': False}, 'expirationNoticeDate': {'type': 'string', 'description': 'Date an expiration notice was sent, YYYY-MM-DD (reserved records).'}, 'manufacturerModelCode': {'type': 'string', 'description': '7-char manufacturer/model/series code (deregistered records).'}}, 'additionalProperties': False}
faa_lookup_registration
faa-aircraft-registry-mcp-server: lookup registration
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.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['nNumber'], 'properties': {'nNumber': {'type': 'string', 'minLength': 1, 'description': 'US registration N-number to decode. Accepts "N12345" or "12345" (leading N optional). Shape: 1â\x80\x935 characters â\x80\x94 a leading digit 1â\x80\x939, then digits, optionally ending in 1â\x80\x932 letters (I and O are unused).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['nNumber', 'nNumberDisplay', 'fractionalOwner', 'ownerRedacted']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'make': {'type': 'string', 'description': 'Aircraft manufacturer name.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found', 'invalid_n_number'], 'description': 'Machine-readable failure mode. Declared by this tool: `not_found`: The N-number is well-formed but has no active registration. `invalid_n_number`: The input is not a structurally valid N-number (after the optional leading "N": 1â\x80\x935 characters, a leading digit 1â\x80\x939, then digits, optionally 1â\x80\x932 trailing letters; I and O are unused). Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'model': {'type': 'string', 'description': 'Aircraft model name.'}, 'owner': {'type': 'object', 'properties': {'zip': {'type': 'string', 'description': 'Postal/ZIP code.'}, 'city': {'type': 'string', 'description': 'City.'}, 'name': {'type': 'string', 'description': 'Registrant name.'}, 'state': {'type': 'string', 'description': 'Two-letter state/territory abbreviation.'}, 'county': {'type': 'string', 'description': 'County code.'}, 'street': {'type': 'string', 'description': 'Street address line 1.'}, 'country': {'type': 'string', 'description': 'Country code.'}, 'street2': {'type': 'string', 'description': 'Street address line 2.'}, 'otherNames': {'type': 'array', 'items': {'type': 'string', 'description': 'A co-owner name.'}, 'description': 'Co-owner names (1â\x80\x935 on record); only present when PII redaction is off.'}, 'typeRegistrant': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Registrant type (Individual, LLC, Corporation, Government, â\x80¦) as code + label.', 'additionalProperties': False}}, 'description': 'Registrant name/address; present only when redaction is off.', 'additionalProperties': False}, 'region': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': "Registrant's FAA region as code + label.", 'additionalProperties': False}, 'status': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Registration status (e.g. Valid registration) as code + label.', 'additionalProperties': False}, 'nNumber': {'type': 'string', 'description': 'Normalized N-number without the leading "N" (the registry storage form).'}, 'kitModel': {'type': 'string', 'description': 'Kit model (amateur-built aircraft); often blank.'}, 'uniqueId': {'type': 'string', 'description': 'FAA unique aircraft identifier.'}, 'engineMake': {'type': 'string', 'description': 'Engine manufacturer name.'}, 'engineType': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Engine type (e.g. Reciprocating, Turbo-fan) as code + label.', 'additionalProperties': False}, 'engineModel': {'type': 'string', 'description': 'Engine model name.'}, 'aircraftType': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Aircraft type (e.g. Fixed-wing single-engine) as code + label.', 'additionalProperties': False}, 'modeSCodeHex': {'type': 'string', 'description': 'Mode S code in hex â\x80\x94 the ICAO 24-bit address used to key live flight-tracking data.'}, 'serialNumber': {'type': 'string', 'description': 'Manufacturer serial number.'}, 'certIssueDate': {'type': 'string', 'description': 'Certificate issue date (YYYY-MM-DD).'}, 'ownerRedacted': {'type': 'boolean', 'description': 'True when owner name/address were withheld from this payload by the redaction gate.'}, 'expirationDate': {'type': 'string', 'description': 'Registration expiration date (YYYY-MM-DD).'}, 'lastActionDate': {'type': 'string', 'description': 'Date of the last registration action (YYYY-MM-DD).'}, 'modeSCodeOctal': {'type': 'string', 'description': 'Mode S transponder code in octal.'}, 'nNumberDisplay': {'type': 'string', 'description': 'N-number in conventional display form, with the leading "N".'}, 'fractionalOwner': {'type': 'boolean', 'description': 'True when the aircraft is under fractional ownership.'}, 'kitManufacturer': {'type': 'string', 'description': 'Kit manufacturer (amateur-built aircraft); often blank.'}, 'yearManufactured': {'type': 'number', 'description': 'Year the aircraft was manufactured; often blank (permissible field).'}, 'airworthinessDate': {'type': 'string', 'description': 'Airworthiness certificate date (YYYY-MM-DD).'}, 'airworthinessClass': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Airworthiness classification (Standard, Experimental, â\x80¦) from CERTIFICATION char 1, as code + label.', 'additionalProperties': False}, 'approvedOperationsRaw': {'type': 'string', 'description': 'Raw FAA approved-operations sub-code string; interpretation varies by airworthiness class.'}, 'manufacturerModelCode': {'type': 'string', 'description': '7-char manufacturer/model/series code.'}, 'engineManufacturerModelCode': {'type': 'string', 'description': '5-char engine manufacturer/model code.'}}, 'additionalProperties': False}
faa_search_aircraft_types
faa-aircraft-registry-mcp-server: search aircraft types
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.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 200, 'minimum': 1, 'description': 'Maximum number of results to return (1â\x80\x93200, default 25).'}, 'query': {'type': 'string', 'description': 'Manufacturer and/or model name to match (full-text).'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Zero-based index of the first result to return â\x80\x94 pass the nextOffset from a previous response, with identical filters, to page forward (default 0).'}, 'category': {'type': 'string', 'description': 'Aircraft category code to match exactly (1 Land, 2 Sea, 3 Amphibian).'}, 'aircraftType': {'type': 'string', 'description': 'Aircraft type code to match exactly (e.g. "6" for rotorcraft).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['aircraftTypes', 'totalCount']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'cap': {'type': 'number', 'description': 'The limit that was applied (present only when truncated is set).'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['no_filters'], 'description': 'Machine-readable failure mode. Declared by this tool: `no_filters`: No search filter was supplied. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'shown': {'type': 'number', 'description': 'Number of results on this page (present only when truncated is set).'}, 'notice': {'type': 'string', 'description': 'Guidance when no aircraft types matched, or when more matches remain.'}, 'truncated': {'type': 'boolean', 'description': 'Present and true only when matches remain beyond this page.'}, 'nextOffset': {'type': 'number', 'description': 'Offset to request the next page; absent when this page reached the end of the matches.'}, 'totalCount': {'type': 'number', 'description': 'Total aircraft types matching the filters, across all pages. Always present.'}, 'aircraftTypes': {'type': 'array', 'items': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': '7-char manufacturer/model/series code â\x80\x94 pass to faa_get_aircraft_type for full specs.'}, 'model': {'type': 'string', 'description': 'Aircraft model name.'}, 'category': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Aircraft category (Land, Sea, Amphibian) as code + label.', 'additionalProperties': False}, 'aircraftType': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Aircraft type as code + label.', 'additionalProperties': False}, 'manufacturer': {'type': 'string', 'description': 'Aircraft manufacturer name.'}, 'numberOfSeats': {'type': 'number', 'description': 'Number of seats; may be blank.'}, 'numberOfEngines': {'type': 'number', 'description': 'Number of engines; may be blank.'}}, 'description': 'A decoded aircraft-reference summary; use code with faa_get_aircraft_type for full specs.', 'additionalProperties': False}, 'description': 'Matching aircraft-reference summaries for this page (up to limit).'}}, 'additionalProperties': False}
faa_search_registrations
faa-aircraft-registry-mcp-server: search registrations
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.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 200, 'minimum': 1, 'description': 'Maximum number of results to return (1â\x80\x93200, default 25).'}, 'state': {'type': 'string', 'description': 'Two-letter state/territory abbreviation (exact match).'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Zero-based index of the first result to return â\x80\x94 pass the nextOffset from a previous response, with identical filters, to page forward (default 0).'}, 'makeModel': {'type': 'string', 'description': 'Aircraft make and/or model to match (full-text).'}, 'modeSCode': {'type': 'string', 'description': 'Mode S code in hex to match exactly (ICAO 24-bit address).'}, 'ownerName': {'type': 'string', 'description': 'Registrant name to match (full-text). Rejected when owner-PII redaction is on.'}, 'aircraftType': {'type': 'string', 'description': 'Aircraft type code to match exactly (e.g. "4" for fixed-wing single-engine).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['registrations', 'totalCount']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'cap': {'type': 'number', 'description': 'The limit that was applied (present only when truncated is set).'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['owner_search_disabled', 'no_filters'], 'description': 'Machine-readable failure mode. Declared by this tool: `owner_search_disabled`: ownerName was supplied while owner-PII redaction is enabled on this deployment. `no_filters`: No search filter was supplied. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'shown': {'type': 'number', 'description': 'Number of results on this page (present only when truncated is set).'}, 'notice': {'type': 'string', 'description': 'Guidance when no registrations matched, or when more matches remain.'}, 'truncated': {'type': 'boolean', 'description': 'Present and true only when matches remain beyond this page.'}, 'nextOffset': {'type': 'number', 'description': 'Offset to request the next page; absent when this page reached the end of the matches.'}, 'totalCount': {'type': 'number', 'description': 'Total registrations matching the filters, across all pages. Always present.'}, 'registrations': {'type': 'array', 'items': {'type': 'object', 'required': ['nNumber', 'nNumberDisplay', 'ownerRedacted'], 'properties': {'make': {'type': 'string', 'description': 'Aircraft manufacturer name.'}, 'model': {'type': 'string', 'description': 'Aircraft model name.'}, 'state': {'type': 'string', 'description': 'Registrant state/territory abbreviation.'}, 'status': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Registration status as code + label.', 'additionalProperties': False}, 'nNumber': {'type': 'string', 'description': 'Normalized N-number without the leading "N".'}, 'ownerName': {'type': 'string', 'description': 'Registrant name; present only when owner-PII redaction is off.'}, 'aircraftType': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'The raw code as stored in the FAA registry.'}, 'label': {'type': 'string', 'description': 'The decoded human-readable label; omitted when the code is unrecognized.'}}, 'description': 'Aircraft type as code + label.', 'additionalProperties': False}, 'modeSCodeHex': {'type': 'string', 'description': 'Mode S code in hex (ICAO 24-bit address).'}, 'ownerRedacted': {'type': 'boolean', 'description': 'True when owner name was withheld by the redaction gate.'}, 'nNumberDisplay': {'type': 'string', 'description': 'N-number with the leading "N" for display.'}, 'yearManufactured': {'type': 'number', 'description': 'Year manufactured; often blank.'}}, 'description': 'A decoded registration summary; use nNumber with faa_lookup_registration for full detail.', 'additionalProperties': False}, 'description': 'Matching registration summaries for this page (up to limit).'}}, 'additionalProperties': False}
Added
faa_get_registration_status
Sept. 17, 2026, 12:41 p.m.
Added
faa_search_aircraft_types
Sept. 17, 2026, 12:41 p.m.
Added
faa_search_registrations
Sept. 17, 2026, 12:41 p.m.
Added
faa_get_aircraft_type
Sept. 17, 2026, 12:41 p.m.
Added
faa_lookup_registration
Sept. 17, 2026, 12:41 p.m.