NOAA Space Weather MCP Server
Provides real-time NOAA space weather data (solar flares, Kp index, solar wind) and analyzes HF radio propagation conditions for amateur radio operators to determine optimal frequency bands.
README
NOAA Space Weather MCP Server
アマチュア無線家向けのNOAA宇宙気象データMCPサーバーです。太陽活動データを分析し、HF(短波)のDX伝搬状況を予測するためのツールを提供します。
特徴
- 🌞 太陽活動データ: 太陽フレア(X線フラックス)、Kp指数、太陽風データをリアルタイムで取得
- 📡 伝搬分析: 現在の宇宙気象に基づいたHF伝搬状況の分析と推奨バンドの提案
- 💾 スマートキャッシュ: NOAAサーバーへの負荷を軽減するキャッシュ機構
- 🔍 クエリ機能: 大きなJSONデータから必要な情報のみを抽出してコンテキストを節約
- 🐳 Docker対応: コンテナでの簡単なデプロイ
インストール
前提条件
- Bun 1.1以上
- Docker(コンテナ利用時)
ローカル開発
# リポジトリをクローン
git clone https://github.com/numa08/noaa-space-weather-mcp.git
cd noaa-space-weather-mcp
# 依存関係のインストール
bun install
# 開発サーバー起動(STDIO)
bun run dev
# HTTP サーバーとして起動
bun run dev:http
Docker
# HTTPモード用イメージのビルド(Bun)
docker build -t numa08/noaa-space-weather-mcp:http .
# STDIOモード用イメージのビルド(Node.js)
docker build -f Dockerfile.stdio -t numa08/noaa-space-weather-mcp:stdio .
# コンテナの起動(HTTPモード)
docker run -p 3000:3000 numa08/noaa-space-weather-mcp:http
# コンテナの起動(STDIOモード)
docker run -i numa08/noaa-space-weather-mcp:stdio
Docker Hubからの利用
# HTTPモード
docker pull numa08/noaa-space-weather-mcp:http
docker run -p 3000:3000 numa08/noaa-space-weather-mcp:http
# STDIOモード
docker pull numa08/noaa-space-weather-mcp:stdio
docker run -i numa08/noaa-space-weather-mcp:stdio
Note: STDIOモードではNode.jsランタイムを使用しています。 これはBunのstdoutバッファリング問題(oven-sh/bun#15893)を 回避するためです。HTTPモードではBunを使用し、高速な起動とレスポンスを実現しています。
MCPサーバーのセットアップ
方法1: STDIOトランスポート(ローカル実行)
ローカル環境でClaude DesktopやClaude Codeと連携する場合に推奨される方法です。
Claude Desktop
claude_desktop_config.json に以下を追加:
{
"mcpServers": {
"noaa-space-weather": {
"command": "bun",
"args": ["run", "/path/to/noaa-space-weather-mcp/src/index.ts"]
}
}
}
Claude Code
# ローカルソースから(Bun使用)
claude mcp add noaa-space-weather -- bun run /path/to/noaa-space-weather-mcp/src/index.ts
# 設定の確認
claude mcp list
方法2: STDIOトランスポート(Docker)
Dockerコンテナを使用してSTDIOモードで接続する方法です。
Claude Desktop
claude_desktop_config.json に以下を追加:
{
"mcpServers": {
"noaa-space-weather": {
"command": "docker",
"args": ["run", "-i", "--rm", "numa08/noaa-space-weather-mcp:stdio"]
}
}
}
Claude Code
# Docker Hub から(Node.js STDIOイメージ)
claude mcp add noaa-space-weather -- docker run -i --rm numa08/noaa-space-weather-mcp:stdio
# 設定の確認
claude mcp list
方法3: HTTPトランスポート(リモート/Docker)
サーバーレス環境やDockerコンテナでの運用に推奨される方法です。 Streamable HTTPトランスポート(ステートレスモード)を使用します。
サーバーの起動
# ローカルで起動
bun run start:http --port 3000
# Dockerで起動
docker run -p 3000:3000 numa08/noaa-space-weather-mcp:http
エンドポイント
| エンドポイント | メソッド | 説明 |
|---|---|---|
/mcp |
POST/GET/DELETE | MCP Streamable HTTPエンドポイント |
/health |
GET | ヘルスチェック |
/stats |
GET | キャッシュ統計 |
Claude Code(HTTP接続)
# HTTPトランスポートで接続
claude mcp add noaa-space-weather --transport http http://localhost:3000/mcp
# 設定の確認
claude mcp list
動作確認
# ヘルスチェック
curl http://localhost:3000/health
# MCP初期化リクエスト(Streamable HTTP)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}'
# ツール一覧の取得
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":2}'
利用可能なツール
| ツール名 | 説明 |
|---|---|
get_space_weather_summary |
現在の宇宙気象サマリーを取得 |
get_xray_flux |
太陽フレア(X線フラックス)データを取得 |
get_kp_index |
地磁気活動(Kp指数)データを取得 |
get_solar_wind |
太陽風データを取得 |
analyze_propagation |
HF伝搬状況を分析 |
get_cache_stats |
キャッシュ統計を表示 |
clear_cache |
キャッシュをクリア |
クエリの例
# 過去24時間のKp指数を取得(最新10件)
get_kp_index: { "hours": 24, "limit": 10 }
# 特定期間のX線フラックスを取得
get_xray_flux: { "query": "startTime=2024-01-01&endTime=2024-01-07&limit=20" }
# 20mバンドの伝搬分析
analyze_propagation: { "targetBand": "20m" }
アマチュア無線と宇宙気象
Kp指数の解釈
| Kp値 | 状態 | HF伝搬への影響 |
|---|---|---|
| 0-2 | 静穏 | 良好な伝搬条件 |
| 3-4 | 不安定 | 軽微な乱れの可能性 |
| 5+ | 磁気嵐 | 高緯度で伝搬悪化 |
太陽フレアの分類
| クラス | 強度 | 短波通信への影響 |
|---|---|---|
| A, B | 背景レベル | 影響なし |
| C | 小規模 | 軽微な影響 |
| M | 中規模 | 昼側でフェードアウト |
| X | 大規模 | 大規模ブラックアウト |
開発
# テストの実行
bun run test
# 静的解析
bun run lint
# 型チェック
bun run typecheck
# すべてのチェックを実行
bun run check
ライセンス
MIT License
参考リンク
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.