propagation-mcp

propagation-mcp

MCP server that exposes NOAA/SWPC HF band-condition and space-weather tools, providing real-time solar indices, band conditions, forecasts, alerts, solar wind, and X-ray flux for ham radio operators.

Category
访问服务器

README

propagation-mcp

An MCP server exposing HF band-condition and space-weather tools backed by NOAA/SWPC's public JSON feeds. Runs over stdio, so any MCP-compatible client (Claude Desktop, Claude Code, etc.) can launch it as a subprocess.

Installation

npx @rmp/propagation-mcp

Tools

get_band_conditions

No input. Fetches the current 10.7cm Solar Flux Index (SFI), planetary K-index, planetary A-index, and NOAA's current G-scale reading, then runs them through the classic ham-radio SFI/K/A heuristic to produce a per-band (160m/80m/40m/20m/17m/15m/12m/10m) good/fair/poor call with plain-English notes, plus an overall status. Day/night bias in the per-band notes is based on the server's local time (the tool takes no location input).

Example use: "Are the bands open right now?" / "What's a good band for HF right now?"

Returns text like:

Good conditions overall (SFI 145, K 2, A 8, daytime) — high bands should be open, low bands usable.

Per-band:
  - 160m: FAIR — 160m is D-layer absorbed during the day...
  - ...
  - 10m: GOOD — SFI 145 supports good daylight openings on 10m.

Raw inputs: SFI=145 sfu (as of 2026-08-15T20:00:00 UTC), K=2 (as of 2026-08-16T09:00:00 UTC), A=8, NOAA G-scale=0 (none).

plus a structuredContent object with the same data machine-readable.

Deliberately stops at 10m — no 6m. 6m (50MHz) is mostly opened by mechanisms this tool has no data for: sporadic E (jet-stream/season driven, essentially uncorrelated with SFI), meteor scatter, TEP, and aurora (which tracks K-index in the opposite direction from HF — high K opens auroral backscatter rather than blacking the band out). True F2-layer openings on 6m do exist but are rare even at high SFI. Extending the existing SFI/K/A heuristic with just a higher SFI threshold for 6m would produce a confidently-wrong answer on the far more common case of Es being wide open while SFI/K say "poor" — worse than not answering at all. A correct 6m tool would need its own data source (e.g. sporadic-E cluster-spot aggregation or foEs ionosonde data, neither of which NOAA/SWPC's feeds used here provide), so it's left out rather than faked.

get_solar_indices

No input. Returns the latest raw SFI, Kp, and A-index values with their NOAA observation timestamps (UTC). Use this when you want the raw numbers rather than an interpreted band-by-band call.

get_kindex_forecast

No input. Returns NOAA's 3-day-ahead planetary K-index forecast table (one row per 3-hour period), each with UTC time, predicted Kp, and NOAA G-scale (when a storm threshold is predicted to be reached).

get_space_weather_alerts

Optional input { limit?: number } (default 5). Returns the N most recent active NOAA/SWPC alerts/watches/warnings (geomagnetic K-index warnings, radio blackout alerts, proton flux alerts, etc.), most-recent-first, each with its product code, UTC issue time, and a short plain-English extract of the bulletin (not the full raw text dump).

get_solar_wind

No input. Returns the current real-time solar wind reading: interplanetary magnetic field strength (Bt) and its north-south GSM component (Bz — a sustained southward/negative Bz is what actually couples energy into the magnetosphere and tends to precede a Kp rise by 30-60 minutes), plus proton speed, density, and temperature. Bt/Bz come from NOAA's pre-resolved "current" summary endpoints; density/temperature come from the fuller multi-spacecraft feed, filtered to whichever source NOAA currently flags as authoritative (that feed carries several spacecraft — ACE, SOLAR1, IMAP as of writing — at each timestamp, sorted newest-first, so picking the right row takes a touch more care than the other endpoints here).

get_xray_flux

No input. Returns the latest GOES X-ray flux in both channels (long, 0.1-0.8nm; short, 0.05-0.4nm) plus NOAA's own current flare classification (e.g. "C1.5", standard A/B/C/M/X logarithmic scale) and the most recent classified flare event's begin/peak/end times and classes. The flare class is passed through verbatim from NOAA rather than re-derived from raw flux here — NOAA already computes and publishes it, so re-implementing the threshold table ourselves would just be a second place for that logic to drift out of sync with theirs.

Development

npm install
npm run build
npm test

Tests use Node's built-in test runner (node:test) and stub globalThis.fetch with real sample NOAA payloads — no network access required.

Using with Claude Desktop / Claude Code

The published package needs no clone or build — point your client straight at it:

{
  "mcpServers": {
    "propagation": {
      "command": "npx",
      "args": ["@rmp/propagation-mcp"]
    }
  }
}

To run from a local checkout instead, build first (npm run build) and point at the built entry point:

{
  "mcpServers": {
    "propagation": {
      "command": "node",
      "args": ["/Users/rmp/dev/mcp/propagation-mcp/dist/index.js"]
    }
  }
}

Adjust the path to match where you've cloned this repo. For Claude Desktop this goes in claude_desktop_config.json; for Claude Code, in your MCP server configuration (e.g. via claude mcp add or the project's .mcp.json).

Standalone binaries (no Node, no node_modules)

For deploying to a Raspberry Pi or any other box you don't want carrying a Node install and this whole source tree, the server is also shipped as a single self-contained executable per architecture — the Bun runtime is embedded in the binary, so nothing else needs to be installed on the target.

Every tagged release attaches them, alongside a SHA256SUMS.txt:

gh release download v0.1.0 --pattern 'propagation-mcp-linux-arm64' --pattern 'SHA256SUMS.txt'
sha256sum --check --ignore-missing SHA256SUMS.txt
chmod +x propagation-mcp-linux-arm64

To build them yourself, build:standalone compiles straight from src/index.ts with Bun — one x86-64 machine cross-compiles all three:

curl -fsSL https://bun.sh/install | bash   # one-time, only needed on the build machine
npm run build:standalone

Either way you get:

  • propagation-mcp-linux-amd64 — most Linux boxes / generic x86-64 servers (~91MB)
  • propagation-mcp-linux-arm64 — Raspberry Pi 4/5 (64-bit Raspberry Pi OS) and other arm64/aarch64 Linux (~90MB)
  • propagation-mcp-darwin-arm64 — Apple Silicon macOS (~62MB)

The size is the embedded Bun runtime, not this package's own code. The macOS binary is unsigned and unnotarized, so a downloaded copy needs xattr -d com.apple.quarantine propagation-mcp-darwin-arm64 before Gatekeeper will run it. Each binary runs with no arguments needed — copy it to the target and point your MCP client's command straight at it instead of node .../dist/index.js:

{
  "mcpServers": {
    "propagation": {
      "command": "/home/pi/propagation-mcp-linux-arm64"
    }
  }
}

Both architectures were verified by actually running the compiled binary under Docker (--platform linux/amd64 / --platform linux/arm64) and exercising a real MCP handshake, tools/list, and a live get_solar_indices call against the real NOAA API — not just checking that the binary exists.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选