aviation-weather-mcp-server
Server Details
Fetch METARs, TAFs, PIREPs, and SIGMETs/AIRMETs from the NWS Aviation Weather Center.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cyanheads/aviation-weather-mcp-server
- GitHub Stars
- 1
- Server Listing
- @cyanheads/aviation-weather-mcp-server
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 4.6/5 across 5 of 5 tools scored.
Each tool targets a distinct aspect of aviation weather: station lookup, current observations (METAR), forecasts (TAF), advisories (SIGMET/AIRMET), and pilot reports (PIREP). No overlapping functionality.
All tools follow the consistent 'aviation_<verb>_<noun>' pattern (e.g., aviation_get_metar, aviation_find_stations). The naming is uniform and predictable.
Five tools cover the essential aviation weather information types without unnecessary bloat. The scope is well-defined for a weather data server.
The set covers core aviation weather data (METAR, TAF, advisories, PIREPs, station info). Minor gaps like NOTAMs or winds aloft exist, but the provided tools form a complete workflow for typical queries.
Available Tools
5 toolsaviation_find_stationsFind Aviation Weather StationsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | Geographic bounding box for spatial queries. | |
| state | No | Two-letter US state abbreviation (e.g., "WA") to list all stations in that state. | |
| station_ids | No | One 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
| Name | Required | Description |
|---|---|---|
| stations | Yes | Matching stations. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds critical behavioral details: returns identifier variants, coordinates, elevation, data types; confirms ICAO-only acceptance and that IATA codes fail; specifies max 20 IDs. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two information-dense sentences with no filler. The tool's purpose and key constraints are front-loaded, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description succinctly covers all usage modes (resolve by ID, discover by bbox or state) and highlights critical input rules. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description adds crucial context beyond the schema, such as the requirement for at least one parameter, the ICAO-only constraint, and that bbox is for spatial queries. This significantly enhances usability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'Resolve' and 'discover' to clearly state the tool's purpose: finding aviation weather stations by ICAO ID, bounding box, or US state. It distinguishes from sibling tools (e.g., aviation_get_metar) which retrieve weather data, not station metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that at least one of station_ids, bbox, or state is required, and that station IDs must be 4-letter ICAO format. It provides guidance on input constraints but does not explicitly compare to alternatives, though siblings are for different purposes.
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 / AIRMETs)ARead-onlyIdempotentInspect
Get active SIGMETs and AIRMETs for a region. Returns each advisory with hazard type (CONVECTIVE, TURBULENCE, ICING, IFR, MTN OBSCN, etc.), severity, altitude range, valid period, polygon coordinates, and raw text. Coverage is US-centric (NWS Aviation Weather Center). During fair-weather periods no advisories may be active — an empty result is normal, not an error. Filter by advisory_type, hazard, or bbox.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | Geographic bounding box to filter advisories by polygon overlap. | |
| hazard | No | Optional hazard filter. CONVECTIVE = convective SIGMETs; TURBULENCE = AIRMET Tango; ICING = AIRMET Zulu; IFR = AIRMET Sierra (IFR conditions); MTN OBSCN = AIRMET Sierra (mountain obscuration); SURFACE WIND = sustained strong surface winds (typically >30 kt); LLWS = low-level wind shear below 2,000 ft AGL. | |
| advisory_type | No | Filter by advisory type. "sigmet" includes convective SIGMETs. "airmet" includes AIRMET Sierra (IFR/mountain obscuration), Tango (turbulence), and Zulu (icing). "all" returns both. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| advisories | Yes | Active advisories matching the filter criteria. May be empty during fair weather periods. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes return content (hazard type, severity, altitude range, valid period, polygon coordinates, raw text) and covers US-centric limitation. Annotations already indicate readOnly, openWorld, idempotent; description adds valuable behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, result fields, and usage notes. No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description summarizes return fields, explains coverage scope, and normalizes empty results. Fully equips agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, but description adds meaning: hazard enum mapped to specific advisory types (e.g., TURBULENCE = AIRMET Tango) and explains each. This goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get active SIGMETs and AIRMETs' and lists returned fields. Distinguishes from sibling tools (e.g., aviation_get_metar, aviation_get_taf) by focusing on advisories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: 'Coverage is US-centric (NWS Aviation Weather Center)' and normalizes empty results. Does not explicitly state when not to use, but sufficient for expected use.
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 ObservationsARead-onlyIdempotentInspect
Get current weather observations (METARs) for one or more airports. Returns decoded fields — wind direction/speed/gusts, visibility, ceiling, 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.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hours of observation history to return (1–12). Default 1 returns only the most recent observation per station. | |
| station_ids | Yes | ICAO station IDs to query. 1–10 stations per call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| observations | Yes | Weather observations, one per station/time pair. Multiple entries per station when hours > 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the decoded fields returned (wind, visibility, ceiling, temperature, etc.) and the computed flight category and raw METAR string, exceeding what readOnlyHint and idempotentHint annotations provide. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: states purpose, lists return fields, then gives usage guidance. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple stations, history, computed categories), the description covers purpose, parameters, return data, and sibling tool usage. It lacks explicit error handling notes but is otherwise complete for an MCP tool with a rich output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to add much. It reiterates the station ID count and hours range, which is helpful but not additive beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets current METAR weather observations for one or more airports. It differentiates from siblings by explicitly directing users to aviation_find_stations for resolving ICAO IDs, and the sibling names (aviation_get_taf, etc.) imply other weather data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions accepting 1-10 ICAO IDs and suggests using aviation_find_stations to verify IDs. It does not explicitly exclude usage for forecasts or other weather data, but the sibling names provide context. A clear when-not-to-use statement would elevate this to 5.
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)ARead-onlyIdempotentInspect
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. Coverage is US-centric; PIREPs are sparse and absence of reports does not imply smooth conditions.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | Geographic bounding box for area PIREP search. | |
| hours | No | How many hours of history to return. Default 3. | |
| station_id | No | ICAO station ID as center point for radial search (e.g., KSEA). Use with distance_nm. | |
| distance_nm | No | Search radius in nautical miles around station_id. Only used when station_id is provided. Default 100. | |
| altitude_max_ft | No | Filter by maximum altitude in feet MSL (e.g., 35000 for FL350). Optional. | |
| altitude_min_ft | No | Filter by minimum altitude in feet MSL (e.g., 18000 for FL180). Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pireps | Yes | Pilot reports matching the search criteria, ordered by observation time descending. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true. The description adds behavioral context: constraints on parameter exclusivity, coverage, and data sparsity. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with clear structure: purpose, output details, usage constraints, and a caveat. Every sentence adds value; no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that output schema exists, the description does not need to detail return values. It covers what the tool does, parameter usage, coverage limitations, and data characteristics. This is complete for a read-only query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. The description adds semantic value by explaining the mutual exclusivity of station_id and bbox, and the function of distance_nm relative to station_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'recent Pilot Reports (PIREPs)' and specifies the data returned (decoded turbulence, icing, cloud reports with altitude, etc.). It distinguishes from sibling tools like aviation_get_metar and aviation_get_taf by focusing on PIREPs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Requires either station_id ... or bbox ... — not both', providing clear usage guidance. It also notes coverage is 'US-centric' and that absence of reports does not imply smooth conditions. However, it does not explicitly state when to use this tool instead of siblings.
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)ARead-onlyIdempotentInspect
Get the Terminal Aerodrome Forecast (TAF) for one or more airports. Returns each forecast period with valid times, wind, visibility, decoded weather conditions, and cloud layers, 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).
| Name | Required | Description | Default |
|---|---|---|---|
| station_ids | Yes | ICAO station IDs to query. 1–4 stations per call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| forecasts | Yes | TAF forecasts, one per requested station. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds behavioral details beyond these: it returns raw TAF string, decoded weather conditions, and cloud layers; it explains the forecast time horizon and issuance restrictions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: a concise statement of the main function and a supplementary sentence with context. No redundant information, every word contributes. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (weather forecast with multiple fields, availability constraints) and the presence of an output schema, the description covers all necessary aspects: purpose, scope, return structure, constraints, and cross-reference to another tool. No gaps for an agent to misinterpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the only parameter station_ids is fully described in schema). The description adds minimal new semantic information: it reiterates the 1-4 station limit and gives examples (KSEA, KJFK). Since the schema already provides necessary parameter meaning, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies exactly what the tool does: 'Get the Terminal Aerodrome Forecast (TAF) for one or more airports.' It lists returned fields (valid times, wind, visibility, etc.) and distinguishes from siblings by noting TAF availability depends on airport type and referencing aviation_find_stations. The verb 'Get' and resource 'TAF' are precise, with constraints (1-4 stations) and examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: TAFs cover 24-30 hours, are issued only for airports with scheduled commercial service, and suggests checking TAF availability via aviation_find_stations. It does not explicitly state when not to use this tool or mention alternatives like METAR for current conditions, but the context is sufficient for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceProvides aviation weather data including METAR, TAF, PIREPs, AIRMET/SIGMET, station info, and winds aloft forecasts.23MIT
- Flicense-qualityDmaintenanceFetches and parses METAR/TAF aviation weather data from NOAA with caching and human-readable formatting.1
- Alicense-qualityDmaintenanceProvides access to aviation weather data from aviationweather.gov, enabling LLMs to fetch and analyze METAR, TAF, PIREPs, AIRMETs, and other aviation weather information.186MIT
- Alicense-qualityDmaintenanceProvides aviation weather information through a Model Context Protocol server, enabling access to METARs, TAFs, PIREPs, and route weather data for informational purposes only.2MIT
Your Connectors
Sign in to create a connector for this server.