Skip to content

Releases: cyanheads/noaa-spaceweather-mcp-server

v0.1.11: get_alerts severity and cancellation corrections

Choose a tag to compare

@cyanheads cyanheads released this 16 Jul 09:12
v0.1.11
df5de21

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.

CHANGELOG v0.1.11

v0.1.10: RTSW solar-wind port, mcp-ts-core 0.10.14, supply-chain hardening

Choose a tag to compare

@cyanheads cyanheads released this 16 Jul 06:01
v0.1.10
7d6b48d

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.1
  • ignore ^7.0.5 → ^7.0.6
  • tsc-alias ^1.8.17 → ^1.9.0
  • vitest ^4.1.9 → ^4.1.10
  • bun packageManager 1.3.11 → 1.3.14

67 tests pass; bun run devcheck clean.

CHANGELOG v0.1.10

v0.1.9: Date-neutral flare aliases, epoch window filters, js-yaml advisory cleared

Choose a tag to compare

@cyanheads cyanheads released this 01 Jul 01:53
v0.1.9
b36069a

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

Choose a tag to compare

@cyanheads cyanheads released this 01 Jul 00:55
v0.1.8
883e8ff

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_alerts active_only drops warnings whose parsed validTo has elapsed; null or unparseable validTo falls back to the recency window (#12)
  • get_kp_index observed and forecast timeTag normalized to explicit UTC (#13)
  • get_alerts adds messageCode (full SWPC code); productId corrected to the short feed-ID shape (#14)

56 tests pass; bun run devcheck clean.

v0.1.7: alert validity window, proton flux rounding

Choose a tag to compare

@cyanheads cyanheads released this 22 Jun 03:33
v0.1.7
a18621f

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

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 12:13
v0.1.6
b7b403c

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.0
  • vitest ^4.1.8 → ^4.1.9

Added:

  • check-dependency-specifiers devcheck 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 by packaging.pluginManifests (cyanheads/mcp-ts-core#240)

Changed:

  • .codex-plugin/plugin.json longDescription filled
  • 14 vendored skills/*/SKILL.md re-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

Choose a tag to compare

@cyanheads cyanheads released this 08 Jun 12:36
v0.1.4
d4cb605

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

Choose a tag to compare

@cyanheads cyanheads released this 07 Jun 06:41
v0.1.3
bd74a4f

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

Choose a tag to compare

@cyanheads cyanheads released this 06 Jun 22:04
v0.1.2
58c0e34

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

Choose a tag to compare

@cyanheads cyanheads released this 05 Jun 12:26
v0.1.1
44e9335

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.