Skip to main content
Glama

ourairports-mcp-server

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: spatial airport search, navaid lookup (spatial or by airport), airport details by code, country listing, and free-text airport search. No overlap in functionality.

Naming Consistency5/5

All tools follow the 'ourairports_verb_noun' pattern consistently, e.g., ourairports_find_airports, ourairports_get_airport, ourairports_search_airports. The naming is predictable and clear.

Tool Count5/5

Five tools is well-scoped for a reference database server covering spatial queries, detail lookup, search, and metadata. Each tool earns its place without unnecessary duplication.

Completeness4/5

The tool surface covers the core use cases: finding airports geographically, getting details by code, searching by text, listing countries, and finding navaids. Minor gaps exist, such as no dedicated tool to list all airports directly, but search can likely handle broad queries.

Available Tools

5 tools
ourairports_find_airportsourairports-mcp-serverA
Read-onlyIdempotent
Inspect

Find airports within a radius of a latitude/longitude, ranked nearest-first by great-circle distance, each with its distance (km) and bearing (degrees true) from the query point. The grounding tool for "nearest airport to here" — pair it with a live aviation server to fetch weather or positions for the result. Takes a coordinate only: no geocoding, so resolve place names to lat/lon upstream first (e.g. an OpenStreetMap or Open-Meteo geocode tool). Closed airports are excluded unless include_closed is set. OurAirports is community-edited — not authoritative for flight operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoRestrict to one airport type (e.g. large_airport for major fields only).
limitNoMaximum airports to return (1–50). Defaults to 10.
latitudeYesQuery point latitude in decimal degrees (WGS84), −90 to 90.
longitudeYesQuery point longitude in decimal degrees (WGS84), −180 to 180.
radius_kmNoSearch radius in kilometers (1–500). Defaults to 100.
include_closedNoInclude airports of type "closed". Off by default.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoGuidance when no airport fell within the radius — e.g. widen radius_km.
airportsYesAirports within the radius, nearest-first.
totalCountYesNumber of airports returned within the radius.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds critical behavioral context: community-edited data (not authoritative), exclusion of closed airports by default, and output fields (distance and bearing). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each purposeful: operation details, role suggestion, input requirement, exclusions and caveat. No wasted words, front-loaded with key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 params, output schema, annotations), the description covers purpose, usage context, input constraints, behavioral nuances, data quality warning, and next-step suggestions. Fully sufficient for agent selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description doesn't need to repeat parameter details. However, it adds value by clarifying that the tool takes coordinates only (no geocoding) and that place names must be resolved upstream, which goes beyond the schema's 'latitude' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Find airports within a radius') and resources, clearly distinguishes from sibling tools like search and get, and explicitly positions itself as the 'grounding tool for nearest airport to here.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: no geocoding, resolve place names upstream, pair with live aviation server, and includes when to set include_closed. Does not explicitly list when not to use it, but the context of siblings is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ourairports_find_navaidsourairports-mcp-serverA
Read-onlyIdempotent
Inspect

Find navigation aids (VOR, VOR-DME, DME, NDB, NDB-DME, TACAN, VORTAC) two ways: spatially, by passing latitude+longitude (with an optional radius_km); or relationally, by passing airport_code to get the navaids that serve that airport. Supply exactly one mode — both or neither is a validation error. Coordinate mode ranks nearest-first with distance (km) and bearing (degrees true). Frequencies are stored in kHz for every navaid type (a VOR on 114.5 MHz reads frequencyKhz 114500) and are also surfaced in MHz. Airport mode returns an empty list (not an error) when the airport exists but has no associated navaids; an unknown airport_code is an error. OurAirports is community-edited — not authoritative for flight operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoRestrict to one navaid type: NDB, VOR-DME, VORTAC, TACAN, VOR, DME, or NDB-DME.
limitNoMaximum navaids to return (1–50). Defaults to OURAIRPORTS_DEFAULT_SEARCH_LIMIT (20).
latitudeNoCoordinate mode: query point latitude (−90 to 90). Provide with longitude; mutually exclusive with airport_code.
longitudeNoCoordinate mode: query point longitude (−180 to 180). Provide with latitude.
radius_kmNoCoordinate mode: search radius in kilometers (1–500). Defaults to 100. Ignored in airport mode.
airport_codeNoAirport mode: any airport code (IATA/ICAO/GPS/local/ident); returns the navaids serving that airport. Mutually exclusive with latitude/longitude.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesWhich query mode was used.
noticeNoGuidance when no navaids matched (empty radius, or airport found but unserved).
navaidsYesMatching navaids. Nearest-first in coordinate mode; in airport-association order in airport mode.
totalCountYesNumber of navaids returned.
airportIdentYesIn airport mode, the resolved airport ident the navaids were matched against; null in coordinate mode.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses read-only, idempotent nature (consistent with annotations), frequency unit duality, and data source caveat (community-edited, not authoritative). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with modes; each subsequent sentence adds necessary detail. Efficient but could be slightly tighter; still well-structured for agent consumption.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all aspects: two modes, validation, defaults, frequency format, error/empty behavior, and data source caveat. Output schema exists, so return values need not be detailed. Complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds meaningful context: mode interdependencies, default radius, validation rules, and coordinate ranking. Adds value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it finds navigation aids with two distinct modes (spatial and relational) and lists navaid types. Differentiates from sibling tools (airports, countries) by focusing on navaids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use exactly one mode and warns against using both or neither. Provides edge cases for airport mode (empty list vs. error). Does not directly compare to sibling tools, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ourairports_get_airportourairports-mcp-serverA
Read-onlyIdempotent
Inspect

Fetch the full record for one airport resolved by ANY code — IATA (SEA), ICAO (KSEA), GPS, national/local, or the OurAirports ident — with its runways and radio frequencies inline. The single code param is resolved case-insensitively across all five identifier spaces (priority: ident, then ICAO, IATA, GPS, local). The response always echoes the airport's complete code set and a resolution_note naming which space matched, so a wrong resolution from an ambiguous national code is self-correcting (re-query with the IATA or ICAO code, or the ident). Absent codes are reported as null, never an error. Closed airports always resolve. OurAirports is community-edited — not authoritative for flight operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesAny airport code: IATA (SEA), ICAO (KSEA), GPS code, national/local code, or the OurAirports ident. Case-insensitive.
includeNoWhich related records to include inline. Defaults to both. Pass a subset to trim the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription
airportYesThe resolved airport record. Codes the airport lacks are null.
runwaysYesRunways for the airport (empty array when none recorded, or when runways were not requested in `include`).
frequenciesYesRadio frequencies in MHz (empty array when none recorded, or when frequencies were not requested in `include`).
resolvedViaYesWhich identifier space the code matched: ident, icao_code, iata_code, gps_code, or local_code.
resolutionNoteYesHuman-readable note on how the code resolved, including an ambiguity warning for shared national codes.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent), the description adds critical behavioral context: resolution priority order, null for absent codes, closed airports always resolve, community-edited source, and response includes resolution_note for self-correction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph packs all information effectively, but slightly denser than necessary; could benefit from structured bullet points for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given existing output schema, description covers all essential behavioral details: code resolution, error handling, data source caveats, and inline records.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but description enhances with code resolution order and case-insensitivity for 'code', and trimming response with 'include' subset.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch the full record for one airport resolved by ANY code', specifying the verb (fetch), resource (airport), and distinguishing it from sibling tools like search by focusing on single airport resolution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on resolution priority and handling ambiguous codes ('re-query with IATA or ICAO code'), but does not explicitly state when not to use it compared to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ourairports_list_countriesourairports-mcp-serverA
Read-onlyIdempotent
Inspect

List the countries present in the bundled OurAirports dataset with their ISO 3166-1 alpha-2 codes and airport counts. This is the lookup table for valid country (and, with include_regions, region) filter values used by ourairports_search_airports. Optionally restrict to a continent or nest each country's regions. Counts exclude closed airports.

ParametersJSON Schema
NameRequiredDescriptionDefault
continentNoRestrict to one continent: AF (Africa), AN (Antarctica), AS (Asia), EU (Europe), NA (North America), OC (Oceania), SA (South America).
include_regionsNoWhen true, nest each country's ISO 3166-2 regions (with airport counts) under it. Off by default to keep the response compact.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoGuidance when the continent filter matched no countries.
countriesYesCountries present in the dataset, sorted by name.
totalCountYesNumber of countries returned.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare read-only, idempotent, and closed-world hints. The description adds behavioral details: counts exclude closed airports, and the include_regions parameter nests regions. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the main purpose, and contains no unnecessary information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, two optional parameters, and clear annotations, the description fully covers what the tool does, what it returns, and how parameters affect behavior. It is complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds context: 'Off by default to keep the response compact' for include_regions, and reinforces the meaning of continent codes. This goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists countries with ISO codes and airport counts, and explains its role as a lookup table for filter values used by a sibling tool. It specifies optional parameters for continent restriction and region nesting, distinguishing it from search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly frames the tool as a lookup table for valid country and region filter values, giving clear context for when to use it. It does not mention alternative tools or exclusions, but the purpose is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ourairports_search_airportsourairports-mcp-serverA
Read-onlyIdempotent
Inspect

Search the bundled OurAirports corpus by free-text (name / municipality / keywords) and/or facets (country, region, type). Every query token must match (word order and partial words are handled). Returns ranked airport summaries — operational and larger airports first — each with its full code set and coordinates, ready to chain into ourairports_get_airport. Closed airports are excluded unless include_closed is set. Use ourairports_list_countries for valid country/region codes. For "nearest airport to a coordinate" use ourairports_find_airports instead. OurAirports is community-edited — not authoritative for flight operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoRestrict to one airport type: large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport, or closed.
limitNoMaximum airports to return (1–100). Defaults to OURAIRPORTS_DEFAULT_SEARCH_LIMIT (20).
queryNoFree-text search over airport name, municipality, and keywords. Tokens are AND-matched. Omit to browse purely by facets.
regionNoISO 3166-2 region code filter (e.g. US-WA). Exact match.
countryNoISO 3166-1 alpha-2 country code filter (e.g. US). Exact match. Discover codes with ourairports_list_countries.
include_closedNoInclude airports of type "closed". Off by default — closed airports pollute the live-flight grounding use case.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit that was applied. Present only when results were truncated.
shownNoNumber of airports returned. Present only when results were truncated.
noticeNoGuidance when nothing matched or results were capped — how to broaden or narrow.
airportsYesMatching airports, ranked best-first. Codes the airport lacks are null.
truncatedNoPresent and true only when more airports matched than were returned.
totalCountYesTotal airports matched before the limit was applied.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint and idempotentHint annotations, description details token matching (AND, partial words), ranking (operational/larger first), and closed airport exclusion (with include_closed override). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise paragraphs, front-loaded with primary action, every sentence adds unique value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters and output schema, description covers search logic, default exclusion, ranking, and chaining to ourairports_get_airport. Complete for a contextual search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value: explains query AND-matching, country/region code discovery via sibling tool, and why closed airports are excluded by default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches the OurAirports corpus by free-text and facets, specifying resource and action. It distinguishes from siblings like ourairports_find_airports for nearest airports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: when to use (search by text/facets), when not (nearest airports -> use ourairports_find_airports), and references ourairports_list_countries for code discovery.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources