mcpField
S
solarstorm

solarstorm

远程服务
solarstorm.today科研与教育09 周前更新

关于 solarstorm

solarstorm 是为 AI 助手提供实时空间天气数据的 MCP 服务,数据来自 NOAA SWPC。它提供 Kp 指数、地磁预报、太阳耀斑和按纬度估算的极光可见性。

主要功能

  1. 01查询当前 Kp 指数及级别
  2. 02获取未来 3 天地磁预报
  3. 03查看 24 小时太阳耀斑活动
  4. 04按纬度估算极光可见性
  5. 05处理 NOAA 响应错误

适用场景

  1. 01判断某地当晚是否可能看到极光
  2. 02查看近期地磁活动趋势
  3. 03检查 GOES 太阳耀斑强度

MCP 相关

该 MCP 服务向客户端提供四种空间天气查询工具,数据取自 NOAA SWPC。可通过托管的 streamable HTTP 端点或本地 stdio 连接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.solarstorm.today/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

4

此工具无需参数。

详细介绍

solarstorm.today MCP 服务

MCP Registry Registry version tests Python License: MIT Hosted

为 AI 助手提供实时太空天气。此 MCP 服务公开 NOAA SWPC 数据——行星 Kp 指数、官方 3 天地磁预报、GOES 太阳耀斑活动,以及任意纬度的极光可见性——并提供 4 个可由 Agent 直接调用的工具。

它运行的逻辑与 solarstorm.today 相同,因此回答与网站显示的内容一致。无需 API 密钥、无需账户,也不保存状态。

问问你的助手: “今晚我在维也纳能看到极光吗?” → 它会调用 get_aurora_visibility(48.2),并根据 NOAA 实时数据作答。

工具

工具返回内容
get_current_kp()最新行星 Kp 指数、等级(low/moderate/high/severe)、观测到的 24 小时最大值
get_kp_forecast_3day()接下来 3 天每个日历日的最大预报 Kp 指数(按 Europe/Berlin 时区划分日期)
get_solar_flares_24h()当前 GOES X 射线耀斑等级和 24 小时峰值,以及峰值时间
get_aurora_visibility(latitude)该纬度所需的 Kp 指数、未来 24 小时的预报最大 Kp 指数,以及通俗易懂的结论
响应示例
// 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/"
}

NOAA 返回的网络或格式错误会显示在 error 字段中。上游响应异常时,服务绝不会崩溃。

使用托管服务(无需安装)

公共实例运行在 https://mcp.solarstorm.today/mcp。

Claude Code

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

Claude Desktop / claude.ai — 添加一个指向 https://mcp.solarstorm.today/mcp 的自定义连接器。

其他任意 MCP 客户端 — 使用可流式 HTTP 传输,URL 相同,无需身份验证。

在本地运行(stdio)

需要 Python 3.10+——这是 mcp SDK 要求的最低版本。

git clone https://github.com/newminya/solarstorm-mcp.git
cd solarstorm-mcp
pip install -r requirements.txt
python server.py          # waits for a stdio client; Ctrl+C to quit

claude_desktop_config.json:

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

Claude Code:

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

自托管(可流式 HTTP)

以下 3 个环境变量用于控制传输:

变量默认值用途
MCP_TRANSPORTstdio设置为 streamable-http 以运行网络服务
MCP_HOST0.0.0.0绑定地址——在反向代理后方时使用 127.0.0.1
MCP_PORT8765监听端口
systemd + 反向代理
mkdir -p /opt/solarstorm-mcp && cd /opt/solarstorm-mcp
# copy server.py and requirements.txt here
python3 -m venv venv && venv/bin/pip install -r requirements.txt

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

[Unit]
Description=solarstorm.today MCP server
After=network.target

[Service]
WorkingDirectory=/opt/solarstorm-mcp
Environment=MCP_TRANSPORT=streamable-http
Environment=MCP_HOST=127.0.0.1
Environment=MCP_PORT=8765
ExecStart=/opt/solarstorm-mcp/venv/bin/python server.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
systemctl daemon-reload && systemctl enable --now solarstorm-mcp
systemctl status solarstorm-mcp

在前端使用 nginx,通过带有 TLS 证书的子域名提供服务:

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
}

有一点容易让人踩坑:MCP SDK 会拒绝 Host 标头与预期不符的请求(DNS 重绑定保护)。如果握手失败并返回 4xx,但服务本身运行正常,请检查代理转发的 Host 是什么。

## 数值的计算方式
  • 数据来源。 services.swpc.noaa.gov — 行星 K 指数及其预报产品,以及 GOES 主 X 射线通量(0.1–0.8 nm)。超时时间为 10 秒,不缓存,无需密钥。
  • 每日最大值按 Europe/Berlin 日历日分组,以匹配该网站的德语受众。只有观测值为空、estimated 和 predicted 的数据点才计入预报。
  • 耀斑等级将 X 射线通量换算为标准 A/B/C/M/X 等级(X ≥ 1e-4 W/m²,M ≥ 1e-5,依此类推)。
  • 极光阈值是欧洲区域肉眼可见度的参考值:纬度高于 66° 时 Kp 1,高于 62° 时 Kp 3,高于 58° 时 Kp 4.5,高于 55° 时 Kp 6,高于 52° 时 Kp 7,高于 48° 时 Kp 8,高于 44.5° 时 Kp 9。在约 44.5° 以下,只有极端历史磁暴才符合条件。相机通常能比肉眼早一个 Kp 等级捕捉到极光。
  • **未建模因素:**行星际磁场的 Bz 分量。向南的 Bz 会让相同 Kp 值产生强得多的效果,而且无法提前数天预测——请将判定视为概率,而非保证。

相关内容

测试

pip install -r requirements-dev.txt
pytest -m "not live"    # offline: parsing, thresholds, formatting
pytest -m live          # hits NOAA, asserts the live response contract

每次推送时,离线测试套件都会针对 Python 3.10–3.13 运行。在线测试套件也会按计划每天运行,因为曾进入生产环境的唯一一个 bug 并非逻辑错误:NOAA 的观测数据源将键写作 Kp,而预报数据源则写作 kp,因此有效的 200 响应被解析成了零行。只有实际调用才能发现这类变化。

许可证

MIT — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。