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

AI 어시스턴트를 위한 실시간 우주 날씨입니다. 이 MCP 서버는 NOAA SWPC 데이터(행성 Kp 지수, 공식 3일 지자기 예보, GOES 태양 플레어 활동, 모든 위도에 대한 오로라 가시성)를 에이전트가 직접 호출할 수 있는 네 가지 도구로 제공합니다.

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 필드로 반환됩니다. 서버는 상위 응답이 잘못되어도 결코 충돌하지 않습니다.

Related MCP server: spaceweather-mcp

호스팅 서버 사용하기(설치 불필요)

공개 인스턴스가 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 클라이언트 — streamable 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

직접 호스팅하기(streamable HTTP)

세 가지 환경 변수가 전송 방식을 제어합니다:

변수

기본값

용도

MCP_TRANSPORT

stdio

네트워크 서버의 경우 streamable-http로 설정

MCP_HOST

0.0.0.0

바인딩 주소 — 리버스 프록시 뒤에서는 127.0.0.1 사용

MCP_PORT

8765

수신 포트

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 기본 0.1–0.8 nm X선 플럭스. 10초 타임아웃, 캐싱 없음, 키 없음.

  • 일일 최댓값은 Europe/Berlin 달력일 기준으로 묶이며, 사이트의 독일어 사용자를 반영합니다. 예보에는 observed-blank, 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° 이하에서는 극단적인 역사적 폭풍만 해당됩니다. 카메라는 보통 육안보다 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 응답이 0행으로 파싱되었습니다. 그런 종류의 변동을 잡을 수 있는 것은 실제 호출뿐입니다.

라이선스

MIT — LICENSE 참조.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    Related MCP Connectors

    Related MCP Servers