Skip to main content
Glama

Get Pilot Reports (PIREPs)

aviation_get_pireps
Read-onlyIdempotent

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.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
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.

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.