Skip to main content
Glama

faa-aircraft-registry-mcp-server

Server Details

Offline, keyless lookup of the US civil aircraft registry — decode N-numbers, search records.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/faa-aircraft-registry-mcp-server
GitHub Stars
1

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clear and distinct purpose: faa_get_aircraft_type decodes a code to specs, faa_search_aircraft_types discovers codes by name; faa_lookup_registration gets full details for active N-numbers, faa_get_registration_status handles inactive or unreserved ones; faa_search_registrations searches by criteria. Descriptions explicitly clarify overlaps, so agents can reliably choose the right tool.

Naming Consistency5/5

All tools follow a uniform 'faa_verb_noun' pattern with consistent verb choices (get, lookup, search). The naming is predictable and makes the toolset easy to navigate.

Tool Count5/5

Five tools is ideal for a focused registry server. Each tool provides a necessary function (search, decode, status check, full lookup) without redundancy, covering the core workflow in a lean set.

Completeness5/5

The toolset covers all key operations for a read-only aircraft registry: searching registrations and aircraft types, looking up full records, and checking registration status across all files. There are no obvious gaps for the intended use case.

Available Tools

5 tools
faa_get_aircraft_typefaa-aircraft-registry-mcp-server: get aircraft typeA
Read-onlyIdempotent
Inspect

Decode a 7-character FAA manufacturer/model/series code to aircraft specifications from the reference table — 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesManufacturer/model/series code (e.g. "2072714") — 6–7 uppercase alphanumeric characters, usually 7. Discover codes via faa_search_aircraft_types.

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeYesThe 7-char manufacturer/model/series code.
modelNoAircraft model name.
categoryNoAircraft category (Land, Sea, Amphibian) as code + label.
engineTypeNoEngine type as code + label.
weightClassNoWeight class as the literal FAA string (e.g. "CLASS 1").
aircraftTypeNoAircraft type as code + label.
manufacturerNoAircraft manufacturer name.
numberOfSeatsNoNumber of seats; may be blank on the reference record.
cruiseSpeedMphNoCruise speed in mph; often blank (permissible field).
numberOfEnginesNoNumber of engines; may be blank on the reference record.
builderCertificationNoBuilder certification (Type Certificated, Not Type Certificated, Light Sport) as code + label.
typeCertificateDataSheetNoType-certificate data sheet identifier.
typeCertificateDataHolderNoType-certificate data holder.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds specific behavioral context (decoding to specifications from reference table) and lists return fields, which is consistent and valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. First sentence lists specific outputs, second provides usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage, clear annotations, and existence of output schema, the description is complete. It provides necessary context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and already includes the parameter's meaning, format, and example. The description does not add new parameter-level information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it decodes a 7-character FAA manufacturer/model/series code to a list of aircraft specifications. It distinguishes the tool from siblings by mentioning faa_search_aircraft_types for code discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use faa_search_aircraft_types first to discover a code by manufacturer or model name,' providing clear guidance on when to use this tool vs. alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_get_registration_statusfaa-aircraft-registry-mcp-server: get registration statusA
Read-onlyIdempotent
Inspect

Resolve registration and airworthiness status for a US civil aircraft N-number across all three status files — active (MASTER), deregistered (DEREG), and reserved (RESERVED) — in priority order, returning a definitive recordType. Use this (rather than faa_lookup_registration) when a number may be inactive: it returns "deregistered" or "reserved" for a known-but-inactive number instead of a not-found. A number that was never issued returns recordType "unknown" — a valid, informative answer, not an error. Accepts "N12345" or "12345".

ParametersJSON Schema
NameRequiredDescriptionDefault
nNumberYesUS 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).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNoRegistration/cancellation status as code + label (active and deregistered records).
nNumberYesNormalized N-number without the leading "N".
purgeDateNoScheduled purge date, YYYY-MM-DD (reserved records).
cancelDateNoCancellation date, YYYY-MM-DD (deregistered records).
recordTypeYesWhich file the number resolved in: active (MASTER), deregistered (DEREG), reserved (RESERVED), or unknown (none).
reserveDateNoDate the number was reserved, YYYY-MM-DD (reserved records).
modeSCodeHexNoMode S code in hex / ICAO 24-bit address (deregistered records).
serialNumberNoManufacturer serial number (deregistered records).
certIssueDateNoCertificate issue date, YYYY-MM-DD (active records).
expirationDateNoRegistration expiration date, YYYY-MM-DD (active records).
nNumberDisplayYesN-number with the leading "N" for display.
typeReservationNoType of reservation as code + label (reserved records).
nNumberForChangeNoThe N-number this reservation changes to/from (reserved records).
airworthinessDateNoAirworthiness certificate date, YYYY-MM-DD (active records).
airworthinessClassNoAirworthiness classification as code + label (active records).
expirationNoticeDateNoDate an expiration notice was sent, YYYY-MM-DD (reserved records).
manufacturerModelCodeNo7-char manufacturer/model/series code (deregistered records).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent), the description adds value by detailing the priority order, the definitive recordType return, and that 'unknown' is a valid response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with core action, each sentence informative with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one simple parameter, presence of output schema, and comprehensive coverage of behavior and edge cases, the description is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds meaning by clarifying input formats ('N12345' or '12345') and shape constraints, going beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves registration and airworthiness status across three status files in priority order, and distinguishes itself from sibling faa_lookup_registration by handling inactive numbers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use this tool (when a number may be inactive) versus faa_lookup_registration, and explains the behavior for never-issued numbers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_lookup_registrationfaa-aircraft-registry-mcp-server: lookup registrationA
Read-onlyIdempotent
Inspect

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). One call resolves the relational join and decodes every coded field. 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 the cross-file status answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNumberYesUS 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).

Output Schema

ParametersJSON Schema
NameRequiredDescription
makeNoAircraft manufacturer name, resolved from the reference table.
modelNoAircraft model name, resolved from the reference table.
ownerNoRegistrant name/address; present only when redaction is off.
regionNoRegistrant's FAA region as code + label.
statusNoRegistration status (e.g. Valid registration) as code + label.
nNumberYesNormalized N-number without the leading "N" (the registry storage form).
kitModelNoKit model (amateur-built aircraft); often blank.
uniqueIdNoFAA unique aircraft identifier.
engineMakeNoEngine manufacturer name, resolved from the reference table.
engineTypeNoEngine type (e.g. Reciprocating, Turbo-fan) as code + label.
engineModelNoEngine model name, resolved from the reference table.
aircraftTypeNoAircraft type (e.g. Fixed-wing single-engine) as code + label.
modeSCodeHexNoMode S code in hex — the ICAO 24-bit address used to key live flight-tracking data.
serialNumberNoManufacturer serial number.
certIssueDateNoCertificate issue date (YYYY-MM-DD).
ownerRedactedYesTrue when owner name/address were withheld from this payload by the redaction gate.
expirationDateNoRegistration expiration date (YYYY-MM-DD).
lastActionDateNoDate of the last registration action (YYYY-MM-DD).
modeSCodeOctalNoMode S transponder code in octal.
nNumberDisplayYesN-number in conventional display form, with the leading "N".
fractionalOwnerYesTrue when the aircraft is under fractional ownership.
kitManufacturerNoKit manufacturer (amateur-built aircraft); often blank.
yearManufacturedNoYear the aircraft was manufactured; often blank (permissible field).
airworthinessDateNoAirworthiness certificate date (YYYY-MM-DD).
airworthinessClassNoAirworthiness classification (Standard, Experimental, …) from CERTIFICATION char 1, as code + label.
approvedOperationsRawNoRaw FAA approved-operations sub-code string; interpretation varies by airworthiness class.
manufacturerModelCodeNo7-char manufacturer/model/series code (join key into the aircraft reference table).
engineManufacturerModelCodeNo5-char engine manufacturer/model code (join key into the engine reference table).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true; the description adds context about relational joins, decoded fields, and the ownerRedacted flag. No contradiction. Could mention error responses but not required given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding essential information, front-loaded with the core function. No unnecessary words. Optimal length for a simple lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter and an output schema, the description covers everything: what it does, input formats, when to use alternative tools, and notes a key output field (ownerRedacted). No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the parameter with 100% description coverage; the description adds value by explaining the accepted formats (with/without leading N) and shape (1–5 chars, digits and optional letters).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool decodes a US civil aircraft N-number to a full registration record, listing specific fields (make/model, engine, etc.). It distinguishes itself from sibling tools like faa_get_registration_status by noting it does not handle inactive numbers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (decode one N-number) and when not to (inactive numbers → use faa_get_registration_status). Also clarifies input formats ('N12345' or '12345').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_search_aircraft_typesfaa-aircraft-registry-mcp-server: search aircraft typesA
Read-onlyIdempotent
Inspect

Search the FAA aircraft reference table by manufacturer/model name (full-text), 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (1–200, default 25).
queryNoManufacturer and/or model name to match (full-text).
offsetNoZero-based index of the first result to return — pass the nextOffset from a previous response, with identical filters, to page forward (default 0).
categoryNoAircraft category code to match exactly (1 Land, 2 Sea, 3 Amphibian).
aircraftTypeNoAircraft type code to match exactly (e.g. "6" for rotorcraft).

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit that was applied (present only when truncated is set).
shownNoNumber of results on this page (present only when truncated is set).
noticeNoGuidance when no aircraft types matched, or when more matches remain.
truncatedNoPresent and true only when matches remain beyond this page.
nextOffsetNoOffset to request the next page; absent when this page reached the end of the matches.
totalCountYesTotal aircraft types matching the filters, across all pages. Always present.
aircraftTypesYesMatching aircraft-reference summaries for this page (up to limit).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly and idempotent. Description adds that the response reports totalCount and provides nextOffset for pagination, and that at least one filter is required. This adds value beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then usage guidance, then pagination details. Every sentence adds value; no wasted words. Excellent structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, output schema exists) and high schema coverage, the description covers key points: purpose, required-at-least-one filter, pagination mechanism, and relationship to sibling. Output schema handles return details, so description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds the important constraint that at least one filter is required, which is not in the schema (no required fields). This provides critical usage context that the schema alone lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches the FAA aircraft reference table by multiple criteria (manufacturer/model, type code, category code) and returns 7-character codes and specifications. It distinguishes itself from siblings like faa_get_aircraft_type by noting to use this tool first to find a code by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using this before faa_get_aircraft_type and notes 'at least one filter is required.' It also explains pagination with nextOffset, providing clear guidance on usage. Could be slightly more explicit about when not to use, but overall good.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa_search_registrationsfaa-aircraft-registry-mcp-server: search registrationsA
Read-onlyIdempotent
Inspect

Search active US civil aircraft registrations by owner name, make/model, state, aircraft type, or Mode S (hex) code. Full-text search over the local registry index; 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (1–200, default 25).
stateNoTwo-letter state/territory abbreviation (exact match).
offsetNoZero-based index of the first result to return — pass the nextOffset from a previous response, with identical filters, to page forward (default 0).
makeModelNoAircraft make and/or model to match (full-text).
modeSCodeNoMode S code in hex to match exactly (ICAO 24-bit address).
ownerNameNoRegistrant name to match (full-text). Rejected when owner-PII redaction is on.
aircraftTypeNoAircraft type code to match exactly (e.g. "4" for fixed-wing single-engine).

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit that was applied (present only when truncated is set).
shownNoNumber of results on this page (present only when truncated is set).
noticeNoGuidance when no registrations matched, or when more matches remain.
truncatedNoPresent and true only when matches remain beyond this page.
nextOffsetNoOffset to request the next page; absent when this page reached the end of the matches.
totalCountYesTotal registrations matching the filters, across all pages. Always present.
registrationsYesMatching registration summaries for this page (up to limit).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description discloses critical behaviors: at least one filter is required, owner-name search may be unavailable depending on deployment, and pagination behavior (totalCount and nextOffset). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: first sentence states purpose and key filters, then details search type, constraints (at least one filter), deployment-specific note, and pagination. No redundant information; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given seven parameters and an output schema, the description covers all essential aspects: filter options, required inputs, deployment variability, pagination mechanics, and linkage to a sibling tool for detailed lookups. The presence of an output schema reduces need to describe return fields, so this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by clarifying that searches for makeModel and ownerName are full-text, while state, aircraftType, and modeSCode are exact matches. It also flags the conditionality of ownerName parameter based on deployment config.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches active US civil aircraft registrations by multiple filter criteria (owner name, make/model, state, aircraft type, Mode S code). It distinguishes itself from sibling tools like faa_lookup_registration by noting it returns summaries for drilling into details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use alternative filters when owner-PII redaction is active, and explains pagination using nextOffset. It implicitly suggests using faa_lookup_registration for detailed lookups after search, but could be more explicit about when to use other sibling search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.