Query NOAA SWPC space weather: geomagnetic storm scales, Kp index, aurora forecasts, solar wind, solar activity, and alerts via MCP. STDIO or Streamable HTTP.
Strong tool definitions with excellent descriptions (avg 180 - 220 chars, well above baseline 194), clear naming (verb_noun pattern), and comprehensive parameter documentation. All 5 tools have input schemas with types and descriptions. Output schemas are documented in descriptions but not formally in JSON Schema. Tool annotations present (toolAnnotations=true). Minor gaps: no explicit error handling guidance, no pagination for potentially large result sets, and output structure not formally specified in schema format.
Active SWPC alerts, watches, and warnings — parsed into structured records with product type, NOAA scale and level, issue time, serial number, validity window, and plain text. Covers geomagnetic storms, radio blackouts, and radiation storms. With active_only=false, also returns informational summaries, expired notices, and cancellations. max_age_hours controls how far back to look for candidates; it is not itself a statement about whether a product is in force.
OVATION model aurora forecast for the next ~30–60 min: global grid of aurora probability percentages by latitude/longitude, plus a location-specific verdict for a given geographic point. Includes geomagnetic latitude conversion, darkness assessment (day/twilight/night), aurora band lookup, and horizon scanning for bright aurora visible low on the horizon.
Current space-weather snapshot: NOAA R/S/G storm scales (the previous UTC day, today, and the 3-day forecast), latest Kp index with its G-scale equivalent and aurora-visibility latitude, and a plain-language status summary. Optionally includes the SWPC forecast discussion explaining what is driving the forecast. The quickest way to answer "is anything happening right now?" — use before deciding whether to drill into solar wind (noaa_spaceweather_get_solar_wind), aurora (noaa_spaceweather_get_aurora_forecast), or alert details (noaa_spaceweather_get_alerts).
Planetary K-index (0–9 geomagnetic activity scale) — recent observed 3-hour values with their NOAA G-scale equivalents and aurora-latitude guidance, plus the 3-day Kp forecast series. Kp is the primary driver of aurora visibility and geomagnetic storm severity. SWPC reports Kp in thirds and starts each G level at that level's "minus" value: Kp 4.67 (5−) is G1, Kp 6.67 (7−) is G3 (aurora to ~50° geomagnetic), Kp 8.67 (9−) is still G4, and only Kp 9 is G5 extreme. Use noaa_spaceweather_get_conditions for a combined snapshot including storm scales; use this tool when you need the Kp time series or forecast detail.
Output schemas not formally documented in JSON Schema format. Descriptions explain what is returned, but LLMs cannot parse structured output expectations from text alone. Recommend adding explicit outputSchema definitions.
No explicit error handling guidance in tool descriptions. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do if a call fails (e.g., 'If NOAA API is unavailable, retry after 60 seconds').
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Solar flare and radiation storm activity: GOES X-ray flux time series, flare events with peak class and R-scale level, F10.7 solar radio flux, active solar regions with sunspot class and flare probabilities, and 3-day flare probability forecast. Covers C, M, and X-class flares, proton events, and radiation storms.
get_solar_activity has 6 optional boolean flags (include_xray_flux, include_flares, etc.) that default to true. No guidance on which combinations are common or recommended. Consider documenting typical use cases or providing a 'detail_level' enum (basic|standard|full) instead.
get_aurora_forecast includes_grid parameter (65 KB) is large. No guidance on when to include it or how to handle large responses. Recommend documenting token cost or suggesting pagination/streaming for large grids.
get_alerts max_age_hours parameter (default 48) is not clearly distinguished from 'active_only' logic. Description states max_age_hours 'does not itself determine whether a product is in force', but this is subtle and could confuse LLMs about filtering semantics.