Skip to main content
Glama
solarstorm.today MCP server

solarstorm.today MCP server

by newminya

solarstorm.today MCP server

MCP Registry Registry version tests Python License: MIT Hosted

Live-Weltraumwetter für KI-Assistenten. Dieser MCP-Server stellt NOAA-SWPC-Daten bereit — den planetarischen Kp-Index, die offizielle 3-Tage-Vorhersage der geomagnetischen Aktivität, GOES-Sonnenflare-Aktivität und Polarlicht-Sichtbarkeit für jeden Breitengrad — als vier Werkzeuge, die Ihr Agent direkt aufrufen kann.

Er verwendet dieselbe Logik wie solarstorm.today, sodass die Antworten dem entsprechen, was die Website anzeigt. Keine API-Schlüssel, keine Konten, kein Zustand.

Fragen Sie Ihren Assistenten: „Werde ich heute Nacht in Wien das Polarlicht sehen?" → er ruft get_aurora_visibility(48.2) auf und antwortet anhand von Live-NOAA-Daten.

Werkzeuge

Tool

Rückgabe

get_current_kp()

Aktueller planetarischer Kp, Stufe (low/moderate/high/severe), beobachtetes 24-Stunden-Maximum

get_kp_forecast_3day()

Maximaler prognostizierter Kp pro Kalendertag für die nächsten 3 Tage (Europe/Berlin-Tage)

get_solar_flares_24h()

Aktuelle GOES-Röntgenflare-Klasse und der 24-Stunden-Spitzenwert mit Spitzenzeit

get_aurora_visibility(latitude)

Benötigter Kp auf diesem Breitengrad, prognostizierter maximaler Kp für die nächsten 24 h und eine Einschätzung in einfacher Sprache

// 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/"
}

Netzwerk- oder Formatfehler von NOAA werden als error-Feld zurückgegeben. Der Server stürzt bei einer fehlerhaften Antwort der vorgelagerten Quelle nie ab.

Related MCP server: spaceweather-mcp

Den gehosteten Server nutzen (ohne Installation)

Eine öffentliche Instanz läuft unter https://mcp.solarstorm.today/mcp.

Claude Code

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

Claude Desktop / claude.ai — fügen Sie einen benutzerdefinierten Connector hinzu, der auf https://mcp.solarstorm.today/mcp zeigt.

Jeder andere MCP-Client — streamable HTTP-Transport, gleiche URL, keine Authentifizierung.

Lokal ausführen (stdio)

Erfordert Python 3.10+ — die Untergrenze, die das mcp-SDK vorgibt.

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

Selbst hosten (streamable HTTP)

Drei Umgebungsvariablen steuern den Transport:

Variable

Standard

Zweck

MCP_TRANSPORT

stdio

Auf streamable-http setzen für einen Netzwerk-Server

MCP_HOST

0.0.0.0

Bindungsadresse — hinter einem Reverse-Proxy 127.0.0.1 verwenden

MCP_PORT

8765

Lauschport

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 davor, auf einer Subdomain mit einem TLS-Zertifikat:

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
}

Eine Sache, über die viele stolpern: Das MCP-SDK lehnt Anfragen ab, deren Host-Header nicht dem entspricht, was es erwartet (DNS-Rebinding-Schutz). Wenn Handshakes mit einem 4xx fehlschlagen, während der Dienst selbst gesund ist, prüfen Sie, welchen Host Ihr Proxy durchreicht.

Wie die Zahlen ermittelt werden

  • Datenquellen. services.swpc.noaa.gov — planetarischer K-Index und sein Vorhersageprodukt, plus primärer GOES-Röntgenfluss im Bereich 0.1–0.8 nm. 10-Sekunden-Timeout, kein Caching, keine Schlüssel.

  • Tagesmaxima werden nach Kalendertagen in Europe/Berlin eingeteilt, passend zum deutschsprachigen Publikum der Website. Nur Punkte ohne beobachteten Wert, estimated und predicted, fließen in die Vorhersagen ein.

  • Flare-Klassen rechnen den Röntgenfluss in die standardmäßige A/B/C/M/X-Skala um (X ≥ 1e-4 W/m², M ≥ 1e-5 usw.).

  • Polarlicht-Schwellenwerte sind Richtwerte für den europäischen Sektor für Sichtbarkeit mit bloßem Auge: Kp 1 über 66°, 3 über 62°, 4.5 über 58°, 6 über 55°, 7 über 52°, 8 über 48°, 9 über 44.5°. Unterhalb von ~44.5° kommen nur extreme historische Stürme in Frage. Eine Kamera erfasst Polarlicht typischerweise etwa eine Kp-Stufe früher als das Auge.

  • Nicht modelliert: die Bz-Komponente des interplanetaren Magnetfelds. Ein südwärts gerichtetes Bz macht einen gegebenen Kp weitaus ergiebiger, und es kann nicht Tage im Voraus vorhergesagt werden — betrachten Sie Einschätzungen als Wahrscheinlichkeiten, nicht als Zusagen.

Verwandtes

Tests

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

Die Offline-Suite läuft bei jedem Push gegen Python 3.10–3.13. Die Live-Suite läuft zusätzlich täglich nach Zeitplan, denn der eine Fehler, der die Produktion erreichte, war kein Logikfehler: NOAAs beobachteter Feed schreibt seinen Schlüssel Kp, während der Vorhersage-Feed kp sagt, sodass gültige 200-Antworten zu null Zeilen geparst wurden. Nur ein echter Aufruf fängt diese Art von Drift ab.

Lizenz

MIT — siehe LICENSE.

Related MCP Connectors

Related MCP Servers