# io.github.cyanheads/noaa-spaceweather-mcp-server (remote · noaa-spaceweather.caseyjhand.com)

NOAA SWPC space weather: storm scales, Kp index, aurora forecasts, solar wind, activity, alerts.

- Trust score: 69/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `noaa-spaceweather.caseyjhand.com`: 69/100 (this document), [markdown](https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/noaa-spaceweather.md), [page](https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/noaa-spaceweather)
- npm · `@cyanheads/noaa-spaceweather-mcp-server`: 35/100, [markdown](https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/cyanheads-noaa-spaceweather-mcp-server.md), [page](https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/cyanheads-noaa-spaceweather-mcp-server)

## Channel facts

- Endpoint: `https://noaa-spaceweather.caseyjhand.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.11`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 6 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 69/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1127 tokens (~187/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http cyanheads-noaa-spaceweather-mcp-server https://noaa-spaceweather.caseyjhand.com/mcp
```

### Codex

```toml
[mcp_servers.cyanheads-noaa-spaceweather-mcp-server]
url = "https://noaa-spaceweather.caseyjhand.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-noaa-spaceweather-mcp-server": {
      "type": "remote",
      "url": "https://noaa-spaceweather.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cyanheads-noaa-spaceweather-mcp-server --url https://noaa-spaceweather.caseyjhand.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  cyanheads-noaa-spaceweather-mcp-server:
    url: "https://noaa-spaceweather.caseyjhand.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "cyanheads-noaa-spaceweather-mcp-server": {
      "type": "http",
      "url": "https://noaa-spaceweather.caseyjhand.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 68, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 66, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 64, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 64)

First indexed and scored.

## MCP tools (6)

### `noaa_spaceweather_get_conditions` (~113 tokens)

Get Space Weather Conditions

Current space-weather snapshot: NOAA R/S/G storm scales (today + 3-day forecast), latest Kp index with its G-scale equivalent and aurora-visibility latitude, and a plain-language status summary. 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).

Output parameters:

- `auroraLatitude` (string): Aurora visibility guidance for current conditions, e.g. "Aurora possible to ~55° geomagnetic latitude".
- `currentGScale` (number): NOAA G-scale equivalent for current Kp (0–5).
- `currentKp` (number): Latest observed planetary K-index (0–9).
- `forecast` (array): 3-day NOAA scale forecast (next 1–3 days).
- `observedAt` (string): UTC date and time of the NOAA scales data period this snapshot reflects, e.g. "2026-06-04 15:00:00".
- `summary` (string): Plain-language status summary suitable for display, e.g. "Quiet conditions" or "G2 moderate geomagnetic storm in progress."
- `today` (object): Current observed NOAA storm scales for today.

### `noaa_spaceweather_get_alerts` (~202 tokens)

Get Space Weather Alerts

Active SWPC alerts, watches, and warnings — parsed into structured records with product type, NOAA scale and level, issue time, 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 (default 48 h); the SWPC feed keeps all historical records and has no built-in expiry.

Input parameters:

- `active_only` (boolean): When true (default), return only in-force Warnings, Watches, and Alerts; exclude Summaries, Other, expired products, and cancellation notices. Set false to return all products, including cancellation…
- `max_age_hours` (number): Maximum age of alerts to return, in hours (default 48). The SWPC feed retains all historical records — this window prevents returning weeks of historical notices as "active."

Output parameters:

- `alerts` (array): Matching SWPC alert/watch/warning records.
- `fetchedAt` (string): ISO 8601 timestamp of when this data was fetched.
- `notice` (string): Status notice when no alerts are active.
- `totalCount` (number): Count of records in the alerts array.

### `noaa_spaceweather_get_kp_index` (~168 tokens)

Get Kp Index

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: Kp≥5 is G1, Kp≥7 is G3 (aurora to ~50°), 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.

Input parameters:

- `window_days` (integer): Number of past days of observed Kp to return (1–7, default 1). Larger windows show trend context.

Output parameters:

- `auroraLatitude` (string): Aurora visibility guidance for current conditions.
- `currentGScale` (number): NOAA G-scale for current Kp.
- `currentKp` (number): Latest observed Kp value.
- `forecast` (array): Forward-looking Kp forecast series (estimated and predicted entries only; observed history excluded).
- `observed` (array): Observed Kp readings within the requested window, oldest first.
- `observedCount` (number): Number of Kp observations in the observed array, matching the requested window.

### `noaa_spaceweather_get_solar_wind` (~214 tokens)

Get Solar Wind

Real-time solar wind measurements from the active spacecraft at L1: proton speed (km/s), density (n/cm³), temperature (K), and the critical Bz component (southward Bz = negative = storm driver). Returns the recent plasma and magnetic field time series within the requested window, oldest first, each record tagged with the reporting spacecraft. Bz < −10 nT for sustained periods is a primary geomagnetic storm trigger — use alongside noaa_spaceweather_get_kp_index to see whether elevated solar wind has translated into a geomagnetic storm.

Input parameters:

- `window_hours` (integer): Hours of recent solar wind history to return (1–168, default 3). Records update ~every 1 min, but the feed only carries roughly the last 24 hours — a larger window returns the whole feed, not more hi…

Output parameters:

- `bzStatus` (string): Plain-language Bz status, e.g. "Southward Bz −14 nT — storm-driving conditions" or "Northward Bz +5 nT — quiescent".
- `feedStalenessHours`: Hours between now and the newest record across both feeds — how far behind real time the upstream data is. Null when both feeds returned no active-spacecraft records.
- `latestFeedMagTime`: ISO 8601 time of the newest magnetic field record the feed carries, ignoring the window. Null when the feed returned no active-spacecraft mag records.
- `latestFeedPlasmaTime`: ISO 8601 time of the newest plasma record the feed carries, ignoring the window. Null when the feed returned no active-spacecraft plasma records. Compare against the window to tell a quiet feed from…
- `latestMag`: Most recent magnetic field reading, null if no data in window.
- `latestPlasma`: Most recent plasma reading, null if no data in window.
- `mag` (array): Magnetic field measurements (Bx, By, Bz, Bt) within the window, oldest first.
- `magCount` (number): Number of magnetic field records in the mag array, spanning the requested window.
- `notice` (string): Guidance when the requested window returned no plasma or magnetic field records — names the newest record the feed carries, or reports that the feed itself returned nothing from an active spacecraft.
- `plasma` (array): Plasma measurements (speed, density, temperature) within the window, oldest first.
- `plasmaCount` (number): Number of plasma records in the plasma array, spanning the requested window.

### `noaa_spaceweather_get_solar_activity` (~141 tokens)

Get Solar Activity

Solar flare and radiation storm picture: recent GOES X-ray flux with flare-class labels (A/B/C/M/X), 3-day flare-class probabilities (C/M/X), active solar regions with per-region flare probabilities, and GOES integral proton flux at ≥10 MeV with NOAA S-scale. For operators tracking HF radio blackout (R-scale, driven by X-ray) and radiation storm risk (S-scale, driven by protons). Active region data helps identify which region is driving current activity.

Input parameters:

- `include_regions` (boolean): Include active solar region details (default true). Set false to skip region data and reduce response size.

Output parameters:

- `activeRegions` (array): Currently active solar regions with per-region flare probabilities. Empty when include_regions=false or no regions are active.
- `fetchedAt` (string): ISO 8601 timestamp of when this data was fetched.
- `latestProton`: Most recent ≥10 MeV proton flux reading, null if unavailable.
- `latestXray`: Most recent GOES X-ray flux reading, null if unavailable.
- `probabilities` (array): 3-day flare probability forecasts.
- `recentXray` (array): GOES X-ray flux readings from the past hour, oldest first.
- `sScale` (number): Current NOAA S-scale for solar radiation storms (0–5), derived from latest proton flux.
- `sScaleText` (string): Plain-language S-scale description, e.g. "S2 moderate radiation storm".

### `noaa_spaceweather_get_aurora_forecast` (~167 tokens)

Get Aurora Forecast

OVATION model aurora forecast for the next ~30–60 min: global grid of aurora probability percentages by latitude/longitude (1° resolution). With optional coordinates, returns the local aurora probability at the nearest grid point, the minimum Kp needed for aurora at that latitude, and a plain-language go/no-go verdict. Without coordinates, returns only global metadata. Data updates every ~5 minutes. Coordinates are geographic (WGS84), not geomagnetic.

Input parameters:

- `latitude` (number): Geographic latitude in degrees (−90 to 90). Provide with longitude for a local aurora probability lookup.
- `longitude` (number): Geographic longitude in degrees (−180 to 180). Provide with latitude for a local aurora probability lookup.

Output parameters:

- `forecastTime` (string): Time the aurora forecast is valid for, ISO 8601.
- `gridPointCount` (number): Total number of grid points in the OVATION model.
- `localLookup`: Local aurora lookup result. Null when no coordinates were provided.
- `observationTime` (string): Time of the OVATION model observation, ISO 8601.
- `topAuroraPercent` (number): Highest aurora probability anywhere on the globe (0–100).
- `topAuroraRegion` (string): Approximate region of the highest aurora probability grid point.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/noaa-spaceweather#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 68
- 2026-07-31: 68
- 2026-07-30: 66
- 2026-07-29: 66
- 2026-07-28: 65
- 2026-07-27: 64
- 2026-07-26: 64

## Links

- Remote endpoint: https://noaa-spaceweather.caseyjhand.com/mcp
- Repository: https://github.com/cyanheads/noaa-spaceweather-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/noaa-spaceweather/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/noaa-spaceweather/changelog.json
- HTML version of this page: https://verifymcp.io/servers/cyanheads-noaa-spaceweather-mcp-server/noaa-spaceweather
