faa-airmen-registry-mcp-server
An MCP server that searches FAA airmen certificates, ratings, and informational medical records via MCP. It supports STDIO or Streamable HTTP transports and provides tools to verify certificates, check medical status, search instructors, and list reference data from a local snapshot of the Releasable Airmen Database.
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.
https://faa-airmen-registry.caseyjhand.com/mcpWhat you can do with it
- Find releasable FAA airman records by exact Unique ID or name
- Read pilot and non-pilot certificates with their ordered ratings
- Find flight and ground instructor records by name, state, and ratings
- Read informational medical and BasicMed fields without assessing fitness
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- faa-airmen-registry-mcp-server 0.3.1
- MCP protocol
- 2025-06-18
- Tools
- 6 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"subscribe": true,
"listChanged": true
},
"extensions": {
"io.modelcontextprotocol/skills": {
"directoryRead": true
}
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
faa_airmen_verify_certificate — Faa Airmen Verify Certificate
Find releasable FAA airman records by exact Unique ID or name and read their certificate records. Use name mode to discover IDs, then use an ID for ratings or informational medical fields. Certificate type, level, rating, and type-rating filters must all match one certificate, and each match still returns all its certificates. While the operator's personal-data redaction is on (the default), name mode needs lastName and firstName, nameMatch prefix and city or ZIP filters are rejected, and city and ZIP are withheld. A missing or matching record is not a current licensing or operating-privilege determination.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mode"
],
"properties": {
"city": {
"type": "string",
"description": "Exact city, 1–60 visible characters; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset."
},
"mode": {
"enum": [
"id",
"name"
],
"type": "string",
"description": "id requires uniqueId and forbids nonblank name/location fields and explicit nameMatch; name requires lastName, plus firstName while personal-data redaction is on, and forbids nonblank uniqueId."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice."
},
"state": {
"type": "string",
"description": "Two-letter USPS code: one of the 50 states, DC, PR, GU, VI, MP, AS, FM, MH, PW, or the military AA, AE, AP; trimmed and uppercased. Airmen with foreign addresses carry no state. Blank means unset."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0,
"description": "Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap."
},
"zipCode": {
"type": "string",
"pattern": "^\\s*(?:[0-9]{5}(?:-?[0-9]{4})?\\s*)?$",
"description": "Five-digit ZIP or ZIP+4, preserving leading zeros; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset."
},
"lastName": {
"type": "string",
"description": "LAST NAME, which may include a suffix; the default words match finds SMITH JR from SMITH. 1–60 visible characters after normalization. Blank means unset."
},
"uniqueId": {
"type": "string",
"pattern": "^\\s*(?:[AaCc][0-9]{7}\\s*)?$",
"description": "Opaque FAA Unique ID from a faa_airmen_verify_certificate, faa_airmen_search_instructors, or faa_airmen_verify_remote_pilot result, A or C plus seven digits, for example A9999999; not a certificate number. Trimmed and uppercased."
},
"firstName": {
"type": "string",
"description": "FIRST NAME, which usually includes middle names; the default words match finds JOHN ROBERT from JOHN. 1–60 visible characters after normalization. Blank means unset."
},
"nameMatch": {
"enum": [
"words",
"exact",
"prefix"
],
"type": "string",
"description": "How each supplied name field matches; default words for name searches. words: the field equals the term or continues with a space after it; only a space separates words, so a hyphenated or apostrophe name is one word. exact: the whole field. prefix: the field begins with the term, also mid-word; rejected while personal-data redaction is on."
},
"ratingCodes": {
"type": "array",
"items": {
"type": "string",
"description": "FAA rating code from faa_airmen_list_reference topic ratings, such as INSTA, matching any source level; level/code such as F/INSTA matches that level only. The code is 1–30 letters, digits, spaces, or hyphens and the level one letter; trimmed and uppercased."
},
"maxItems": 11,
"minItems": 1,
"description": "One to eleven rating codes, repeats collapsed; every code must occur on the same certificate as every other requested credential, never across certificates. CFII is INSTA, INSTH, INSTI, or INSTP on a flight instructor (F) certificate; MEI is AME or ASME on F; INST, ADV, and BASIC occur only on ground instructor (G) certificates."
},
"typeRatings": {
"type": "array",
"items": {
"type": "string",
"description": "Aircraft type designator from faa_airmen_list_reference topic type_ratings, such as B-737, matching any source level; level/designator such as A/B-737 matches that slot level only, which can differ from certificateLevel. The designator is 1–30 letters, digits, spaces, or hyphens and the level one letter; trimmed and uppercased; hyphens are significant."
},
"maxItems": 11,
"minItems": 1,
"description": "One to eleven type-rating designators, repeats collapsed; every designator must occur on the same certificate as every other requested credential."
},
"certificateType": {
"type": "string",
"description": "One FAA certificate type letter, its description from faa_airmen_list_reference topic certificate_types (case-insensitive; underscore or space, such as remote pilot or flight_instructor), or CFI; selects people while retaining all their certificates."
},
"certificateLevel": {
"type": "string",
"description": "One level letter listed for the certificateType in faa_airmen_list_reference topic certificate_levels, such as A (airline transport pilot) with certificateType P; requires certificateType and matches the certificate's own level. Trimmed and uppercased; blank means unset."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"matches",
"notice",
"provenance",
"appliedFilters",
"piiRedacted",
"totalCount",
"returnedCount",
"hasMore",
"nextOffset",
"atPagingCap"
]
},
{
"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_identity",
"invalid_filter",
"location_access_disabled",
"pii_redacted",
"mirror_missing",
"mirror_unavailable",
"mirror_rebuild_required"
],
"description": "Machine-readable failure mode. Declared by this tool: `invalid_identity`: Invalid or blank semantic identity selector. `invalid_filter`: Invalid code, location, or filter combination after normalization. `location_access_disabled`: Nonblank city or ZIP filter supplied while location access is disabled. `pii_redacted`: Personal-data redaction is on and the call sends city or ZIP, a name search without both names, or nameMatch prefix. `mirror_missing`: No complete published mirror generation is available. `mirror_unavailable`: Published generation is corrupt, missing, incompatible, or unreadable. `mirror_rebuild_required`: Location access is enabled but this generation discarded city and ZIP. 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": {}
},
"notice": {
"type": "string",
"description": "Snapshot limitations, absence guidance, source-quality notices for the returned records, paging notices (a clamped limit, the offset cap, or a page the response size budget ended before limit), and operational notices; may be empty."
},
"hasMore": {
"type": "boolean",
"description": "Whether another page is reachable within the offset cap."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"airman",
"certificates"
],
"properties": {
"airman": {
"type": "object",
"required": [
"uniqueId",
"firstName",
"lastName",
"sourceFamilies"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"uniqueId": {
"type": "string",
"description": "Opaque FAA Unique ID, not a certificate number."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this person."
},
"identityVariants": {
"type": "array",
"items": {
"type": "object",
"required": [
"firstName",
"lastName",
"sourceFamily",
"origin"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"origin": {
"enum": [
"basic",
"certificate"
],
"type": "string",
"description": "Source record containing this distinct identity."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamily": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
}
},
"description": "Distinct source identity.",
"additionalProperties": false
},
"description": "All differing safe BASIC and certificate identities."
}
},
"description": "One person joined only by FAA Unique ID.",
"additionalProperties": false
},
"certificates": {
"type": "array",
"items": {
"type": "object",
"required": [
"recordId",
"sourceFamilies",
"type",
"ratings",
"typeRatings"
],
"properties": {
"type": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate type.",
"additionalProperties": false
},
"level": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate level, absent when blank in the source.",
"additionalProperties": false
},
"ratings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank rating slot in source order."
},
"recordId": {
"type": "string",
"description": "Stable certificate identifier within this snapshot."
},
"typeRatings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank aircraft type-rating slot in source order."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this certificate."
},
"legacyExpireDateRaw": {
"type": "string",
"description": "Legacy source expiry field; does not establish instructor currency."
}
},
"description": "Complete source certificate.",
"additionalProperties": false
},
"description": "All certificates for the matched person, including types outside the filter."
}
},
"description": "Complete person and certificates.",
"additionalProperties": false
},
"description": "Separate identity candidates; never infer a single person from multiple matches."
},
"nextOffset": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "Next reachable offset, or null when no next page is available."
},
"provenance": {
"anyOf": [
{
"type": "object",
"required": [
"sourceName",
"snapshotMonth",
"ageDays",
"ageBasis",
"stale",
"staleAfterDays",
"generationId",
"includeLocation"
],
"properties": {
"stale": {
"type": "boolean",
"description": "Source exceeds the configured age threshold; not a credential judgment."
},
"ageDays": {
"type": "number",
"description": "Source age in days, independent of import time."
},
"ageBasis": {
"enum": [
"published_at",
"snapshot_month_start"
],
"type": "string",
"description": "Publication timestamp or conservative first-of-month age basis."
},
"sourceName": {
"type": "string",
"description": "Official dataset name."
},
"generationId": {
"type": "string",
"description": "Immutable published generation identifier."
},
"snapshotMonth": {
"type": "string",
"description": "Advertised publication month in YYYY-MM format, not an exact effective date."
},
"staleAfterDays": {
"type": "number",
"description": "Configured source-age warning threshold in days."
},
"includeLocation": {
"type": "boolean",
"description": "Generation import policy: city and ZIP kept at import, not what this response returns."
}
},
"description": "Per-call source provenance; topic mirror_status returns the full record.",
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Snapshot provenance, or null for static reference topics."
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Total matches after filtering, before paging."
},
"atPagingCap": {
"type": "boolean",
"description": "Matches remain but the next offset exceeds 10000; narrow the filters."
},
"piiRedacted": {
"type": "boolean",
"description": "Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Complete people or reference entries returned on this page. Fewer than limit means the results ended or the response size budget ended the page; while hasMore is true, the notice names the offset to continue from."
},
"appliedFilters": {
"type": "object",
"description": "Every effective normalized selector, filter, and paging value.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"description": "Normalized text filter."
},
{
"type": "number",
"description": "Normalized numeric filter."
},
{
"type": "array",
"items": {
"type": "string",
"description": "Normalized code."
},
"description": "Normalized rating filters."
}
]
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}faa_airmen_get_type_ratings — Faa Airmen Get Type Ratings
Read one FAA airman's certificates from the FAA pilot file, by Unique ID: pilot, flight instructor, authorized aircraft instructor, remote pilot, and flight engineer, each with every aircraft type, category/class, and instrument rating. Ground instructor, mechanic, and other non-pilot certificates are excluded; faa_airmen_verify_certificate mode id returns every certificate. Get the ID from a faa_airmen_verify_certificate, faa_airmen_search_instructors, or faa_airmen_verify_remote_pilot result. Ratings retain their source certificate type and level and do not establish current operating privileges.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"uniqueId"
],
"properties": {
"uniqueId": {
"type": "string",
"pattern": "^\\s*[AaCc][0-9]{7}\\s*$",
"description": "Opaque FAA Unique ID from a faa_airmen_verify_certificate, faa_airmen_search_instructors, or faa_airmen_verify_remote_pilot result, A or C plus seven digits, for example A9999999; not a certificate number."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"found",
"notice",
"provenance",
"appliedFilters",
"piiRedacted"
]
},
{
"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_identity",
"mirror_missing",
"mirror_unavailable",
"mirror_rebuild_required"
],
"description": "Machine-readable failure mode. Declared by this tool: `invalid_identity`: Invalid or blank semantic identity selector. `mirror_missing`: No complete published mirror generation is available. `mirror_unavailable`: Published generation is corrupt, missing, incompatible, or unreadable. `mirror_rebuild_required`: Location access is enabled but this generation discarded city and ZIP. 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": {}
},
"found": {
"type": "boolean",
"description": "Whether this Unique ID occurs in the releasable snapshot."
},
"airman": {
"type": "object",
"required": [
"uniqueId",
"firstName",
"lastName",
"sourceFamilies"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"uniqueId": {
"type": "string",
"description": "Opaque FAA Unique ID, not a certificate number."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this person."
},
"identityVariants": {
"type": "array",
"items": {
"type": "object",
"required": [
"firstName",
"lastName",
"sourceFamily",
"origin"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"origin": {
"enum": [
"basic",
"certificate"
],
"type": "string",
"description": "Source record containing this distinct identity."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamily": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
}
},
"description": "Distinct source identity.",
"additionalProperties": false
},
"description": "All differing safe BASIC and certificate identities."
}
},
"description": "Matched person, absent for a missing ID.",
"additionalProperties": false
},
"notice": {
"type": "string",
"description": "Snapshot limitations, absence guidance, source-quality notices for the returned records, and operational notices; may be empty."
},
"provenance": {
"anyOf": [
{
"type": "object",
"required": [
"sourceName",
"snapshotMonth",
"ageDays",
"ageBasis",
"stale",
"staleAfterDays",
"generationId",
"includeLocation"
],
"properties": {
"stale": {
"type": "boolean",
"description": "Source exceeds the configured age threshold; not a credential judgment."
},
"ageDays": {
"type": "number",
"description": "Source age in days, independent of import time."
},
"ageBasis": {
"enum": [
"published_at",
"snapshot_month_start"
],
"type": "string",
"description": "Publication timestamp or conservative first-of-month age basis."
},
"sourceName": {
"type": "string",
"description": "Official dataset name."
},
"generationId": {
"type": "string",
"description": "Immutable published generation identifier."
},
"snapshotMonth": {
"type": "string",
"description": "Advertised publication month in YYYY-MM format, not an exact effective date."
},
"staleAfterDays": {
"type": "number",
"description": "Configured source-age warning threshold in days."
},
"includeLocation": {
"type": "boolean",
"description": "Generation import policy: city and ZIP kept at import, not what this response returns."
}
},
"description": "Per-call source provenance; topic mirror_status returns the full record.",
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Snapshot provenance, or null for static reference topics."
},
"piiRedacted": {
"type": "boolean",
"description": "Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID."
},
"certificates": {
"type": "array",
"items": {
"type": "object",
"required": [
"recordId",
"sourceFamilies",
"type",
"ratings",
"typeRatings"
],
"properties": {
"type": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate type.",
"additionalProperties": false
},
"level": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate level, absent when blank in the source.",
"additionalProperties": false
},
"ratings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank rating slot in source order."
},
"recordId": {
"type": "string",
"description": "Stable certificate identifier within this snapshot."
},
"typeRatings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank aircraft type-rating slot in source order."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this certificate."
},
"legacyExpireDateRaw": {
"type": "string",
"description": "Legacy source expiry field; does not establish instructor currency."
}
},
"description": "Complete source certificate.",
"additionalProperties": false
},
"description": "All pilot-family certificates with complete rating arrays; empty when the person has no reported pilot-family certificate."
},
"appliedFilters": {
"type": "object",
"description": "Every effective normalized selector, filter, and paging value.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"description": "Normalized text filter."
},
{
"type": "number",
"description": "Normalized numeric filter."
},
{
"type": "array",
"items": {
"type": "string",
"description": "Normalized code."
},
"description": "Normalized rating filters."
}
]
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}faa_airmen_check_medical_status — Faa Airmen Check Medical Status
Read the FAA snapshot's informational medical class, medical dates, and BasicMed dates for one airman Unique ID. These fields are not authoritative medical certification or fitness determinations. Get the ID from a faa_airmen_verify_certificate, faa_airmen_search_instructors, or faa_airmen_verify_remote_pilot result. Every call is rejected while the operator's personal-data redaction is on (the default).
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"uniqueId"
],
"properties": {
"uniqueId": {
"type": "string",
"pattern": "^\\s*[AaCc][0-9]{7}\\s*$",
"description": "Opaque FAA Unique ID from a faa_airmen_verify_certificate, faa_airmen_search_instructors, or faa_airmen_verify_remote_pilot result, A or C plus seven digits, for example A9999999; not a certificate number."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"found",
"disclaimer",
"notice",
"provenance",
"appliedFilters",
"piiRedacted"
]
},
{
"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": [
"pii_redacted",
"invalid_identity",
"mirror_missing",
"mirror_unavailable",
"mirror_rebuild_required"
],
"description": "Machine-readable failure mode. Declared by this tool: `pii_redacted`: Personal-data redaction is on; every medical call that passes the input schema is rejected before the ID is checked or the mirror is read. `invalid_identity`: Invalid or blank semantic identity selector. `mirror_missing`: No complete published mirror generation is available. `mirror_unavailable`: Published generation is corrupt, missing, incompatible, or unreadable. `mirror_rebuild_required`: Location access is enabled but this generation discarded city and ZIP. 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": {}
},
"found": {
"type": "boolean",
"description": "Whether this Unique ID occurs in the releasable snapshot."
},
"airman": {
"type": "object",
"required": [
"uniqueId",
"firstName",
"lastName",
"sourceFamilies"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"uniqueId": {
"type": "string",
"description": "Opaque FAA Unique ID, not a certificate number."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this person."
},
"identityVariants": {
"type": "array",
"items": {
"type": "object",
"required": [
"firstName",
"lastName",
"sourceFamily",
"origin"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"origin": {
"enum": [
"basic",
"certificate"
],
"type": "string",
"description": "Source record containing this distinct identity."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamily": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
}
},
"description": "Distinct source identity.",
"additionalProperties": false
},
"description": "All differing safe BASIC and certificate identities."
}
},
"description": "Matched person, absent for a missing ID.",
"additionalProperties": false
},
"notice": {
"type": "string",
"description": "Snapshot limitations, absence guidance, source-quality notices for the returned records, and operational notices; may be empty."
},
"disclaimer": {
"type": "string",
"description": "Medical information limitations, present on every result."
},
"provenance": {
"anyOf": [
{
"type": "object",
"required": [
"sourceName",
"snapshotMonth",
"ageDays",
"ageBasis",
"stale",
"staleAfterDays",
"generationId",
"includeLocation"
],
"properties": {
"stale": {
"type": "boolean",
"description": "Source exceeds the configured age threshold; not a credential judgment."
},
"ageDays": {
"type": "number",
"description": "Source age in days, independent of import time."
},
"ageBasis": {
"enum": [
"published_at",
"snapshot_month_start"
],
"type": "string",
"description": "Publication timestamp or conservative first-of-month age basis."
},
"sourceName": {
"type": "string",
"description": "Official dataset name."
},
"generationId": {
"type": "string",
"description": "Immutable published generation identifier."
},
"snapshotMonth": {
"type": "string",
"description": "Advertised publication month in YYYY-MM format, not an exact effective date."
},
"staleAfterDays": {
"type": "number",
"description": "Configured source-age warning threshold in days."
},
"includeLocation": {
"type": "boolean",
"description": "Generation import policy: city and ZIP kept at import, not what this response returns."
}
},
"description": "Per-call source provenance; topic mirror_status returns the full record.",
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Snapshot provenance, or null for static reference topics."
},
"piiRedacted": {
"type": "boolean",
"description": "Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID."
},
"appliedFilters": {
"type": "object",
"description": "Every effective normalized selector, filter, and paging value.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"description": "Normalized text filter."
},
{
"type": "number",
"description": "Normalized numeric filter."
},
{
"type": "array",
"items": {
"type": "string",
"description": "Normalized code."
},
"description": "Normalized rating filters."
}
]
}
},
"medicalRecords": {
"type": "array",
"items": {
"type": "object",
"required": [
"sourceFamilies"
],
"properties": {
"medicalClass": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Reported medical class; no fitness or eligibility verdict.",
"additionalProperties": false
},
"medicalDateRaw": {
"type": "string",
"description": "Raw source medical date, normally MMYYYY; malformed nonblank values retained."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing these medical fields."
},
"basicMedCmecDateRaw": {
"type": "string",
"description": "Raw BasicMed examination checklist date, normally YYYYMMDD."
},
"medicalExpireDateRaw": {
"type": "string",
"description": "Raw source medical expiry date, normally MMYYYY; not an eligibility determination."
},
"basicMedCourseDateRaw": {
"type": "string",
"description": "Raw BasicMed course date, normally YYYYMMDD."
}
},
"description": "One distinct set of informational medical source fields.",
"additionalProperties": false
},
"description": "All distinct reported medical records; empty when a known person has no reported medical fields."
},
"hasReportedMedicalFields": {
"type": "boolean",
"description": "Whether any medical fields were reported; absent for a missing person, never an adverse finding."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}faa_airmen_search_instructors — Faa Airmen Search Instructors
Find releasable flight and ground instructor certificate records by name, state, and rating codes. Supply at least one name, state, city, ZIP, or rating filter. City and ZIP filters require operator-enabled location access. While the operator's personal-data redaction is on (the default), lastName and firstName are both required, nameMatch prefix and city or ZIP filters are rejected, and city and ZIP are withheld. Legacy expiry fields do not establish instructor currency; CFI certificates no longer expire under the December 2024 rule.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"city": {
"type": "string",
"description": "Exact city, 1–60 visible characters; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice."
},
"state": {
"type": "string",
"description": "Two-letter USPS code: one of the 50 states, DC, PR, GU, VI, MP, AS, FM, MH, PW, or the military AA, AE, AP; trimmed and uppercased. Airmen with foreign addresses carry no state. Blank means unset."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0,
"description": "Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap."
},
"zipCode": {
"type": "string",
"pattern": "^\\s*(?:[0-9]{5}(?:-?[0-9]{4})?\\s*)?$",
"description": "Five-digit ZIP or ZIP+4, preserving leading zeros; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset."
},
"lastName": {
"type": "string",
"description": "LAST NAME, which may include a suffix; the default words match finds SMITH JR from SMITH. 1–60 visible characters after normalization. Blank means unset."
},
"firstName": {
"type": "string",
"description": "FIRST NAME, which usually includes middle names; the default words match finds JOHN ROBERT from JOHN. 1–60 visible characters after normalization. Blank means unset."
},
"nameMatch": {
"enum": [
"words",
"exact",
"prefix"
],
"type": "string",
"description": "How each supplied name field matches; default words for name searches. words: the field equals the term or continues with a space after it; only a space separates words, so a hyphenated or apostrophe name is one word. exact: the whole field. prefix: the field begins with the term, also mid-word; rejected while personal-data redaction is on."
},
"ratingCodes": {
"type": "array",
"items": {
"type": "string",
"description": "FAA rating code from faa_airmen_list_reference topic ratings, such as INSTA, matching any source level; level/code such as F/INSTA matches that level only. The code is 1–30 letters, digits, spaces, or hyphens and the level one letter; trimmed and uppercased."
},
"maxItems": 11,
"minItems": 1,
"description": "One to eleven codes, repeats collapsed; every code must occur on the same qualifying certificate, never across certificates. CFII is INSTA, INSTH, INSTI, or INSTP on a flight instructor (F) certificate; MEI is AME or ASME on F; INST, ADV, and BASIC occur only on ground instructor (G) certificates."
},
"instructorType": {
"enum": [
"flight",
"ground",
"both"
],
"type": "string",
"default": "both",
"description": "Select flight F, ground G, or both instructor certificate types; default both."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"matches",
"notice",
"provenance",
"appliedFilters",
"piiRedacted",
"totalCount",
"returnedCount",
"hasMore",
"nextOffset",
"atPagingCap"
]
},
{
"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_identity",
"invalid_filter",
"location_access_disabled",
"pii_redacted",
"missing_search_filter",
"mirror_missing",
"mirror_unavailable",
"mirror_rebuild_required"
],
"description": "Machine-readable failure mode. Declared by this tool: `invalid_identity`: Invalid or blank semantic name filter. `invalid_filter`: Invalid code, location, or filter combination after normalization. `location_access_disabled`: Nonblank city or ZIP filter supplied while location access is disabled. `pii_redacted`: Personal-data redaction is on and the call sends city or ZIP, omits lastName or firstName, or sends nameMatch prefix. `missing_search_filter`: Instructor query has no qualifying name, location, or rating filter. `mirror_missing`: No complete published mirror generation is available. `mirror_unavailable`: Published generation is corrupt, missing, incompatible, or unreadable. `mirror_rebuild_required`: Location access is enabled but this generation discarded city and ZIP. 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": {}
},
"notice": {
"type": "string",
"description": "Snapshot limitations, absence guidance, source-quality notices for the returned records, paging notices (a clamped limit, the offset cap, or a page the response size budget ended before limit), and operational notices; may be empty."
},
"hasMore": {
"type": "boolean",
"description": "Whether another page is reachable within the offset cap."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"airman",
"instructorCertificates"
],
"properties": {
"airman": {
"type": "object",
"required": [
"uniqueId",
"firstName",
"lastName",
"sourceFamilies"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"uniqueId": {
"type": "string",
"description": "Opaque FAA Unique ID, not a certificate number."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this person."
},
"identityVariants": {
"type": "array",
"items": {
"type": "object",
"required": [
"firstName",
"lastName",
"sourceFamily",
"origin"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"origin": {
"enum": [
"basic",
"certificate"
],
"type": "string",
"description": "Source record containing this distinct identity."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamily": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
}
},
"description": "Distinct source identity.",
"additionalProperties": false
},
"description": "All differing safe BASIC and certificate identities."
}
},
"description": "One person joined only by FAA Unique ID.",
"additionalProperties": false
},
"instructorCertificates": {
"type": "array",
"items": {
"type": "object",
"required": [
"recordId",
"sourceFamilies",
"type",
"ratings",
"typeRatings"
],
"properties": {
"type": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate type.",
"additionalProperties": false
},
"level": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate level, absent when blank in the source.",
"additionalProperties": false
},
"ratings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank rating slot in source order."
},
"recordId": {
"type": "string",
"description": "Stable certificate identifier within this snapshot."
},
"typeRatings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank aircraft type-rating slot in source order."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this certificate."
},
"legacyExpireDateRaw": {
"type": "string",
"description": "Legacy source expiry field; does not establish instructor currency."
}
},
"description": "Complete source certificate.",
"additionalProperties": false
},
"description": "Every F/G certificate satisfying all requested rating codes on that same certificate."
}
},
"description": "Person and complete qualifying instructor certificates.",
"additionalProperties": false
},
"description": "Matching instructor candidates; certificate presence does not establish currency."
},
"nextOffset": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "Next reachable offset, or null when no next page is available."
},
"provenance": {
"anyOf": [
{
"type": "object",
"required": [
"sourceName",
"snapshotMonth",
"ageDays",
"ageBasis",
"stale",
"staleAfterDays",
"generationId",
"includeLocation"
],
"properties": {
"stale": {
"type": "boolean",
"description": "Source exceeds the configured age threshold; not a credential judgment."
},
"ageDays": {
"type": "number",
"description": "Source age in days, independent of import time."
},
"ageBasis": {
"enum": [
"published_at",
"snapshot_month_start"
],
"type": "string",
"description": "Publication timestamp or conservative first-of-month age basis."
},
"sourceName": {
"type": "string",
"description": "Official dataset name."
},
"generationId": {
"type": "string",
"description": "Immutable published generation identifier."
},
"snapshotMonth": {
"type": "string",
"description": "Advertised publication month in YYYY-MM format, not an exact effective date."
},
"staleAfterDays": {
"type": "number",
"description": "Configured source-age warning threshold in days."
},
"includeLocation": {
"type": "boolean",
"description": "Generation import policy: city and ZIP kept at import, not what this response returns."
}
},
"description": "Per-call source provenance; topic mirror_status returns the full record.",
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Snapshot provenance, or null for static reference topics."
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Total matches after filtering, before paging."
},
"atPagingCap": {
"type": "boolean",
"description": "Matches remain but the next offset exceeds 10000; narrow the filters."
},
"piiRedacted": {
"type": "boolean",
"description": "Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Complete people or reference entries returned on this page. Fewer than limit means the results ended or the response size budget ended the page; while hasMore is true, the notice names the offset to continue from."
},
"appliedFilters": {
"type": "object",
"description": "Every effective normalized selector, filter, and paging value.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"description": "Normalized text filter."
},
{
"type": "number",
"description": "Normalized numeric filter."
},
{
"type": "array",
"items": {
"type": "string",
"description": "Normalized code."
},
"description": "Normalized rating filters."
}
]
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}faa_airmen_verify_remote_pilot — Faa Airmen Verify Remote Pilot
Find releasable FAA remote pilot certificate records by Unique ID or name. While the operator's personal-data redaction is on (the default), name mode needs lastName and firstName, nameMatch prefix and city or ZIP filters are rejected, and city and ZIP are withheld. Results establish certificate presence in the local snapshot; they do not establish recurrent-training currency, commercial operating authority, or current Part 107 eligibility.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mode"
],
"properties": {
"city": {
"type": "string",
"description": "Exact city, 1–60 visible characters; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset."
},
"mode": {
"enum": [
"id",
"name"
],
"type": "string",
"description": "id requires uniqueId and forbids nonblank name/location fields and explicit nameMatch; name requires lastName, plus firstName while personal-data redaction is on, and forbids nonblank uniqueId."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice."
},
"state": {
"type": "string",
"description": "Two-letter USPS code: one of the 50 states, DC, PR, GU, VI, MP, AS, FM, MH, PW, or the military AA, AE, AP; trimmed and uppercased. Airmen with foreign addresses carry no state. Blank means unset."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0,
"description": "Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap."
},
"zipCode": {
"type": "string",
"pattern": "^\\s*(?:[0-9]{5}(?:-?[0-9]{4})?\\s*)?$",
"description": "Five-digit ZIP or ZIP+4, preserving leading zeros; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset."
},
"lastName": {
"type": "string",
"description": "LAST NAME, which may include a suffix; the default words match finds SMITH JR from SMITH. 1–60 visible characters after normalization. Blank means unset."
},
"uniqueId": {
"type": "string",
"pattern": "^\\s*(?:[AaCc][0-9]{7}\\s*)?$",
"description": "Opaque FAA Unique ID from a faa_airmen_verify_certificate, faa_airmen_search_instructors, or faa_airmen_verify_remote_pilot result, A or C plus seven digits, for example A9999999; not a certificate number. Trimmed and uppercased."
},
"firstName": {
"type": "string",
"description": "FIRST NAME, which usually includes middle names; the default words match finds JOHN ROBERT from JOHN. 1–60 visible characters after normalization. Blank means unset."
},
"nameMatch": {
"enum": [
"words",
"exact",
"prefix"
],
"type": "string",
"description": "How each supplied name field matches; default words for name searches. words: the field equals the term or continues with a space after it; only a space separates words, so a hyphenated or apostrophe name is one word. exact: the whole field. prefix: the field begins with the term, also mid-word; rejected while personal-data redaction is on."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"matches",
"notice",
"provenance",
"appliedFilters",
"piiRedacted",
"totalCount",
"returnedCount",
"hasMore",
"nextOffset",
"atPagingCap"
]
},
{
"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_identity",
"invalid_filter",
"location_access_disabled",
"pii_redacted",
"mirror_missing",
"mirror_unavailable",
"mirror_rebuild_required"
],
"description": "Machine-readable failure mode. Declared by this tool: `invalid_identity`: Invalid or blank semantic identity selector. `invalid_filter`: Invalid code, location, or filter combination after normalization. `location_access_disabled`: Nonblank city or ZIP filter supplied while location access is disabled. `pii_redacted`: Personal-data redaction is on and the call sends city or ZIP, a name search without both names, or nameMatch prefix. `mirror_missing`: No complete published mirror generation is available. `mirror_unavailable`: Published generation is corrupt, missing, incompatible, or unreadable. `mirror_rebuild_required`: Location access is enabled but this generation discarded city and ZIP. 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": {}
},
"notice": {
"type": "string",
"description": "Snapshot limitations, absence guidance, source-quality notices for the returned records, paging notices (a clamped limit, the offset cap, or a page the response size budget ended before limit), and operational notices; may be empty."
},
"hasMore": {
"type": "boolean",
"description": "Whether another page is reachable within the offset cap."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"airman",
"remotePilotCertificates"
],
"properties": {
"airman": {
"type": "object",
"required": [
"uniqueId",
"firstName",
"lastName",
"sourceFamilies"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"uniqueId": {
"type": "string",
"description": "Opaque FAA Unique ID, not a certificate number."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this person."
},
"identityVariants": {
"type": "array",
"items": {
"type": "object",
"required": [
"firstName",
"lastName",
"sourceFamily",
"origin"
],
"properties": {
"city": {
"type": "string",
"description": "Source city; present only with operator-enabled location access and personal-data redaction off."
},
"state": {
"type": "string",
"description": "Source USPS state, territory, or military code, when reported; absent for foreign addresses."
},
"origin": {
"enum": [
"basic",
"certificate"
],
"type": "string",
"description": "Source record containing this distinct identity."
},
"region": {
"type": "string",
"description": "Source FAA region, when reported."
},
"country": {
"type": "string",
"description": "Source country, when reported."
},
"zipCode": {
"type": "string",
"description": "Source ZIP; present only with operator-enabled location access and personal-data redaction off."
},
"lastName": {
"type": "string",
"description": "Complete source LAST NAME, including suffixes."
},
"firstName": {
"type": "string",
"description": "Complete source FIRST NAME, including middle names."
},
"sourceFamily": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
}
},
"description": "Distinct source identity.",
"additionalProperties": false
},
"description": "All differing safe BASIC and certificate identities."
}
},
"description": "One person joined only by FAA Unique ID.",
"additionalProperties": false
},
"remotePilotCertificates": {
"type": "array",
"items": {
"type": "object",
"required": [
"recordId",
"sourceFamilies",
"type",
"ratings",
"typeRatings"
],
"properties": {
"type": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate type.",
"additionalProperties": false
},
"level": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "Certificate level, absent when blank in the source.",
"additionalProperties": false
},
"ratings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank rating slot in source order."
},
"recordId": {
"type": "string",
"description": "Stable certificate identifier within this snapshot."
},
"typeRatings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"raw",
"ordinal"
],
"properties": {
"raw": {
"type": "string",
"description": "Complete source rating value, including malformed values."
},
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"ordinal": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One-based source slot, retaining gaps and duplicate values."
},
"obsolete": {
"type": "boolean",
"description": "Whether FAA documentation marks this rating obsolete."
},
"levelCode": {
"type": "string",
"description": "Parsed source rating level, when reported."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
}
},
"description": "One nonblank positional rating.",
"additionalProperties": false
},
"description": "Every nonblank aircraft type-rating slot in source order."
},
"sourceFamilies": {
"type": "array",
"items": {
"enum": [
"pilot",
"nonpilot"
],
"type": "string",
"description": "FAA source file family."
},
"description": "Source families contributing this certificate."
},
"legacyExpireDateRaw": {
"type": "string",
"description": "Legacy source expiry field; does not establish instructor currency."
}
},
"description": "Complete source certificate.",
"additionalProperties": false
},
"description": "Every reported U certificate, preserving blank levels and all reported ratings."
}
},
"description": "Person and complete remote pilot certificates.",
"additionalProperties": false
},
"description": "Candidates with U certificate records in this snapshot."
},
"nextOffset": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "Next reachable offset, or null when no next page is available."
},
"provenance": {
"anyOf": [
{
"type": "object",
"required": [
"sourceName",
"snapshotMonth",
"ageDays",
"ageBasis",
"stale",
"staleAfterDays",
"generationId",
"includeLocation"
],
"properties": {
"stale": {
"type": "boolean",
"description": "Source exceeds the configured age threshold; not a credential judgment."
},
"ageDays": {
"type": "number",
"description": "Source age in days, independent of import time."
},
"ageBasis": {
"enum": [
"published_at",
"snapshot_month_start"
],
"type": "string",
"description": "Publication timestamp or conservative first-of-month age basis."
},
"sourceName": {
"type": "string",
"description": "Official dataset name."
},
"generationId": {
"type": "string",
"description": "Immutable published generation identifier."
},
"snapshotMonth": {
"type": "string",
"description": "Advertised publication month in YYYY-MM format, not an exact effective date."
},
"staleAfterDays": {
"type": "number",
"description": "Configured source-age warning threshold in days."
},
"includeLocation": {
"type": "boolean",
"description": "Generation import policy: city and ZIP kept at import, not what this response returns."
}
},
"description": "Per-call source provenance; topic mirror_status returns the full record.",
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Snapshot provenance, or null for static reference topics."
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Total matches after filtering, before paging."
},
"atPagingCap": {
"type": "boolean",
"description": "Matches remain but the next offset exceeds 10000; narrow the filters."
},
"piiRedacted": {
"type": "boolean",
"description": "Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Complete people or reference entries returned on this page. Fewer than limit means the results ended or the response size budget ended the page; while hasMore is true, the notice names the offset to continue from."
},
"appliedFilters": {
"type": "object",
"description": "Every effective normalized selector, filter, and paging value.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"description": "Normalized text filter."
},
{
"type": "number",
"description": "Normalized numeric filter."
},
{
"type": "array",
"items": {
"type": "string",
"description": "Normalized code."
},
"description": "Normalized rating filters."
}
]
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}faa_airmen_list_reference — Faa Airmen List Reference
Read FAA certificate and rating codes, observed aircraft type designators, identity guidance, medical guidance, or local mirror status. Use these references to construct lookup filters and interpret snapshot limits. Static topics work before mirror initialization.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"topic"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice."
},
"topic": {
"enum": [
"certificate_types",
"certificate_levels",
"ratings",
"type_ratings",
"identifiers",
"medical_guidance",
"mirror_status"
],
"type": "string",
"description": "One FAA vocabulary, interpretation guide, or mirror diagnostic topic."
},
"filter": {
"type": "string",
"description": "Literal case-insensitive substring over code and description, 1–80 normalized characters; vocabulary topics only. Blank means unset."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0,
"description": "Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"topic",
"entries",
"notice",
"provenance",
"appliedFilters",
"piiRedacted",
"totalCount",
"returnedCount",
"hasMore",
"nextOffset",
"atPagingCap"
]
},
{
"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_filter",
"mirror_missing",
"mirror_unavailable"
],
"description": "Machine-readable failure mode. Declared by this tool: `invalid_filter`: Invalid reference topic, filter text, or filter/topic combination after normalization. `mirror_missing`: No complete published mirror generation is available. `mirror_unavailable`: Published generation is corrupt, missing, incompatible, or unreadable. 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": {}
},
"topic": {
"enum": [
"certificate_types",
"certificate_levels",
"ratings",
"type_ratings",
"identifiers",
"medical_guidance",
"mirror_status"
],
"type": "string",
"description": "One FAA vocabulary, interpretation guide, or mirror diagnostic topic."
},
"notice": {
"type": "string",
"description": "Snapshot limitations, absence guidance, source-quality notices for the returned records, paging notices (a clamped limit, the offset cap, or a page the response size budget ended before limit), and operational notices; may be empty."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"sourceUrls"
],
"properties": {
"code": {
"type": "string",
"description": "Verbatim source code; unknown values remain usable."
},
"guidance": {
"type": "string",
"description": "Sourced interpretation or operational guidance."
},
"obsolete": {
"type": "boolean",
"description": "Whether the documented rating is obsolete."
},
"sourceUrls": {
"type": "array",
"items": {
"type": "string",
"description": "Official reference URL."
},
"description": "Official sources supporting this entry."
},
"description": {
"type": "string",
"description": "FAA documented meaning, absent for unknown codes."
},
"certificateType": {
"type": "string",
"description": "Certificate type qualifying a level code."
}
},
"description": "Documented code or sourced guidance.",
"additionalProperties": false
},
"description": "Complete matching reference entries for this page."
},
"hasMore": {
"type": "boolean",
"description": "Whether another page is reachable within the offset cap."
},
"nextOffset": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "Next reachable offset, or null when no next page is available."
},
"provenance": {
"anyOf": [
{
"type": "object",
"required": [
"sourceName",
"snapshotMonth",
"ageDays",
"ageBasis",
"stale",
"staleAfterDays",
"generationId",
"includeLocation"
],
"properties": {
"stale": {
"type": "boolean",
"description": "Source exceeds the configured age threshold; not a credential judgment."
},
"ageDays": {
"type": "number",
"description": "Source age in days, independent of import time."
},
"ageBasis": {
"enum": [
"published_at",
"snapshot_month_start"
],
"type": "string",
"description": "Publication timestamp or conservative first-of-month age basis."
},
"sourceName": {
"type": "string",
"description": "Official dataset name."
},
"generationId": {
"type": "string",
"description": "Immutable published generation identifier."
},
"snapshotMonth": {
"type": "string",
"description": "Advertised publication month in YYYY-MM format, not an exact effective date."
},
"staleAfterDays": {
"type": "number",
"description": "Configured source-age warning threshold in days."
},
"includeLocation": {
"type": "boolean",
"description": "Generation import policy: city and ZIP kept at import, not what this response returns."
}
},
"description": "Per-call source provenance; topic mirror_status returns the full record.",
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Snapshot provenance, or null for static reference topics."
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Total matches after filtering, before paging."
},
"atPagingCap": {
"type": "boolean",
"description": "Matches remain but the next offset exceeds 10000; narrow the filters."
},
"piiRedacted": {
"type": "boolean",
"description": "Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID."
},
"mirrorStatus": {
"type": "object",
"required": [
"state",
"refreshState"
],
"properties": {
"state": {
"enum": [
"missing",
"ready",
"unavailable"
],
"type": "string",
"description": "Published mirror availability."
},
"provenance": {
"type": "object",
"required": [
"archiveUrl",
"complete",
"counts",
"downloadedAt",
"fileCounts",
"generationId",
"importedAt",
"includeLocation",
"referenceVersion",
"schemaVersion",
"sha256",
"snapshotMonth",
"sourceName",
"sourcePageUrl",
"warnings",
"ageBasis",
"ageDays",
"stale",
"staleAfterDays"
],
"properties": {
"stale": {
"type": "boolean",
"description": "Source exceeds the configured age threshold; not a credential judgment."
},
"counts": {
"type": "object",
"required": [
"airmen",
"certificates",
"ratings",
"medicalRecords"
],
"properties": {
"airmen": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Imported distinct people."
},
"ratings": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Imported nonblank rating slots."
},
"certificates": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Imported distinct certificates."
},
"medicalRecords": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Imported distinct medical records."
}
},
"description": "Aggregate snapshot row counts.",
"additionalProperties": false
},
"sha256": {
"type": "string",
"description": "Downloaded archive SHA-256 digest."
},
"ageDays": {
"type": "number",
"description": "Source age in days, independent of import time."
},
"ageBasis": {
"enum": [
"published_at",
"snapshot_month_start"
],
"type": "string",
"description": "Publication timestamp or conservative first-of-month age basis."
},
"complete": {
"type": "boolean",
"const": true,
"description": "Only complete published snapshots are readable."
},
"warnings": {
"type": "object",
"required": [
"unknownCodes",
"malformedDates",
"malformedRatings"
],
"properties": {
"unknownCodes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Count of retained unknown source codes."
},
"malformedDates": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Count of retained malformed source dates."
},
"malformedRatings": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Count of retained malformed source ratings."
}
},
"description": "Aggregate source-quality warning counts.",
"additionalProperties": false
},
"archiveUrl": {
"type": "string",
"description": "Official archive download URL."
},
"fileCounts": {
"type": "object",
"description": "Source member filenames mapped to imported row counts.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"importedAt": {
"type": "string",
"description": "Snapshot import timestamp."
},
"sourceName": {
"type": "string",
"description": "Official dataset name."
},
"publishedAt": {
"type": "string",
"description": "FAA publication timestamp, only when explicitly supplied."
},
"downloadedAt": {
"type": "string",
"description": "Archive download timestamp."
},
"generationId": {
"type": "string",
"description": "Immutable published generation identifier."
},
"schemaVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Snapshot storage schema version."
},
"snapshotMonth": {
"type": "string",
"description": "Advertised publication month in YYYY-MM format, not an exact effective date."
},
"sourcePageUrl": {
"type": "string",
"description": "Official FAA dataset documentation URL."
},
"staleAfterDays": {
"type": "number",
"description": "Configured source-age warning threshold in days."
},
"includeLocation": {
"type": "boolean",
"description": "Generation import policy: city and ZIP kept at import, not what this response returns."
},
"referenceVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Packaged reference schema revision."
}
},
"description": "Latest successful generation provenance, when available.",
"additionalProperties": false
},
"refreshState": {
"enum": [
"idle",
"running",
"failed",
"unreadable"
],
"type": "string",
"description": "Most recent refresh lifecycle state: idle when none is recorded or the last one completed, running while one is in progress within its 40-minute deadline, failed when the last one did not complete (see lastRefreshFailure), unreadable when its record cannot be read or is not a valid refresh record, which leaves state and lookups unaffected; the entry guidance names the repair."
},
"lastRefreshFailure": {
"type": "string",
"description": "Classified stage of the last refresh that did not complete, such as acquisition, schema, validation, disk, lock, or integrity; cancelled when its caller stopped it, timeout when one of its own deadlines expired, interrupted when its process ended without recording a result. Never paths or raw exception text."
}
},
"description": "Safe diagnostic state present only for mirror_status.",
"additionalProperties": false
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Complete people or reference entries returned on this page. Fewer than limit means the results ended or the response size budget ended the page; while hasMore is true, the notice names the offset to continue from."
},
"appliedFilters": {
"type": "object",
"description": "Every effective normalized selector, filter, and paging value.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"description": "Normalized text filter."
},
{
"type": "number",
"description": "Normalized numeric filter."
},
{
"type": "array",
"items": {
"type": "string",
"description": "Normalized code."
},
"description": "Normalized rating filters."
}
]
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}Prompts
0 advertised
Resources
1 advertised
faa-airmen-registry-guide
Gates for faa_airmen_* lookups in the FAA releasable airmen snapshot. Covers turning CFII, MEI, ATP, and type-rating shorthand into codes, credentials with alternative codes, name matches that miss silently, reading a rating's own level, choosing the tool that returns a person's full certificate set, and wording a hit or a miss. Use when checking a pilot's, instructor's, or remote pilot's FAA certificates or ratings.
skill://faa-airmen-registry-guide/SKILL.mdio.modelcontextprotocol/skills
skill://{+path}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
- 728 ms
- 95th percentile latency
- 728 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 728 ms · metadata changed · 6 tool(s), 1 resource(s), 1 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http faa-airmen-registry-mcp-server https://faa-airmen-registry.caseyjhand.com/mcpCodex
codex mcp add faa-airmen-registry-mcp-server --url https://faa-airmen-registry.caseyjhand.com/mcpCursor
{
"mcpServers": {
"faa-airmen-registry-mcp-server": {
"url": "https://faa-airmen-registry.caseyjhand.com/mcp"
}
}
}Cline
{
"mcpServers": {
"faa-airmen-registry-mcp-server": {
"type": "streamableHttp",
"url": "https://faa-airmen-registry.caseyjhand.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"faa-airmen-registry-mcp-server": {
"type": "http",
"url": "https://faa-airmen-registry.caseyjhand.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http faa-airmen-registry-mcp-server https://faa-airmen-registry.caseyjhand.com/mcpClaude Desktop
{
"mcpServers": {
"faa-airmen-registry-mcp-server": {
"url": "https://faa-airmen-registry.caseyjhand.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"faa-airmen-registry-mcp-server": {
"serverUrl": "https://faa-airmen-registry.caseyjhand.com/mcp"
}
}
}Let your agent find its tools
Find servers like faa-airmen-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.