faa-aircraft-registry-mcp-server

v0.1.12 pre-1.0

Offline US civil aircraft registry — decode an N-number to aircraft, engine, status, and owner; search by owner, type, or state.

faa-aircraft-registry.caseyjhand.com/mcp
claude mcp add --transport http faa-aircraft-registry-mcp-server https://faa-aircraft-registry.caseyjhand.com/mcp
codex mcp add faa-aircraft-registry-mcp-server --url https://faa-aircraft-registry.caseyjhand.com/mcp
{
  "mcpServers": {
    "faa-aircraft-registry-mcp-server": {
      "url": "https://faa-aircraft-registry.caseyjhand.com/mcp"
    }
  }
}
gemini mcp add --transport http faa-aircraft-registry-mcp-server https://faa-aircraft-registry.caseyjhand.com/mcp
{
  "mcpServers": {
    "faa-aircraft-registry-mcp-server": {
      "command": "bunx",
      "args": [
        "mcp-remote",
        "https://faa-aircraft-registry.caseyjhand.com/mcp"
      ]
    }
  }
}
{
  "mcpServers": {
    "faa-aircraft-registry-mcp-server": {
      "type": "http",
      "url": "https://faa-aircraft-registry.caseyjhand.com/mcp"
    }
  }
}
curl -X POST https://faa-aircraft-registry.caseyjhand.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0.0"}}}'

Tools

5

faa_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
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_lookup_registration",
    "arguments": {
      "nNumber": "<nNumber>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "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)."
    }
  },
  "required": [
    "nNumber"
  ],
  "additionalProperties": false
}
view source ↗

faa_get_aircraft_type

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.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_get_aircraft_type",
    "arguments": {
      "code": "<code>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "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."
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false
}
view source ↗

faa_search_registrations

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.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_search_registrations",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ownerName": {
      "description": "Registrant name to match (full-text). Rejected when owner-PII redaction is on.",
      "type": "string"
    },
    "makeModel": {
      "description": "Aircraft make and/or model to match (full-text).",
      "type": "string"
    },
    "manufacturerModelCode": {
      "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.",
      "type": "string"
    },
    "state": {
      "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.",
      "type": "string"
    },
    "aircraftType": {
      "description": "FAA aircraft type code: 1–9, H (Hybrid Lift), O (Other), exact match. Trimmed and uppercased; blank is unset.",
      "type": "string"
    },
    "modeSCode": {
      "description": "Six hexadecimal characters for the Mode S code (ICAO 24-bit address), exact match. Trimmed and uppercased; blank is unset.",
      "type": "string"
    },
    "limit": {
      "default": 25,
      "description": "Maximum number of results to return (1–200, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "offset": {
      "default": 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).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "limit",
    "offset"
  ],
  "additionalProperties": false
}
view source ↗

faa_search_aircraft_types

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.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_search_aircraft_types",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "description": "Manufacturer and/or model name to match (full-text).",
      "type": "string"
    },
    "aircraftType": {
      "description": "FAA aircraft type code: 1–9, H (Hybrid Lift), O (Other), exact match. Trimmed and uppercased; blank is unset.",
      "type": "string"
    },
    "category": {
      "description": "Aircraft category code: 1 (Land), 2 (Sea), 3 (Amphibian), exact match. Trimmed; blank is unset.",
      "type": "string"
    },
    "limit": {
      "default": 25,
      "description": "Maximum number of results to return (1–200, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "offset": {
      "default": 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).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "limit",
    "offset"
  ],
  "additionalProperties": false
}
view source ↗

faa_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
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "faa_get_registration_status",
    "arguments": {
      "nNumber": "<nNumber>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "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)."
    }
  },
  "required": [
    "nNumber"
  ],
  "additionalProperties": false
}
view source ↗

Resources

1

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.

uri faa://registration/{nNumber} mime application/json