solarstorm について
solarstormは、NOAA SWPCのリアルタイム宇宙天気データをAIアシスタントに提供するMCPサーバーです。Kp指数、地磁気予報、太陽フレア、緯度別のオーロラ視認性を扱います。
主な機能
- 01現在のKp指数と活動レベルの取得
- 023日間の地磁気予報の取得
- 0324時間以内の太陽フレア確認
- 04緯度別オーロラ視認性の推定
- 05NOAA応答エラーの処理
活用シーン
- 01特定地点で今夜オーロラが見える可能性の判断
- 02直近の地磁気活動の確認
- 03GOES太陽フレア強度の確認
MCP 対応
NOAA SWPCのデータを使う4つの宇宙天気ツールをMCPクライアントに公開します。ホスト済みのstreamable HTTPエンドポイント、またはローカルのstdioで接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.solarstorm.today/mcpclaude mcp add --transport http today-solarstorm-solarstorm https://mcp.solarstorm.today/mcp{"mcpServers":{"today-solarstorm-solarstorm":{"type":"http","url":"https://mcp.solarstorm.today/mcp"}}}Cursor で開く{"servers":{"today-solarstorm-solarstorm":{"type":"http","url":"https://mcp.solarstorm.today/mcp"}}}VS Code で開く{"mcpServers":{"today-solarstorm-solarstorm":{"type":"http","url":"https://mcp.solarstorm.today/mcp"}}}{"mcpServers":{"today-solarstorm-solarstorm":{"serverUrl":"https://mcp.solarstorm.today/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4このツールにパラメーターはありません。
詳細
solarstorm.today MCP サーバー
AI アシスタントのための、リアルタイムの宇宙天気情報です。この MCP サーバーは NOAA SWPC のデータ、つまり惑星間 Kp 指数、公式の3日間の地磁気予報、GOES の太陽フレア活動、任意の緯度でのオーロラの見えやすさを、エージェントが直接呼び出せる4つのツールとして公開します。
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_TRANSPORT | stdio | ネットワークサーバーにするには streamable-http を設定します |
MCP_HOST | 0.0.0.0 | バインドアドレスです。リバースプロキシの背後では 127.0.0.1 を使用します |
MCP_PORT | 8765 | 待ち受けポートです |
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
TLS 証明書を設定したサブドメインで、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
}
注意点が1つあります。MCP SDK は、想定と一致しない Host ヘッダーを含むリクエストを拒否します(DNS リバインディング保護)。サービス自体は正常なのにハンドシェイクが 4xx で失敗する場合は、プロキシが転送する Host を確認してください。
- データソース。
services.swpc.noaa.gov— 惑星K指数とその予報プロダクト、およびGOESの主要な0.1–0.8 nm X線フラックスです。タイムアウトは10秒で、キャッシュやキーは不要です。 - 日ごとの最大値は、サイトのドイツ語圏の読者に合わせて、Europe/Berlinの暦日ごとに集計します。予報の対象となるのは、観測値が空欄のポイント、
estimatedおよびpredictedのポイントのみです。 - フレアクラスは、X線フラックスを標準的なA/B/C/M/Xスケールに変換します(Xは1e-4 W/m²以上、Mは1e-5以上など)。
- オーロラのしきい値は、肉眼での視認性を示す欧州セクターの目安です。Kp 1は66°超、3は62°超、4.5は58°超、6は55°超、7は52°超、8は48°超、9は44.5°超です。約44.5°未満では、極端な歴史的嵐のみが対象です。通常、カメラは肉眼より約1 Kpレベル早くオーロラを捉えます。
- **モデル化していない要素:**惑星間磁場のBz成分です。南向きのBzがあると、同じKpでもオーロラが大幅に発生しやすくなります。また、数日前から予測することはできないため、判定は確約ではなく確率として捉えてください。
関連リンク
- solarstorm.today — このサイトのミラー版(EN/DE)
- 今夜のオーロラ — NOAA OVATIONオーバルを表示するライブマップ
- 3日間予報
- このMCP サーバーについて
テスト
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を対象に、プッシュのたびに実行されます。ライブテストスイートもスケジュールに従って毎日実行されます。これは、本番環境に到達した唯一のバグがロジックエラーではなかったためです。NOAAの観測フィードではキーがKpと表記される一方、予報フィードではkpと表記されており、有効な200レスポンスを解析しても行数がゼロになっていました。この種の変化を検出できるのは、実際に呼び出すテストだけです。
ライセンス
MIT — LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。