Ourairports MCP Server

Offline global aviation reference — airports, runways, navaids, frequencies from OurAirports.

Remote serverstreamable-http

What is the Ourairports MCP server?

Most cloud and infrastructure work still happens through a UI a human drives. Ourairports MCP server moves it into the conversation instead. Offline global aviation reference — airports, runways, navaids, frequencies from OurAirports.

The short version

ourairports-mcp-server is the static aviation reference layer for resolving airport identifiers and grounding coordinates. It answers what exists — the catalog of airports, their codes, runways, navaids, and radio frequencies — to complement live aviation services that answer what is happening (weather, positions).

  • Declarative tool and resource definitions — single file per primitive, framework handles registration and validation
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Pluggable auth: none, jwt, oauth
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • Runs locally (stdio/HTTP) or on Cloudflare Workers from the same codebase

The tools it exposes

The server publishes 8 tools. What each one is for:

  • ourairports_search_airports — Full-text and faceted search over the airport corpus by name, municipality, country, region, or type. Ranked summaries, closed airports excluded by
  • ourairports_search_runways — Search runways across all airports by surface, length, width, and lighting, joined back to their airports and filtered by country, region, or airport
  • ourairports_get_airport — Full record for one airport resolved by any code (IATA/ICAO/GPS/local/ident), with its runways and radio frequencies inline
  • ourairports_find_airports — Airports within a radius of a coordinate, ranked nearest-first by great-circle distance, with distance and bearing
  • ourairports_find_navaids — Navigation aids (VOR, VOR-DME, DME, NDB, NDB-DME, TACAN, VORTAC) near a coordinate or serving a specific airport
  • ourairports_list_countries — Countries present in the dataset with ISO codes and airport counts; optional continent filter and nested regions. The lookup table for valid
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — 4. Fetch and bundle the dataset (writes the six CSVs into data/):

What it needs from you

Configuration is passed through the environment: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, MCP_HTTP_ENDPOINT_PATH. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • Bun v1.3.0 or higher (or Node.js v24+). - No API key, account, or external service — all data is bundled.

Getting it running

Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.

How it compares

This sits in the cloud and infrastructure group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Ourairports's toolset — ourairports_search_airports, ourairports_search_runways, ourairports_get_airport and 5 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Things to watch

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
ourairports_search_airportsFull-text and faceted search over the airport corpus by name, municipality, country, region, or type. Ranked summaries, closed airports excluded by default.
ourairports_search_runwaysSearch runways across all airports by surface, length, width, and lighting, joined back to their airports and filtered by country, region, or airport type. One flat { airport, runway } row per matching runway.
ourairports_get_airportFull record for one airport resolved by any code (IATA/ICAO/GPS/local/ident), with its runways and radio frequencies inline.
ourairports_find_airportsAirports within a radius of a coordinate, ranked nearest-first by great-circle distance, with distance and bearing.
ourairports_find_navaidsNavigation aids (VOR, VOR-DME, DME, NDB, NDB-DME, TACAN, VORTAC) near a coordinate or serving a specific airport.
ourairports_list_countriesCountries present in the dataset with ISO codes and airport counts; optional continent filter and nested regions. The lookup table for valid country/region filter values.
PrerequisitesThe Prerequisites tool exposed by this server.
Installation4. **Fetch and bundle the dataset** (writes the six CSVs into data/):

How to install the Ourairports MCP server

{
  "mcpServers": {
    "ourairports-mcp-server": {
      "type": "streamable-http",
      "url": "https://ourairports.caseyjhand.com/mcp"
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Bun v1.3.0 or higher (or Node.js v24+). - No API key, account, or external service — all data is bundled.
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
MCP_HTTP_ENDPOINT_PATHFilesystem location the server is allowed to use.Optional

Example prompts to try

  • Use Ourairports to ourairports search airports.
  • Use Ourairports to ourairports search runways.
  • Use Ourairports to ourairports get airport.

Frequently asked questions

It connects Ourairports to MCP-compatible AI assistants such as Claude and Cursor, exposing 8 tools (ourairports_search_airports, ourairports_search_runways, ourairports_get_airport, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Ourairports directly.