Releases: cyanheads/noaa-spaceweather-mcp-server
Release list
v0.1.11: get_alerts severity and cancellation corrections
get_alerts severity and cancellation corrections
level and phenomenon now derive from the message body's NOAA scale instead of the code suffix; cancellation notices are detected per record and excluded from active_only.
Added:
- noaaScale field — the NOAA scale a product's body states (e.g. "G1", "R2"); null when the body states none
- cancelled field — flags a CANCEL WARNING:/CANCEL ALERT: record; active_only=true now excludes them
Fixed:
- level/phenomenon now derive from the body's NOAA scale/Category line instead of the code suffix, correcting severity and phenomenon for most live product codes (#18)
- active_only=true no longer returns cancellation notices as active — detection is per record via cancelled (#19)
74 tests pass; bun run devcheck clean.
v0.1.10: RTSW solar-wind port, mcp-ts-core 0.10.14, supply-chain hardening
RTSW solar-wind port, mcp-ts-core 0.10.14, supply-chain hardening
get_solar_wind moves off SWPC's removed DSCOVR feeds to the RTSW replacement, adding spacecraft source and feed-freshness reporting.
Added:
- get_solar_wind: source field naming the reporting spacecraft; latestFeedPlasmaTime/latestFeedMagTime/feedStalenessHours plus an enrichment notice for empty windows (#20)
- bunfig.toml: 3-day minimumReleaseAge install gate and @socketsecurity/bun-security-scanner as the install scanner
Fixed:
- get_solar_wind no longer 404s on every call — ports to the RTSW feeds (/json/rtsw/rtsw_wind_1m.json, rtsw_mag_1m.json), filtered to the active spacecraft and sorted oldest-first (#21)
- Solar wind window filtering compares epoch milliseconds instead of ISO strings
Dependency bumps:
@cyanheads/mcp-ts-core^0.10.10 → ^0.10.14@biomejs/biome^2.5.1 → ^2.5.3@types/node^26.0.1 → ^26.1.1ignore^7.0.5 → ^7.0.6tsc-alias^1.8.17 → ^1.9.0vitest^4.1.9 → ^4.1.10- bun packageManager 1.3.11 → 1.3.14
67 tests pass; bun run devcheck clean.
v0.1.9: Date-neutral flare aliases, epoch window filters, js-yaml advisory cleared
Date-neutral flare aliases, epoch window filters, js-yaml advisory cleared
Adds date-neutral flare-probability aliases, fixes window-boundary filtering, syncs the SWPC User-Agent, and clears a moderate js-yaml advisory via mcp-ts-core ^0.10.10.
Added:
- Date-neutral flare-probability aliases (cClassProbability, mClassProbability, xClassProbability, protonEventProbability) on get_solar_activity, alongside the retained *1Day fields (#16)
Changed:
- SWPC User-Agent now built from the running server version instead of a hardcoded 0.1.1 (#15)
@cyanheads/mcp-ts-core^0.10.9 → ^0.10.10
Fixed:
- get_kp_index and get_solar_activity window filters compare epochs, not raw ISO strings — fixes boundary mis-inclusion at the window edge (#17)
Security:
- Clears moderate js-yaml advisory GHSA-h67p-54hq-rp68 via mcp-ts-core ^0.10.10 (bun audit 1 moderate → 0)
61 tests pass; bun run devcheck clean.
v0.1.8: expired-alert filter, Kp UTC timeTags, alert messageCode
expired-alert filter, Kp UTC timeTags, alert messageCode
Three SWPC data-accuracy fixes to get_alerts and get_kp_index.
Changed:
- Dev deps:
@biomejs/biome^2.5.0 → ^2.5.1,@types/node^26.0.0 → ^26.0.1
Fixed:
get_alertsactive_onlydrops warnings whose parsedvalidTohas elapsed; null or unparseablevalidTofalls back to the recency window (#12)get_kp_indexobserved and forecasttimeTagnormalized to explicit UTC (#13)get_alertsaddsmessageCode(full SWPC code);productIdcorrected to the short feed-ID shape (#14)
56 tests pass; bun run devcheck clean.
v0.1.7: alert validity window, proton flux rounding
alert validity window, proton flux rounding
Changed:
- get_alerts validity window: validFrom/validTo parse the full SWPC label set (Valid From/To, Now Valid Until, Begin/End Time) and normalize to ISO 8601 UTC; validTo was previously null on every product (#10)
- kpToGScale exported from the service and imported by get-kp-index, dropping the byte-identical copy — internal, no behavior change (#11)
Fixed:
- get_solar_activity latestProton.fluxPfu rounded to 3 significant figures instead of the raw IEEE-754 float; stays a number, S-scale still classified from the raw value (#8)
50 tests pass; bun run devcheck clean.
v0.1.6: mcp-ts-core ^0.10.9 maintenance
mcp-ts-core ^0.10.9 maintenance
Framework-maintenance release — no source or behavior changes.
Dependency bumps:
@cyanheads/mcp-ts-core^0.10.6 → ^0.10.9@types/node^25.9.3 → ^26.0.0vitest^4.1.8 → ^4.1.9
Added:
check-dependency-specifiersdevcheck step — rejects floating specifiers (latest/*/dist-tags) in package.json deps and bun.lock workspaces (cyanheads/mcp-ts-core#246)- Plugin-manifest checks in
lint-packaging.ts, gated bypackaging.pluginManifests(cyanheads/mcp-ts-core#240)
Changed:
.codex-plugin/plugin.jsonlongDescription filled- 14 vendored
skills/*/SKILL.mdre-synced to framework ^0.10.7 (cyanheads/mcp-ts-core#238)
Fixed:
- Fresh-scaffold devcheck guards in build-changelog / check-framework-antipatterns / check-skill-versions (cyanheads/mcp-ts-core#242, #243, #237)
47 tests pass; bun run devcheck clean.
v0.1.4: Three bug fixes: alert filtering, Kp forecast, aurora verdict
Three bug fixes: alert filtering, Kp forecast, aurora verdict
Alert timestamp normalization, Kp forecast forward-only filtering, and
sub-auroral aurora verdict correction.
Fixed:
- get_alerts: SWPC datetime was stored raw ('2026-06-06 22:11:17'); string
comparison with ISO cutoff silently dropped same-day products. Now
normalized via normalizeSwpcTime() and compared as epoch. (#6) - get_kp_index: forecast[] included ~58 historical 'observed' entries
alongside ~22 forward-looking ones. Filtered to estimated/predicted only;
added gScale/gLabel fields for G-scale consistency with observed[]. (#7) - get_aurora_forecast: sub-auroral locations (minKp===9) received a
misleading 'Kp>=9 needed' message. Guard returns a definitive
'not visible at this latitude' verdict instead. (#9)
47 tests pass; bun run devcheck clean.
v0.1.3: Five correctness fixes across the tool surface
Five correctness fixes across the tool surface
Patches five bugs surfaced during field-testing:
Fixed:
- get_alerts active_only now applies a max_age_hours recency window (default 48 h) before the product-type filter, returning currently-in-force alerts instead of weeks of history (#1)
- get_conditions quiet summary walks the 3-day forecast when conditions are quiet and reports peak storm activity, e.g. 'Quiet now — G3 strong geomagnetic storm forecast for 2026-06-08.' (#2)
- get_aurora_forecast high-latitude verdict no longer emits a nonsensical 'Kp≥0 needed' clause for geomagnetic lat ≥ 65° locations (minKpRequired === 0); verdict reflects actual aurora likelihood (#3)
- get_solar_activity X-ray flux now formatted via formatFlux() — returns '1.5e-6 W/m²' (scientific notation + unit) instead of a raw float (#4)
- get_conditions forecast None/none/empty normalized by a scaleText() helper in format() that maps all variants to '—', eliminating mixed-case inconsistency (#5)
43 tests pass; bun run devcheck clean.
v0.1.2: Public hosted endpoint
Public hosted endpoint
Registers the public hosted instance at https://noaa-spaceweather.caseyjhand.com/mcp.
Added:
- server.json
remotes[]entry (type: streamable-http) for the hosted endpoint - README "Public Hosted Server" link block (centered, after badges)
- README "Public Hosted Instance" Getting Started subsection with streamable-http client config
Changed:
@types/node^25.9.1 → ^25.9.2
bun run devcheck clean; bun run rebuild succeeded.
v0.1.1: Initial public release
Initial public release
First public release of @cyanheads/noaa-spaceweather-mcp-server — 6 keyless MCP tools over NOAA SWPC public feeds for space weather intelligence.
Added:
- noaa_spaceweather_get_conditions — R/S/G storm scales + current Kp heartbeat
- noaa_spaceweather_get_kp_index — K-index history (1–168 h) + 3-day forecast
- noaa_spaceweather_get_aurora_forecast — OVATION model global grid + local go/no-go by coordinates
- noaa_spaceweather_get_solar_wind — DSCOVR real-time plasma + Bz
- noaa_spaceweather_get_solar_activity — GOES X-ray flux, flare probabilities, active regions
- noaa_spaceweather_get_alerts — structured SWPC alerts, watches, and warnings
Security:
- Upstream alert message text fenced in code blocks to prevent prompt injection
37 tests pass; bun run devcheck clean.