Skip to main content
Glama

Server Details

Fetch METARs, TAFs, PIREPs, and domestic SIGMETs from the NWS Aviation Weather Center.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/aviation-weather-mcp-server
GitHub Stars
2
Server Listing
@cyanheads/aviation-weather-mcp-server

Available Tools

5 tools
aviation_find_stationsFind Aviation Weather StationsA
Read-onlyIdempotent
Inspect

Resolve an airport or weather reporting station by ICAO identifier, or discover stations within a bounding box or US state. Returns all identifier variants (ICAO/IATA/FAA), coordinates, elevation, and available data types (METAR, TAF, SYNOP, etc.). Station IDs must be 4-letter ICAO format (e.g., KSEA, KJFK). At least one of station_ids, bbox, or state is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
bboxNoGeographic bounding box for spatial queries.
stateNoTwo-letter USPS code for one of the 50 US states or DC (e.g., "WA") to list all stations in that jurisdiction. US territories are not supported — use bbox for those.
station_idsNoOne or more 4-letter ICAO station IDs (e.g., KSEA, KJFK). The upstream API only accepts ICAO format — 3-letter IATA codes (e.g., SEA) will return no results. Use bbox or state to discover ICAO IDs by location.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe upstream row maximum that was applied to the draw. Present only on a truncated result.
errorNoPresent when the call failed. Absent on success.
shownNoStations in this result, counted after any client-side state filter.
noticeNoGuidance naming the lever that narrows the draw. Present only on a truncated result.
stationsNoMatching stations.
truncatedNoTrue when the upstream draw hit the AWC row cap, so stations inside the search area are missing from this result. False affirms the area was drawn in full, which a count alone cannot establish.
upstreamRowsNoRows AWC returned before the client-side state filter ran. Present only on a truncated state query the filter then narrowed, where the post-filter count sits below the cap and so cannot reveal the truncation on its own.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, which covers the safety profile. The description adds useful behavioral context beyond annotations: the ICAO format constraint (with example), the fact that it returns multiple identifier variants and data types, and the requirement of at least one parameter. No contradiction with annotations; the description enriches understanding.

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 compact—three sentences—with no filler. It front-loads the purpose, then return info, then constraints. Every sentence earns its place, and the structure guides the agent from understanding to invocation.

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 has 3 parameters (one nested object), an output schema, and supportive annotations, the description is complete for agent use. It covers what the tool does, what it returns, input constraints, and invocation requirements. Nothing essential is missing, and the output schema handles return-value details.

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%, so parameters are well-documented in the schema. The description adds the crucial 'at least one required' constraint, which is not present in the schema (no required fields). It also reinforces the ICAO format and hints at using bbox/state to discover IDs. This adds value beyond the schema, though some redundant overlap exists.

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 ('Resolve', 'discover') and a clear resource (aviation weather stations). It clearly distinguishes from siblings like aviation_get_metar/aviation_get_taf, which retrieve specific data types, whereas this tool resolves/discover station metadata. The return contents (identifier variants, coordinates, elevation, data types) are stated explicitly.

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 states the required condition ('At least one of station_ids, bbox, or state is required') and mentions the two discovery modes (bbox or state). It implicitly differentiates from sibling tools by focusing on station lookup rather than data retrieval, but it does not explicitly name alternatives or specify when NOT to use it. The guidance is clear but not exhaustive.

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

aviation_get_advisoriesGet Active Aviation Advisories (SIGMETs)A
Read-onlyIdempotent
Inspect

Get active domestic SIGMETs for a region. Returns each advisory with hazard type (CONVECTIVE, TURBULENCE, ICING, IFR), severity, altitude range, valid period, polygon coordinates, and raw text. Coverage is US-centric (NWS Aviation Weather Center). This tool reads the domestic SIGMET feed only and cannot return an AIRMET; requests for one are rejected rather than answered with SIGMETs. During fair-weather periods no advisories may be active — an empty result is normal, not an error. Filter by advisory_type, hazard, or bbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
bboxNoGeographic bounding box to filter advisories by polygon overlap.
hazardNoOptional hazard filter. CONVECTIVE, TURBULENCE, ICING, and IFR match the four hazard classes the domestic SIGMET feed carries. MTN OBSCN, SURFACE WIND, and LLWS are AIRMET-family phenomena with no upstream counterpart here and are rejected rather than returning an empty result.
advisory_typeNoFilter by advisory type. "sigmet" and "all" both return the active domestic SIGMET set, which is everything this tool serves. "airmet" is rejected with guidance: the upstream feed cannot return an AIRMET, so answering it would mean presenting SIGMETs as AIRMET matches.all

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
advisoriesNoActive advisories matching the filter criteria. May be empty during fair weather periods.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, and idempotent hints, so the safety profile is covered. The description adds valuable context beyond annotations: US-centric coverage (NWS Aviation Weather Center), that it reads only the domestic SIGMET feed, the rejection behavior for AIRMET requests, and that empty results are normal. These details help an agent interpret behavior without contradicting the 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, ~60 words, front-loaded with the core action and scope. It efficiently packs the return fields, coverage limitation, rejection behavior, and result normalization into a compact, readable description with no fluff or repetition.

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?

The tool has three optional params, a nested bbox object, and an explicit output schema (present). The description covers the return fields, geographic scope, feed limitations, and edge cases (empty results). Given the output schema exists to detail return structure, nothing an agent needs to call this correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter documented in the schema, including detailed enum semantics (e.g., why MTN OBSCN and LLWS are rejected, what advisory_type 'airmet' does). The description only lists the filter options without adding new meaning. Baseline 3 is appropriate because the schema carries the semantic load.

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 opens with a specific verb and resource: 'Get active domestic SIGMETs for a region.' It clearly states the scope (domestic SIGMETs) and enumerates returned fields (hazard type, severity, altitude range, valid period, polygon coordinates, raw text). This distinguishes it from the sibling tools (e.g., METAR, TAF, PIREPs, stations) by focusing exclusively on advisories.

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 explicit when-not guidance: it cannot return an AIRMET and rejects such requests. It also clarifies that empty results are normal during fair weather, which sets expectations. It mentions 'Filter by advisory_type, hazard, or bbox' but does not name alternative tools for AIRMETs; however, the sibling list contains no AIRMET tool, so the exclusion is contextual enough. Lacks a direct 'use this when you need SIGMETs' statement but that is strongly implied.

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

aviation_get_metarGet METAR Weather ObservationsA
Read-onlyIdempotent
Inspect

Get current weather observations (METARs) for one or more airports. Returns decoded fields — wind direction/speed/gusts, visibility, ceiling with its kind (measured, or indefinite for vertical visibility into an obscuration), present weather, temperature, dewpoint, altimeter, cloud layers — plus the computed flight category (VFR/MVFR/IFR/LIFR) and the raw METAR string. Accepts 1–10 ICAO station IDs (e.g., KSEA, KJFK). Use aviation_find_stations to resolve or verify an ICAO ID, or to discover nearby stations.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoHours of observation history to return (1–12). Default 1 returns only the most recent observation per station.
station_idsYesICAO station IDs to query. 1–10 stations per call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
noticeNoRecovery guidance naming the missing station IDs. Present only on a partial result. It lists the candidate causes without asserting one — upstream omits the row either way.
missingNoRequested station IDs absent from the result. Absent when none are missing.
partialNoTrue when a requested station produced no observation. False affirms the result covers every requested station, so full coverage is distinguishable from a short batch rather than being inferred from the count.
returnedNoDistinct station IDs that produced at least one observation. Counted per station, not per row — with hours > 1 a station reporting six times still appears once.
requestedNoStation IDs this call asked for, in the order given.
observationsNoWeather observations, one per station/time pair. Multiple entries per station when hours > 1.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare the tool as read-only and idempotent, and the description adds context about the output fields (wind, visibility, ceiling, flight category). However, since an output schema is present, the listing of return fields largely duplicates structured data. The description does not disclose additional behavioral traits such as error handling or station lookup behavior beyond the schema, so the value added beyond annotations is modest.

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?

The description is composed of four sentences, each with a distinct role: purpose, output, input constraints, and usage guidance. It is front-loaded with the core purpose and then provides necessary detail without excessive verbosity, though some repetition of schema-bound information could be trimmed.

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

Completeness4/5

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

Given the tool's moderate complexity (two parameters, an output schema, and read-only annotations), the description covers purpose, output shape, input constraints, and an alternative for station resolution. It does not discuss error cases or rate limits, but these are less critical for a safety-neutral read operation, making the description adequately complete.

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

Parameters3/5

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

The input schema provides 100% coverage for both parameters, including descriptions, types, defaults, and constraints. The description only repeats examples and limits already in the schema (e.g., '1–10 ICAO station IDs'), adding no new semantic meaning beyond what the schema already offers.

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 action ('Get current weather observations (METARs)') and the resource ('for one or more airports'), with a specific list of returned fields. This makes it easily distinguishable from sibling tools like TAF forecasts or PIREPs, though it does not explicitly contrast them, the METAR focus is unambiguous.

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?

It explicitly directs users to 'Use aviation_find_stations to resolve or verify an ICAO ID, or to discover nearby stations,' which is a clear alternative for a specific scenario. However, it does not mention when to choose this over aviation_get_taf or aviation_get_pireps, so the guidance is partial rather than comprehensive.

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

aviation_get_pirepsGet Pilot Reports (PIREPs)A
Read-onlyIdempotent
Inspect

Get recent Pilot Reports (PIREPs) near an airport or within a bounding box. Returns decoded turbulence, icing, and cloud reports with altitude, aircraft type, intensity, and the raw PIREP string. Requires either station_id (ICAO center point for radial search, e.g., KSEA) or bbox (area search) — not both. distance_nm belongs to the station_id search only, and altitude_min_ft must not exceed altitude_max_ft. Coverage is US-centric; PIREPs are sparse and absence of reports does not imply smooth conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
bboxNoGeographic bounding box for area PIREP search.
hoursNoHow many hours of history to return. Default 3.
station_idNoICAO station ID as center point for radial search (e.g., KSEA). Use with distance_nm.
distance_nmNoSearch radius in nautical miles around station_id, defaulting to 100 when omitted. Belongs to the station_id search only — supplying it alongside bbox is rejected.
altitude_max_ftNoFilter by maximum altitude in feet MSL (e.g., 35000 for FL350). Reports with an unknown altitude (altitude_ft null) cannot be shown to satisfy a bound and are dropped whenever either bound is set. Optional.
altitude_min_ftNoFilter by minimum altitude in feet MSL (e.g., 18000 for FL180). Reports with an unknown altitude (altitude_ft null) cannot be shown to satisfy a bound and are dropped whenever either bound is set. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe upstream row maximum that was applied to the page. Present only on a truncated result.
errorNoPresent when the call failed. Absent on success.
shownNoReports in this result, counted after any altitude filter.
noticeNoGuidance naming the levers that narrow the query before the cap applies. Present only on a truncated result.
pirepsNoPilot reports matching the search criteria, ordered by observation time descending.
truncatedNoTrue when the upstream page hit the AWC row cap, so reports inside the search area and time window are missing from this result. False affirms the whole window was searched, which a count alone cannot establish.
upstreamRowsNoReports AWC returned before the altitude filter ran. Present only on a truncated result the filter then narrowed, where the remaining count sits below the cap and so cannot reveal the truncation on its own.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, lowering the bar. The description adds valuable context beyond these: 'Coverage is US-centric; PIREPs are sparse and absence of reports does not imply smooth conditions' and the altitude-boundary behavior that reports with null altitude are dropped. These insights about data quality and edge-case handling are not present in the annotations and materially improve agent decision-making.

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 a single, information-dense paragraph that front-loads the purpose, then lists return contents, then the constraints, and ends with a data-coverage caveat. Every sentence earns its place; there is no filler or repetition. Structure is logical and an agent can parse it quickly.

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 has an output schema (not shown here, but indicated by 'has output schema: true'), the description does not need to detail return format. It covers the input constraints, altitude behavior, and data quality caveats. The complexity of six parameters with a nested bbox object is adequately addressed through the description's constraints and examples. Nothing essential for correct invocation is missing.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3. The description goes well beyond schema descriptions by explaining cross-parameter constraints: the mutual exclusivity of station_id and bbox, the separation of distance_nm to station_id searches, the altitude ordering requirement, and the null-altitude drop behavior. It also clarifies the intended meaning of altitude filters in feet MSL. This is a significant addition the schema alone does not provide.

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 states a specific verb ('Get'), a resource ('Pilot Reports (PIREPs)') and the scope ('near an airport or within a bounding box'). It clearly distinguishes itself from siblings by naming the PIREP-specific content (turbulence, icing, cloud reports) and the raw string, so an agent can reliably separate it from METAR, TAF, advisories, and station lookup 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 gives explicit internal usage constraints: 'Requires either station_id or bbox — not both', 'distance_nm belongs to the station_id search only', and 'altitude_min_ft must not exceed altitude_max_ft'. It does not explicitly name sibling tools or explain when to prefer this over them, but the resource is so specific that an agent would naturally select it for PIREPs. A small gap is the lack of explicit 'when-not-to-use' guidance relative to weather reports.

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

aviation_get_tafGet Terminal Aerodrome Forecast (TAF)A
Read-onlyIdempotent
Inspect

Get the Terminal Aerodrome Forecast (TAF) for one or more airports. Returns each forecast period with valid times, surface wind, low-level wind shear, visibility, decoded weather conditions, cloud layers, and the vertical visibility into a forecast obscuration, plus the raw TAF string. TAFs cover the next 24–30 hours and are issued only for airports with scheduled commercial service; check data_types from aviation_find_stations to confirm TAF availability. Accepts 1–4 ICAO station IDs (e.g., KSEA, KJFK).

ParametersJSON Schema
NameRequiredDescriptionDefault
station_idsYesICAO station IDs to query. 1–4 stations per call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
noticeNoRecovery guidance naming the missing station IDs. Present only on a partial result. It lists the candidate causes without asserting one — upstream omits the row either way.
missingNoRequested station IDs absent from the result. Absent when none are missing.
partialNoTrue when a requested station produced no forecast. False affirms the result covers every requested station, so full coverage is distinguishable from a short batch rather than being inferred from the count.
returnedNoDistinct station IDs that produced a forecast.
forecastsNoTAF forecasts, one per requested station.
requestedNoStation IDs this call asked for, in the order given.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe read; the description adds valuable context beyond that: the 24-30 hour forecast window, the scheduled-service issuance constraint, and the explicit return-element list. It doesn't address error behavior or invalid-station handling, but given the read-only annotation profile, this is not a major gap.

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?

Three sentences that are front-loaded with purpose and efficiently convey returns, scope, and a usage prerequisite. The only minor redundancy is restating the 1-4 station count that maxItems/minItems already encode, but it serves as useful reinforcement. No filler or hedging.

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

Completeness4/5

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

For a read-only tool that already has an output schema and a single well-documented parameter, this is nearly complete: it covers what data is returned, the coverage window, the availability constraint, and the parameter format. It doesn't discuss forecast period count, units, or error handling, but those are minor given the annotations and output schema.

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

Parameters3/5

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

Schema coverage is 100% — station_ids is fully documented with type, pattern (^[A-Z]{4}$), minItems, maxItems, and an example. The description's 'Accepts 1-4 ICAO station IDs (e.g., KSEA, KJFK)' largely restates the schema's constraints rather than adding new meaning. Baseline 3 is appropriate when the schema carries the semantic load.

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?

States a specific verb (Get), resource (Terminal Aerodrome Forecast), and target (one or more airports), and enumerates the exact return fields (valid times, wind, wind shear, visibility, weather, clouds, vertical visibility, raw TAF string). This makes the tool's scope unambiguous and distinguishes it from siblings like aviation_get_metar (current conditions) and aviation_get_advisories (warnings).

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 clear context: TAFs cover 24-30 hours and are only issued for airports with scheduled commercial service, plus points the agent to aviation_find_stations to confirm availability via data_types. It doesn't explicitly state when to prefer this over aviation_get_metar for current conditions, but the forecast-vs-observation framing implies it.

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

Frequently Asked Questions

Discussions

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

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct resource type: stations, advisories, METARs, PIREPs, and TAFs. There is no overlap in purpose; an agent can unambiguously choose the right tool for a specific weather data need.

Naming Consistency5/5

All tools follow a consistent `aviation_` prefix with a predictable verb-noun pattern (`find_stations`, `get_metar`, etc.). The naming convention is uniform and immediately communicates the tool's function.

Tool Count5/5

With 5 tools, the server is well-scoped for aviation weather retrieval. Each tool covers a core data type without redundancy, and the count is within the ideal range for a focused MCP server.

Completeness4/5

The set covers primary aviation weather products (METAR, TAF, PIREP, SIGMET) and station lookup. Minor gaps exist such as AIRMET (explicitly rejected) and lack of other products like winds aloft, but the core functionality is coherent and usable without dead ends.