Koskamo

faa-aircraft-registry-mcp-server

An MCP server providing offline access to the US civil aircraft registry. It allows agents to decode N-numbers into full registration records including make, model, engine, and owner details. It also supports searching active registrations by owner, make/model, state, or Mode S code, and resolving aircraft type specifications from manufacturer codes.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

faa-aircraft-registry-mcp-server logo, by cyanheadsCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by cyanheads
MCP endpoint (Streamable HTTP)
https://faa-aircraft-registry.caseyjhand.com/mcp
Vendor documentation

What its tools do

5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

5 of 5 have a description · 5 of 5 declare behavior hints · 5 of 5 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Decode an N-number to get aircraft make, model, engine, and owner details
  • Search active US civil aircraft registrations by owner name or state
  • Resolve an N-number to determine if it is active, deregistered, or reserved
  • Decode a manufacturer/model code to get aircraft specifications like seats and weight class

Source and maintenance

Community listingRegistry 0.1.12
Maintenance checked

Protocol and capabilities

Server
faa-aircraft-registry-mcp-server 0.1.12
MCP protocol negotiated in check
2025-11-25
Tools
5 advertised
Resources
0 advertised
Resource templates
1 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "logging": {},
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "subscribe": true,
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Offline, keyless lookup of the US civil aircraft registry (the FAA Releasable Aircraft Database, indexed locally as SQLite + FTS5). Decode an N-number with faa_lookup_registration ("N12345" or "12345" both work); resolve active/deregistered/reserved status with faa_get_registration_status; search by owner/make-model/manufacturerModelCode/state/type/Mode S with faa_search_registrations. Discover 6–7-character manufacturer/model/series codes with faa_search_aircraft_types, pass manufacturerModelCode to faa_search_registrations for exact matches, then faa_lookup_registration for details; faa_get_aircraft_type returns code-specific specs. Coded fields surface both the raw FAA code and the decoded label. Owner name and address are REDACTED by default (FAA_REDACT_OWNER_PII); when redacted, owner-name search is disabled and payloads carry ownerRedacted: true. The index must be built once via the mirror:init script before queries succeed.

Tools

5 advertised

faa_lookup_registration — faa-aircraft-registry-mcp-server: lookup registration
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

faa_lookup_registration 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–5 characters — a leading digit 1–9, then digits, optionally ending in 1–2 letters (I and O are unused)."
    }
  },
  "additionalProperties": false
}
faa_lookup_registration 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–5 characters, a leading digit 1–9, then digits, optionally 1–2 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–5 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, …) 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 — 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, …) 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": "6–7-character manufacturer/model/series code."
    },
    "engineManufacturerModelCode": {
      "type": "string",
      "description": "5-char engine manufacturer/model code."
    }
  },
  "additionalProperties": false
}
faa_lookup_registration annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
faa_get_aircraft_type — faa-aircraft-registry-mcp-server: get aircraft type
Advertised by the server during the last successful anonymous check.
Advertised read-only

Decode a 6–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.

faa_get_aircraft_type 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\") — 6–7 uppercase alphanumeric characters, usually 7. Discover codes via faa_search_aircraft_types."
    }
  },
  "additionalProperties": false
}
faa_get_aircraft_type 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 6–7-character 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–7 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."
    },
    "weightClassLabel": {
      "type": "string",
      "description": "FAA maximum gross takeoff weight range in pounds; omitted when the raw weight class is unknown."
    },
    "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_aircraft_type annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
faa_search_registrations — faa-aircraft-registry-mcp-server: search registrations
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search active US civil aircraft registrations by owner name, make/model, exact manufacturerModelCode, state, aircraft type, or Mode S (hex) code. Discover codes with faa_search_aircraft_types, search registrations by manufacturerModelCode, then drill into N-numbers via faa_lookup_registration. Filters are AND-combined; at least one is required. Owner-name search is unavailable when this deployment redacts owner PII — use the other filters 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.

faa_search_registrations 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–200, default 25)."
    },
    "state": {
      "type": "string",
      "description": "Two ASCII letters for a state, territory or military postal code (e.g. WA, GU, AE, AP; exact match). Trimmed and uppercased; blank is unset."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Zero-based index of the first result to return — 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": "Six hexadecimal characters for the Mode S code (ICAO 24-bit address), exact match. Trimmed and uppercased; blank is unset."
    },
    "ownerName": {
      "type": "string",
      "description": "Registrant name to match (full-text). Rejected when owner-PII redaction is on."
    },
    "aircraftType": {
      "type": "string",
      "description": "FAA aircraft type code: 1–9, H (Hybrid Lift), O (Other), exact match. Trimmed and uppercased; blank is unset."
    },
    "manufacturerModelCode": {
      "type": "string",
      "description": "Exact FAA manufacturer/model/series code: 6–7 alphanumeric characters, trimmed and uppercased; blank is unset. Discover codes with faa_search_aircraft_types. AND-combined with other filters."
    }
  },
  "additionalProperties": false
}
faa_search_registrations 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": [
                "invalid_code",
                "invalid_state",
                "invalid_mode_s_code",
                "invalid_aircraft_type",
                "owner_search_disabled",
                "no_filters"
              ],
              "description": "Machine-readable failure mode. Declared by this tool: `invalid_code`: manufacturerModelCode is not 6–7 alphanumeric characters after normalization. `invalid_state`: state is not two ASCII letters. `invalid_mode_s_code`: modeSCode is not six hexadecimal characters. `invalid_aircraft_type`: aircraftType is not 1–9, H or O. `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."
          },
          "manufacturerModelCode": {
            "type": "string",
            "description": "FAA manufacturer/model/series code (6–7 characters); use with faa_get_aircraft_type for specs or manufacturerModelCode to find registrations of the same type."
          }
        },
        "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
}
faa_search_registrations annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
faa_search_aircraft_types — faa-aircraft-registry-mcp-server: search aircraft types
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search FAA aircraft types by manufacturer/model name, aircraft type code, or category code to discover 6–7-character manufacturer/model/series codes and browse specifications. Pass a code to faa_get_aircraft_type for specs or faa_search_registrations as manufacturerModelCode for exact registration matches, then faa_lookup_registration for details. 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.

faa_search_aircraft_types 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–200, 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 — pass the nextOffset from a previous response, with identical filters, to page forward (default 0)."
    },
    "category": {
      "type": "string",
      "description": "Aircraft category code: 1 (Land), 2 (Sea), 3 (Amphibian), exact match. Trimmed; blank is unset."
    },
    "aircraftType": {
      "type": "string",
      "description": "FAA aircraft type code: 1–9, H (Hybrid Lift), O (Other), exact match. Trimmed and uppercased; blank is unset."
    }
  },
  "additionalProperties": false
}
faa_search_aircraft_types 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": [
                "invalid_aircraft_type",
                "invalid_category",
                "no_filters"
              ],
              "description": "Machine-readable failure mode. Declared by this tool: `invalid_aircraft_type`: aircraftType is not 1–9, H or O. `invalid_category`: category is not 1, 2 or 3. `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": "6–7-character manufacturer/model/series code — pass to faa_get_aircraft_type for full specs or faa_search_registrations as manufacturerModelCode for exact registration matches."
          },
          "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_aircraft_types annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
faa_get_registration_status — faa-aircraft-registry-mcp-server: get registration status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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".

faa_get_registration_status 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–5 characters — a leading digit 1–9, then digits, optionally ending in 1–2 letters (I and O are unused)."
    }
  },
  "additionalProperties": false
}
faa_get_registration_status 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–5 characters, a leading digit 1–9, then digits, optionally 1–2 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": "6–7-character manufacturer/model/series code (deregistered records)."
    }
  },
  "additionalProperties": false
}
faa_get_registration_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

faa-registration — faa-aircraft-registry-mcp-server: registration record

Advertised by the server during the last successful anonymous check.

Fetch the full decoded registration record for one US civil aircraft N-number — the same payload as faa_lookup_registration. Owner PII is redacted unless the deployment opts in.

faa-registration URI template
faa://registration/{nNumber}

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
771 ms
95th percentile latency
771 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 771 ms · metadata changed · 5 tool(s), 0 resource(s), 1 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http faa-aircraft-registry-mcp-server https://faa-aircraft-registry.caseyjhand.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add faa-aircraft-registry-mcp-server --url https://faa-aircraft-registry.caseyjhand.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable faa-aircraft-registry-mcp-server in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "faa-aircraft-registry-mcp-server": {
      "url": "https://faa-aircraft-registry.caseyjhand.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "faa-aircraft-registry-mcp-server": {
      "type": "streamableHttp",
      "url": "https://faa-aircraft-registry.caseyjhand.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start faa-aircraft-registry-mcp-server and inspect its tools.
VS Code configuration
{
  "servers": {
    "faa-aircraft-registry-mcp-server": {
      "type": "http",
      "url": "https://faa-aircraft-registry.caseyjhand.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http faa-aircraft-registry-mcp-server https://faa-aircraft-registry.caseyjhand.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://faa-aircraft-registry.caseyjhand.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "faa-aircraft-registry-mcp-server": {
      "serverUrl": "https://faa-aircraft-registry.caseyjhand.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like faa-aircraft-registry-mcp-server from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.