mcpField
S
solarstorm

solarstorm

リモート
solarstorm.today科学・教育09 週間前に更新
リポジトリ公式サイト

solarstorm について

solarstormは、NOAA SWPCのリアルタイム宇宙天気データをAIアシスタントに提供するMCPサーバーです。Kp指数、地磁気予報、太陽フレア、緯度別のオーロラ視認性を扱います。

主な機能

  1. 01現在のKp指数と活動レベルの取得
  2. 023日間の地磁気予報の取得
  3. 0324時間以内の太陽フレア確認
  4. 04緯度別オーロラ視認性の推定
  5. 05NOAA応答エラーの処理

活用シーン

  1. 01特定地点で今夜オーロラが見える可能性の判断
  2. 02直近の地磁気活動の確認
  3. 03GOES太陽フレア強度の確認

MCP 対応

NOAA SWPCのデータを使う4つの宇宙天気ツールをMCPクライアントに公開します。ホスト済みの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つのツールとして公開します。

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

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でもオーロラが大幅に発生しやすくなります。また、数日前から予測することはできないため、判定は確約ではなく確率として捉えてください。

関連リンク

テスト

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を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。