ourairports_search_runways
ActiveTool of io.github.cyanheads/ourairports-mcp-server
Search 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.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"type": {
"enum": [
"large_airport",
"medium_airport",
"small_airport",
"heliport",
"seaplane_base",
"balloonport",
"closed"
],
"type": "string",
"description": "Restrict to runways at airports of one type: large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport, or closed."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum runway rows to return (1–100). Defaults to OURAIRPORTS_DEFAULT_SEARCH_LIMIT (20)."
},
"region": {
"type": "string",
"minLength": 1,
"description": "ISO 3166-2 region code filter (e.g. US-WA). Exact match, case-insensitive; surrounding whitespace is ignored."
},
"country": {
"type": "string",
"minLength": 1,
"description": "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": {
"type": "boolean",
"description": "Filter by runway lighting: true for lighted runways only, false for unlighted only. Omit to include both."
},
"surface": {
"type": "string",
"minLength": 1,
"description": "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": {
"type": "number",
"minimum": 0,
"description": "Minimum runway width in feet (inclusive). Runways with an unknown width are excluded when this is set, never assumed to pass."
},
"min_length_ft": {
"type": "number",
"minimum": 0,
"description": "Minimum runway length in feet (inclusive). Runways with an unknown length are excluded when this is set, never assumed to pass."
},
"include_closed_runways": {
"type": "boolean",
"default": false,
"description": "Include runways flagged closed. Off by default."
},
"include_closed_airports": {
"type": "boolean",
"default": false,
"description": "Include runways at airports of type \"closed\". Off by default."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
io.github.cyanheads/ourairports-mcp-server
https://github.com/cyanheads/ourairports-mcp-server
2/7 registries