# io.github.cyanheads/faa-airmen-registry-mcp-server (remote · faa-airmen-registry.caseyjhand.com)

Search FAA airmen certificates, ratings, and informational medical records.

- Trust score: 80/100 (high trust)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `faa-airmen-registry.caseyjhand.com`: 80/100 (this document), [markdown](https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/faa-airmen-registry.md), [page](https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/faa-airmen-registry)
- npm · `@cyanheads/faa-airmen-registry-mcp-server`: 39/100, [markdown](https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/cyanheads-faa-airmen-registry-mcp-server.md), [page](https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/cyanheads-faa-airmen-registry-mcp-server)

## Channel facts

- Endpoint: `https://faa-airmen-registry.caseyjhand.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.3.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 73/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2876 tokens (~410/item across 7 items; 6 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 37/100
  - Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.cyanheads/faa-airmen-registry-mcp-server server?

io.github.cyanheads/faa-airmen-registry-mcp-server is a hosted endpoint at https://faa-airmen-registry.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http cyanheads-faa-airmen-registry-mcp-server 'https://faa-airmen-registry.caseyjhand.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "cyanheads-faa-airmen-registry-mcp-server": {
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "cyanheads-faa-airmen-registry-mcp-server": {
      "type": "http",
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.cyanheads-faa-airmen-registry-mcp-server]
url = "https://faa-airmen-registry.caseyjhand.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-faa-airmen-registry-mcp-server": {
      "type": "remote",
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cyanheads-faa-airmen-registry-mcp-server --url 'https://faa-airmen-registry.caseyjhand.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  cyanheads-faa-airmen-registry-mcp-server:
    url: "https://faa-airmen-registry.caseyjhand.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "cyanheads-faa-airmen-registry-mcp-server": {
      "Transport": "http",
      "Url": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add cyanheads-faa-airmen-registry-mcp-server -t streamable-http -u 'https://faa-airmen-registry.caseyjhand.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "cyanheads-faa-airmen-registry-mcp-server": {
      "type": "http",
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 76, +3)

- [security] Tool “faa_airmen_get_type_ratings” rewrote its description, which is the text the model reads
- [security] Tool “faa_airmen_check_medical_status” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 2447 → 2876
- [functional improvement] Schema quality: 407 → 363
- [functional] First check of Schema quality: 100
- [functional] New resource “faa-airmen-registry-guide”
- [functional] Server version: 0.3.0 → 0.3.1
- [functional] Server version: 0.2.1 → 0.3.0
- [cosmetic] “faa_airmen_verify_remote_pilot” reworded the description of “state”
- [cosmetic] “faa_airmen_verify_remote_pilot” reworded the description of “uniqueId”
- [cosmetic] “faa_airmen_verify_certificate” reworded the description of “uniqueId”
- [cosmetic] “faa_airmen_verify_certificate” reworded the description of “state”
- [cosmetic] “faa_airmen_verify_certificate” reworded the description of “ratingCodes”
- [cosmetic] “faa_airmen_search_instructors” reworded the description of “state”
- [cosmetic] “faa_airmen_search_instructors” reworded the description of “ratingCodes”
- [cosmetic] “faa_airmen_get_type_ratings” reworded the description of “uniqueId”
- [cosmetic] “faa_airmen_check_medical_status” reworded the description of “uniqueId”

### 2026-10-27 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 72, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-25 (score 72)

First indexed and scored.

## MCP tools (6)

### `faa_airmen_verify_certificate` (~843 tokens)

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.

Input parameters:

- `certificateLevel` (string): 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…
- `certificateType` (string): 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; sel…
- `city` (string): Exact city, 1–60 visible characters; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset.
- `firstName` (string): 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.
- `lastName` (string): 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.
- `limit` (integer): Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice.
- `mode` (string, required): 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.
- `nameMatch` (string): 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…
- `offset` (integer): Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap.
- `ratingCodes` (array): 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…
- `state` (string): 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.
- `typeRatings` (array): One to eleven type-rating designators, repeats collapsed; every designator must occur on the same certificate as every other requested credential.
- `uniqueId` (string): 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 n…
- `zipCode` (string): 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.

Output parameters:

- `appliedFilters` (object): Every effective normalized selector, filter, and paging value.
- `atPagingCap` (boolean): Matches remain but the next offset exceeds 10000; narrow the filters.
- `error` (object): Present when the call failed. Absent on success.
- `hasMore` (boolean): Whether another page is reachable within the offset cap.
- `matches` (array): Separate identity candidates; never infer a single person from multiple matches.
- `nextOffset`: Next reachable offset, or null when no next page is available.
- `notice` (string): 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 o…
- `piiRedacted` (boolean): Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID.
- `provenance`: Snapshot provenance, or null for static reference topics.
- `returnedCount` (integer): 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…
- `totalCount` (integer): Total matches after filtering, before paging.

### `faa_airmen_get_type_ratings` (~183 tokens)

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.

Input parameters:

- `uniqueId` (string, required): 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 n…

Output parameters:

- `airman` (object): Matched person, absent for a missing ID.
- `appliedFilters` (object): Every effective normalized selector, filter, and paging value.
- `certificates` (array): All pilot-family certificates with complete rating arrays; empty when the person has no reported pilot-family certificate.
- `error` (object): Present when the call failed. Absent on success.
- `found` (boolean): Whether this Unique ID occurs in the releasable snapshot.
- `notice` (string): Snapshot limitations, absence guidance, source-quality notices for the returned records, and operational notices; may be empty.
- `piiRedacted` (boolean): Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID.
- `provenance`: Snapshot provenance, or null for static reference topics.

### `faa_airmen_check_medical_status` (~150 tokens)

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

Input parameters:

- `uniqueId` (string, required): 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 n…

Output parameters:

- `airman` (object): Matched person, absent for a missing ID.
- `appliedFilters` (object): Every effective normalized selector, filter, and paging value.
- `disclaimer` (string): Medical information limitations, present on every result.
- `error` (object): Present when the call failed. Absent on success.
- `found` (boolean): Whether this Unique ID occurs in the releasable snapshot.
- `hasReportedMedicalFields` (boolean): Whether any medical fields were reported; absent for a missing person, never an adverse finding.
- `medicalRecords` (array): All distinct reported medical records; empty when a known person has no reported medical fields.
- `notice` (string): Snapshot limitations, absence guidance, source-quality notices for the returned records, and operational notices; may be empty.
- `piiRedacted` (boolean): Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID.
- `provenance`: Snapshot provenance, or null for static reference topics.

### `faa_airmen_search_instructors` (~591 tokens)

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.

Input parameters:

- `city` (string): Exact city, 1–60 visible characters; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset.
- `firstName` (string): 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.
- `instructorType` (string): Select flight F, ground G, or both instructor certificate types; default both.
- `lastName` (string): 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.
- `limit` (integer): Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice.
- `nameMatch` (string): 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…
- `offset` (integer): Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap.
- `ratingCodes` (array): 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) certifica…
- `state` (string): 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.
- `zipCode` (string): 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.

Output parameters:

- `appliedFilters` (object): Every effective normalized selector, filter, and paging value.
- `atPagingCap` (boolean): Matches remain but the next offset exceeds 10000; narrow the filters.
- `error` (object): Present when the call failed. Absent on success.
- `hasMore` (boolean): Whether another page is reachable within the offset cap.
- `matches` (array): Matching instructor candidates; certificate presence does not establish currency.
- `nextOffset`: Next reachable offset, or null when no next page is available.
- `notice` (string): 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 o…
- `piiRedacted` (boolean): Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID.
- `provenance`: Snapshot provenance, or null for static reference topics.
- `returnedCount` (integer): 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…
- `totalCount` (integer): Total matches after filtering, before paging.

### `faa_airmen_verify_remote_pilot` (~574 tokens)

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.

Input parameters:

- `city` (string): Exact city, 1–60 visible characters; requires operator-enabled location access and is rejected while personal-data redaction is on. Blank means unset.
- `firstName` (string): 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.
- `lastName` (string): 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.
- `limit` (integer): Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice.
- `mode` (string, required): 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.
- `nameMatch` (string): 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…
- `offset` (integer): Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap.
- `state` (string): 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.
- `uniqueId` (string): 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 n…
- `zipCode` (string): 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.

Output parameters:

- `appliedFilters` (object): Every effective normalized selector, filter, and paging value.
- `atPagingCap` (boolean): Matches remain but the next offset exceeds 10000; narrow the filters.
- `error` (object): Present when the call failed. Absent on success.
- `hasMore` (boolean): Whether another page is reachable within the offset cap.
- `matches` (array): Candidates with U certificate records in this snapshot.
- `nextOffset`: Next reachable offset, or null when no next page is available.
- `notice` (string): 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 o…
- `piiRedacted` (boolean): Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID.
- `provenance`: Snapshot provenance, or null for static reference topics.
- `returnedCount` (integer): 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…
- `totalCount` (integer): Total matches after filtering, before paging.

### `faa_airmen_list_reference` (~168 tokens)

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.

Input parameters:

- `filter` (string): Literal case-insensitive substring over code and description, 1–80 normalized characters; vocabulary topics only. Blank means unset.
- `limit` (integer): Maximum complete people or reference entries per page; default 10, maximum 50. A larger limit returns at most 50, with a notice.
- `offset` (integer): Zero-based offset; default 0, maximum 10000. Follow nextOffset or narrow filters at the cap.
- `topic` (string, required): One FAA vocabulary, interpretation guide, or mirror diagnostic topic.

Output parameters:

- `appliedFilters` (object): Every effective normalized selector, filter, and paging value.
- `atPagingCap` (boolean): Matches remain but the next offset exceeds 10000; narrow the filters.
- `entries` (array): Complete matching reference entries for this page.
- `error` (object): Present when the call failed. Absent on success.
- `hasMore` (boolean): Whether another page is reachable within the offset cap.
- `mirrorStatus` (object): Safe diagnostic state present only for mirror_status.
- `nextOffset`: Next reachable offset, or null when no next page is available.
- `notice` (string): 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 o…
- `piiRedacted` (boolean): Operator personal-data redaction: true withholds city, ZIP, and medical fields and limits searches to a full name or Unique ID.
- `provenance`: Snapshot provenance, or null for static reference topics.
- `returnedCount` (integer): 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…
- `topic` (string): One FAA vocabulary, interpretation guide, or mirror diagnostic topic.
- `totalCount` (integer): Total matches after filtering, before paging.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/faa-airmen-registry#diagnostics

## Score history

- 2026-11-05: 80
- 2026-11-04: 79
- 2026-11-03: 79
- 2026-11-02: 78
- 2026-11-01: 78
- 2026-10-31: 77
- 2026-10-30: 77
- 2026-10-29: 76
- 2026-10-28: 73
- 2026-10-27: 73
- 2026-10-26: 72
- 2026-10-25: 72

## Common questions

### What is the io.github.cyanheads/faa-airmen-registry-mcp-server server?

io.github.cyanheads/faa-airmen-registry-mcp-server is listed in the public MCP registry as io.github.cyanheads/faa-airmen-registry-mcp-server. Search FAA airmen certificates, ratings, and informational medical records. This page covers its hosted endpoint (https://faa-airmen-registry.caseyjhand.com/mcp).

### Is the io.github.cyanheads/faa-airmen-registry-mcp-server server safe to use?

io.github.cyanheads/faa-airmen-registry-mcp-server scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.cyanheads/faa-airmen-registry-mcp-server server expose?

io.github.cyanheads/faa-airmen-registry-mcp-server exposes 6 tools: faa_airmen_verify_certificate, faa_airmen_get_type_ratings, faa_airmen_check_medical_status, faa_airmen_search_instructors, faa_airmen_verify_remote_pilot, faa_airmen_list_reference. Their descriptions and schemas cost roughly 2,509 tokens of context every time the server is loaded.

### Does the io.github.cyanheads/faa-airmen-registry-mcp-server server require authentication?

No. We connected to io.github.cyanheads/faa-airmen-registry-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the io.github.cyanheads/faa-airmen-registry-mcp-server server still maintained?

io.github.cyanheads/faa-airmen-registry-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://faa-airmen-registry.caseyjhand.com/mcp
- Repository: https://github.com/cyanheads/faa-airmen-registry-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/faa-airmen-registry.xml
- Changelog JSON feed: https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/faa-airmen-registry.json
- HTML version of this page: https://verifymcp.io/servers/cyanheads-faa-airmen-registry-mcp-server/faa-airmen-registry
