ourairports-mcp-server
ourairports_search_runwaysSearch runways across the whole bundled OurAirports corpus by attribute, joined back to their airports — the cross-airport counterpart to ourairports_get_airport (which returns runways for one already-known airport). Filter by airport facets (country, region, type) and runway facets (surface, min_length_ft, min_width_ft, lighted). Returns one flat {airport, runway} row per matching runway, so an airport with three matching runways contributes three rows. surface is a case-insensitive substring match against the raw upstream surface string, not an exact code — the runway surface must CONTAIN your text, so a shorter fragment matches more variants (no controlled vocabulary: "asp" matches ASP, ASPH, and Asphalt). A runway whose length or width is unknown is excluded when the matching min_*ft filter is set — the data can never confirm it meets the threshold. Closed airports and closed runways are both excluded unless their include* flag is set. Use ourairports_list_countries for valid country/region codes. OurAirports is community-edited — not authoritative for flight operations.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Restrict to runways at airports of one type: large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport, or closed. | |
| limit | No | Maximum runway rows to return (1–100). Defaults to OURAIRPORTS_DEFAULT_SEARCH_LIMIT (20). | |
| region | No | ISO 3166-2 region code filter (e.g. US-WA). Exact match, case-insensitive; surrounding whitespace is ignored. | |
| country | No | ISO 3166-1 alpha-2 country code filter (e.g. US). Exact match, case-insensitive; surrounding whitespace is ignored. Discover codes with ourairports_list_countries. | |
| lighted | No | Filter by runway lighting: true for lighted runways only, false for unlighted only. Omit to include both. | |
| surface | No | Surface filter — case-insensitive substring match against the raw upstream surface string (free text, no controlled vocabulary; ~654 distinct values). Match the literal text as recorded: "asp" matches ASP/ASPH/Asphalt/ASPH-G, "con" matches CON/Concrete, "turf" or "grs" for grass strips. A shorter fragment matches more variants; there is no enum or reference tool for surfaces. | |
| min_width_ft | No | Minimum runway width in feet (inclusive). Runways with an unknown width are excluded when this is set, never assumed to pass. | |
| min_length_ft | No | Minimum runway length in feet (inclusive). Runways with an unknown length are excluded when this is set, never assumed to pass. | |
| include_closed_runways | No | Include runways flagged closed. Off by default. | |
| include_closed_airports | No | Include runways at airports of type "closed". Off by default. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cap | No | The limit that was applied. Present only when results were truncated. | |
| error | No | Present when the call failed. Absent on success. | |
| shown | No | Number of runway rows returned. Present only when results were truncated. | |
| notice | No | Guidance when nothing matched or results were capped — how to broaden or narrow. | |
| runways | No | Matching runways, each paired with its airport. One row per runway — an airport with N matching runways contributes N rows. | |
| truncated | No | Present and true only when more runways matched than were returned. | |
| totalCount | No | Total matching runways before the limit was applied. |