Solarstorm

today.solarstorm由 solarstorm.today 发布官方发布者v1.0.3更新于 Oct 24, 2026

Space weather: Kp index, NOAA 3-day geomagnetic forecast, solar flares, aurora visibility.

已验证Streamable HTTP可网页运行位置与生活数据与分析

概览

AI 生成的概览

远程 MCP 服务器,为助手提供 NOAA 实时太空天气数据:Kp 指数、3 天地磁预报、太阳耀斑以及按纬度计算的极光可见性。

可以做什么
  • 读取当前地磁活动:最新行星 Kp 值、等级以及观测到的 24 小时最大值
  • 读取 NOAA 官方 3 天预报:每个日历日(欧洲/柏林日)的最大预期 Kp
  • 读取太阳 X 射线活动:当前 GOES 耀斑等级及 24 小时峰值与峰值时间
  • 查询某纬度的极光概率:该地所需 Kp、未来 24 小时预报最大 Kp 以及通俗结论
适用场景
适合回答某地今晚能否看到极光、当前地磁活动有多强、未来几天太空天气如何之类的问题。它只读、无需账号,用于偶尔的观星或太空天气问答成本很低。
运行要求
需要一个远程 streamable HTTP 端点;无需 API 密钥、账号或状态。README 另说明可用 Python 3.10+ 与 mcp SDK 本地运行,或用 MCP_TRANSPORT、MCP_HOST、MCP_PORT 自托管。服务器本身需访问 NOAA SWPC 数据。
安装前请注意
只读:仅报告数据,不会改动任何内容。数值来自 NOAA SWPC,超时 10 秒且不缓存,上游出错时以 error 字段返回。预报按欧洲/柏林时间划分日期,且模型未纳入行星际磁场 Bz 分量,因此极光结论只是概率而非保证。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Solarstorm,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/today.solarstorm%2Fsolarstorm/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "solarstorm": {
      "type": "http",
      "url": "https://mcp.solarstorm.today/mcp"
    }
  }
}

README

solarstorm.today MCP server

[MCP Registry] [Registry version] [tests] [Python] [License: MIT] [Hosted]

Live space weather for AI assistants. This MCP server exposes NOAA SWPC data — the planetary Kp index, the official 3-day geomagnetic forecast, GOES solar flare activity, and aurora visibility for any latitude — as four tools your agent can call directly.

It runs the same logic as solarstorm.today, so answers match what the site shows. No API keys, no accounts, no state.

Ask your assistant: "Will I see the aurora in Vienna tonight?" → it calls get_aurora_visibility(48.2) and answers from live NOAA data.

Tools

ToolReturns
get_current_kp()Latest planetary Kp, level (low/moderate/high/severe), observed 24-hour maximum
get_kp_forecast_3day()Maximum forecast Kp per calendar day for the next 3 days (Europe/Berlin days)
get_solar_flares_24h()Current GOES X-ray flare class and the 24-hour peak, with peak time
get_aurora_visibility(latitude)Kp needed at that latitude, forecast max Kp for the next 24 h, and a plain-language verdict
Example responses
jsonc
// get_current_kp(){  "kp": 4.33,  "level": "moderate",  "time_utc": "2026-08-27T18:00:00+00:00",  "max_24h": 5.67,  "source": "NOAA SWPC"}
// get_kp_forecast_3day(){  "days": [    { "date": "2026-08-27", "max_kp": 5.67, "level": "high" },    { "date": "2026-08-28", "max_kp": 4.0,  "level": "moderate" },    { "date": "2026-08-29", "max_kp": 2.33, "level": "low" }  ],  "timezone": "Europe/Berlin",  "source": "NOAA SWPC",  "note": "Kp>=5 is a G1 geomagnetic storm on the NOAA scale."}
// get_solar_flares_24h(){  "current_class": "C2.1",  "peak_24h_class": "M6.9",  "peak_time_utc": "2026-08-27T04:12:00Z",  "source": "NOAA GOES (0.1-0.8 nm)"}
// get_aurora_visibility(48.2){  "latitude": 48.2,  "kp_needed_naked_eye": 8,  "forecast_max_kp_24h": 5.67,  "visible_tonight": false,  "verdict": "Unlikely: forecast max Kp 5.7 is 2.3 below the ~Kp 8 needed at 48.2°. A camera picks aurora up roughly one Kp level earlier.",  "details": "https://solarstorm.today/aurora-tonight/"}

Network or format errors from NOAA come back as an error field. The server never crashes on a bad upstream response.

Use the hosted server (no install)

A public instance is running at https://mcp.solarstorm.today/mcp.

Claude Code

bash
claude mcp add --transport http solarstorm https://mcp.solarstorm.today/mcp

Claude Desktop / claude.ai — add a custom connector pointing at https://mcp.solarstorm.today/mcp.

Any other MCP client — streamable HTTP transport, same URL, no auth.

Run it locally (stdio)

Requires Python 3.10+ — the floor set by the mcp SDK.

bash
git clone https://github.com/newminya/solarstorm-mcp.gitcd solarstorm-mcppip install -r requirements.txtpython server.py          # waits for a stdio client; Ctrl+C to quit

claude_desktop_config.json:

json
{  "mcpServers": {    "solarstorm": {      "command": "python",      "args": ["/absolute/path/to/solarstorm-mcp/server.py"]    }  }}

Claude Code:

bash
claude mcp add solarstorm -- python /absolute/path/to/solarstorm-mcp/server.py

Self-host it (streamable HTTP)

Three environment variables control the transport:

VariableDefaultPurpose
MCP_TRANSPORTstdioSet to streamable-http for a network server
MCP_HOST0.0.0.0Bind address — use 127.0.0.1 behind a reverse proxy
MCP_PORT8765Listen port
systemd + reverse proxy
bash
mkdir -p /opt/solarstorm-mcp && cd /opt/solarstorm-mcp# copy server.py and requirements.txt herepython3 -m venv venv && venv/bin/pip install -r requirements.txt

/etc/systemd/system/solarstorm-mcp.service:

ini
[Unit]Description=solarstorm.today MCP serverAfter=network.target
[Service]WorkingDirectory=/opt/solarstorm-mcpEnvironment=MCP_TRANSPORT=streamable-httpEnvironment=MCP_HOST=127.0.0.1Environment=MCP_PORT=8765ExecStart=/opt/solarstorm-mcp/venv/bin/python server.pyRestart=alwaysRestartSec=5
[Install]WantedBy=multi-user.target
bash
systemctl daemon-reload && systemctl enable --now solarstorm-mcpsystemctl status solarstorm-mcp

nginx in front, on a subdomain with a TLS certificate:

nginx
server {    server_name mcp.example.com;    location /mcp {        proxy_pass http://127.0.0.1:8765/mcp;        proxy_http_version 1.1;        proxy_set_header Host $host;        proxy_buffering off;        proxy_read_timeout 3600s;    }    # + certbot TLS lines}

One thing that bites people: the MCP SDK rejects requests whose Host header doesn't match what it expects (DNS-rebinding protection). If handshakes fail with a 4xx while the service itself is healthy, check what Host your proxy forwards.

How the numbers are derived

  • Data sources. services.swpc.noaa.gov — planetary K-index and its forecast product, plus GOES primary 0.1–0.8 nm X-ray flux. 10-second timeout, no caching, no keys.
  • Daily maxima are bucketed by Europe/Berlin calendar days, matching the site's German-language audience. Only observed-blank, estimated, and predicted points count toward forecasts.
  • Flare classes convert X-ray flux to the standard A/B/C/M/X scale (X ≥ 1e-4 W/m², M ≥ 1e-5, and so on).
  • Aurora thresholds are European-sector guide values for naked-eye visibility: Kp 1 above 66°, 3 above 62°, 4.5 above 58°, 6 above 55°, 7 above 52°, 8 above 48°, 9 above 44.5°. Below ~44.5° only extreme historical storms qualify. A camera typically catches aurora about one Kp level earlier than the eye does.
  • Not modelled: the Bz component of the interplanetary magnetic field. A southward Bz makes a given Kp far more productive, and it can't be forecast days ahead — treat verdicts as odds, not promises.

Related

Tests

bash
pip install -r requirements-dev.txtpytest -m "not live"    # offline: parsing, thresholds, formattingpytest -m live          # hits NOAA, asserts the live response contract

The offline suite runs on every push against Python 3.10–3.13. The live suite also runs daily on a schedule, because the one bug that reached production wasn't a logic error: NOAA's observed feed spells its key Kp while the forecast feed says kp, so valid 200 responses parsed to zero rows. Only a real call catches that kind of drift.

License

MIT — see LICENSE.

来源:README.md,提交 6d0fed8

工具

4

get_current_kp

Current planetary Kp index: latest value, level (low/moderate/high/severe) and the observed 24-hour maximum.

无需输入参数。

get_kp_forecast_3day

Official NOAA 3-day geomagnetic forecast: the maximum expected Kp per calendar day (Europe/Berlin days).

无需输入参数。

get_solar_flares_24h

Solar X-ray activity of the past 24 hours from GOES: current flare class and the 24-hour peak class.

无需输入参数。

get_aurora_visibility

Aurora visibility outlook for a geographic latitude (degrees, e.g. 48.2 for Vienna): the Kp you need there, the expected maximum Kp in the next 24 h, and a verdict.

输入参数latitude必填

版本历史

1
  1. v1.0.3最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分