protogrid

Search / io.github.cyanheads/faa-airmen-registry-mcp-server

faa-airmen-registry-mcp-server

R0· no sign-in

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

v0.3.2 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality87good
Trust94of 100
Uptime, 30 days100%
Latency p50345 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "faa-airmen-registry-mcp-server": {
      "type": "http",
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  }
}
claude mcp add --transport http faa-airmen-registry-mcp-server https://faa-airmen-registry.caseyjhand.com/mcp
[mcp_servers.faa-airmen-registry-mcp-server]
url = "https://faa-airmen-registry.caseyjhand.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "faa-airmen-registry-mcp-server": {
      "type": "remote",
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "faa-airmen-registry-mcp-server": {
      "type": "http",
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=faa-airmen-registry-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZmFhLWFpcm1lbi1yZWdpc3RyeS5jYXNleWpoYW5kLmNvbS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "faa-airmen-registry-mcp-server": {
      "type": "http",
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "faa-airmen-registry-mcp-server": {
      "httpUrl": "https://faa-airmen-registry.caseyjhand.com/mcp"
    }
  }
}
extensions:
  "faa-airmen-registry-mcp-server":
    enabled: true
    name: "faa-airmen-registry-mcp-server"
    type: streamable_http
    uri: "https://faa-airmen-registry.caseyjhand.com/mcp"
    timeout: 300

Quality 87 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene88 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations6 of 6 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: faa_airmen_check_medical_status (destructiveHint); faa_airmen_list_reference (destructiveHint); faa_airmen_get_type_ratings (destructiveHint); …
  • pass
    tools.token_costabout 3,843 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stability83 · weight 15
  • warn
    stability.changes6 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
  • pass
    stability.new_linksno tool change named a new site
dependenciesn/a · weight 15

6 tools, about 3,843 tokens to load them all · tool set 270db3780c05 · tools last changed 2026-10-29 · checked 2026-11-14 07:03 UTC

Tool changes

  • faa_airmen_list_referencechangedoutput schema
  • faa_airmen_verify_remote_pilotchangedinput schema, output schema
  • faa_airmen_search_instructorschangedinput schema, output schema
  • faa_airmen_check_medical_statuschangeddescription, input schema, output schema
    before

    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 faa_airmen_verify_certificate. Every call is rejected while the operator's personal-data redaction is on (the default).

    after · 87% of words in common

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

  • faa_airmen_get_type_ratingschangeddescription, input schema, output schema
    before

    Read all source aircraft type, category/class, and instrument ratings for one FAA airman Unique ID. Get the ID from faa_airmen_verify_certificate. Ratings retain their source certificate type and level and do not establish current operating privileges.

    after · 50% of words in common

    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.

  • faa_airmen_verify_certificatechangedinput schema, output schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance80
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +reachable +uptime-100% +updated-3d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://faa-airmen-registry.caseyjhand.com/mcp streamable-httpnoneyes100%345 ms2026-07-282026-11-14
packageregistryversionruntimesecrets
@cyanheads/faa-airmen-registry-mcp-servernpm0.3.2npx
@cyanheads/faa-airmen-registry-mcp-servernpm0.3.2npx

Tools (6)

faa_airmen_check_medical_statusread-onlyRead 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).
faa_airmen_get_type_ratingsread-onlyRead 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.
faa_airmen_list_referenceread-onlyRead 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.
faa_airmen_search_instructorsread-onlyFind 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.
faa_airmen_verify_certificateread-onlyFind 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.
faa_airmen_verify_remote_pilotread-onlyFind 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.

Schemas: list_tools.

Similar MCP servers

More from io.github.cyanheads

And 153 more from this publisher.

Official server.json
{
  "name": "io.github.cyanheads/faa-airmen-registry-mcp-server",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://faa-airmen-registry.caseyjhand.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.3.2",
  "packages": [
    {
      "version": "0.3.2",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@cyanheads/faa-airmen-registry-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "FAA_AIRMEN_MIRROR_DIR",
          "format": "string",
          "description": "Persistent local mirror directory; defaults to the platform user-data directory."
        },
        {
          "name": "FAA_AIRMEN_INCLUDE_LOCATION",
          "format": "string",
          "default": "false",
          "description": "Opt in to city and ZIP import; display and filtering also need FAA_AIRMEN_REDACT_PII=false."
        },
        {
          "name": "FAA_AIRMEN_REDACT_PII",
          "format": "string",
          "default": "true",
          "description": "Serving-time personal-data redaction, on by default; only 'false' turns it off."
        },
        {
          "name": "FAA_AIRMEN_STALE_AFTER_DAYS",
          "format": "string",
          "default": "45",
          "description": "Source-age warning threshold in days, integer 1–366."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    },
    {
      "version": "0.3.2",
      "transport": {
        "url": "http://localhost:3010/mcp",
        "type": "streamable-http"
      },
      "identifier": "@cyanheads/faa-airmen-registry-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "FAA_AIRMEN_MIRROR_DIR",
          "format": "string",
          "description": "Persistent local mirror directory; defaults to the platform user-data directory."
        },
        {
          "name": "FAA_AIRMEN_INCLUDE_LOCATION",
          "format": "string",
          "default": "false",
          "description": "Opt in to city and ZIP import; display and filtering also need FAA_AIRMEN_REDACT_PII=false."
        },
        {
          "name": "FAA_AIRMEN_REDACT_PII",
          "format": "string",
          "default": "true",
          "description": "Serving-time personal-data redaction, on by default; only 'false' turns it off."
        },
        {
          "name": "FAA_AIRMEN_STALE_AFTER_DAYS",
          "format": "string",
          "default": "45",
          "description": "Source-age warning threshold in days, integer 1–366."
        },
        {
          "name": "MCP_TRANSPORT_TYPE",
          "value": "http",
          "format": "string",
          "description": "Selects the HTTP transport."
        },
        {
          "name": "MCP_HTTP_HOST",
          "format": "string",
          "default": "127.0.0.1",
          "description": "The hostname for the HTTP server."
        },
        {
          "name": "MCP_HTTP_PORT",
          "format": "string",
          "default": "3010",
          "description": "The port to run the HTTP server on."
        },
        {
          "name": "MCP_HTTP_ENDPOINT_PATH",
          "format": "string",
          "default": "/mcp",
          "description": "The endpoint path for the MCP server."
        },
        {
          "name": "MCP_AUTH_MODE",
          "format": "string",
          "default": "none",
          "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/cyanheads/faa-airmen-registry-mcp-server",
    "source": "github"
  },
  "description": "Search FAA airmen certificates, ratings, and informational medical records."
}