Skip to content
@qso-graph

QSO-Graph

Open-source MCP servers for amateur radio — eQSL, QRZ, Club Log, LoTW, and more

QSO-Graph — MCP Servers for Amateur Radio

Live Demo DXpedition Demo Docs

Open-source Model Context Protocol servers that connect AI assistants to amateur radio services. Ask Claude, ChatGPT, Copilot, or Gemini about your QSOs, confirmations, and logbook data — no manual API wrangling required.

One install command. Every server, its tools and its current version: qso-graph.io.

View the live demo → · Documentation →

Install

curl -sL https://qso-graph.io/install.sh | bash

Creates ~/.qso-graph/ with an isolated Python environment, installs the base MCP servers, and adds them to your PATH. Works on Linux and macOS. No root required.

After install, run qso-graph-config to manage servers, credentials, datasets, and MCP client configuration via an interactive TUI.

Advanced users can run any server directly with uv, nothing to install: uvx solar-mcp, and "command": "uvx", "args": ["solar-mcp"] in your MCP client. Or install the bundles with pip:

pip install qso-graph-config                    # Base servers
pip install "qso-graph-config[auth]"            # + 4 logbook servers
pip install "qso-graph-config[ionis]"           # + ionis-mcp propagation
pip install "qso-graph-config[full]"            # Everything

Security — Our #1 Priority

Your credentials never leave the OS keyring. Every qso-graph server enforces non-negotiable security guarantees:

  • Credentials stored in OS keyring only (macOS Keychain, Windows Credential Manager, Linux Secret Service) — never in config files, environment variables, or logs
  • Credentials never appear in MCP tool results, error messages, or debug output — enforced by architecture, not policy
  • No command injection surface — no subprocess, no shell=True, no eval
  • All external connections HTTPS only
  • Rate limiting on every API to prevent account bans
  • Independent security audit required before every PyPI release

Full details: Security

Packages

Installer

Package Purpose Status
qso-graph-config Installer and manager — TUI, upgrades, config generation, dataset downloads PyPI

Foundation

Package Purpose Status
adif-mcp ADIF 3.1.7 spec parsing, validation, enumerations (8 tools) PyPI
qso-graph-auth Persona management, OS keyring credentials, qso-auth CLI PyPI

Logbook Services (Authenticated)

Package Service Tools Status
eqsl-mcp eQSL.cc 6 tools: inbox, verify, AG status, download, last upload, version info PyPI
lotw-mcp LoTW 6 tools: confirmations, QSOs, DXCC credits, download, user activity, version info PyPI
qrz-mcp QRZ.com 6 tools: lookup, DXCC, logbook status, download, logbook fetch, version info PyPI
hamqth-mcp HamQTH 8 tools: lookup, DXCC, bio, activity, DX spots, RBN, verify QSO, version info PyPI

Public Services (No Auth Required)

Package Service Tools Status
pota-mcp POTA 8 tools: spots, park info, stats, schedules, location, nearby, activator, version info PyPI
sota-mcp SOTA 5 tools: spots, alerts, summit info, nearby summits, version info PyPI
iota-mcp IOTA 7 tools: group lookup, island search, DXCC mapping, nearby, stats, version info PyPI
solar-mcp NOAA SWPC 7 tools: SFI, Kp, solar wind, X-ray flux, band outlook, alerts, version info PyPI
wspr-mcp WSPR 9 tools: spots, band activity, top beacons/spotters, propagation, grid, SNR, version info PyPI
omiss-mcp OMISS 13 tools: net schedule, nets on the air, member lookup, check-in history, past net check-ins, Statehood, officers, awards, award rules, award recipients, net statistics, set callsign, version info PyPI

Radio Logging

Package Service Tools Status
n1mm-mcp N1MM Logger+ 9 tools: station state, lookup, contacts, bandmap, performance, multipliers, clock, diagnostics, version info PyPI
netlogger-mcp NetLogger 6 tools: active nets, live check-ins and who's up, past nets, past check-ins, set callsign, version info PyPI

Infrastructure

Package Purpose Status
qsp-client QSP — an MCP client that relays tools to any local LLM (llama.cpp, Ollama, vLLM, SGLang). Formerly qsp-mcp PyPI

Quick Start

# One-line install (Linux / macOS)
curl -sL https://qso-graph.io/install.sh | bash

# Launch the config manager
qso-graph-config

# Or run a single server directly with uv
uvx solar-mcp

Each server works with any MCP client: Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code / GitHub Copilot, Windsurf, Gemini CLI, Goose, and Codex CLI — or use qsp-client to relay tools to any local LLM.

Architecture

install.sh (bootstrap)          qso-graph-config (manager)
 └── ~/.qso-graph/               ├── Install / upgrade servers
      ├── venv/                   ├── Credential setup (qso-auth)
      ├── bin/ (PATH)             ├── Dataset downloads (ionis-mcp)
      └── etc/state.json          └── MCP client config generation

qso-graph-auth (identity)       MCP Servers (qso-graph)
 ├── PersonaManager        ──>   eqsl-mcp, qrz-mcp, lotw-mcp, hamqth-mcp
 ├── OS keyring credentials      Each server = 1 uvx       
 └── qso-auth CLI                Each server = 4-8 MCP tools

adif-mcp (ADIF spec)            Public Servers
 └── 8 spec tools          ──>   solar, pota, sota, iota, wspr (no auth)

qsp-client (tool relay)         Local LLM Inference
 └── Stateless pipe        ──>   llama.cpp, Ollama, vLLM, SGLang
     MCP tools → OpenAI           Any model with function calling
     tools format                  Zero cloud dependency

Demos

Demo Description Status
qso-graph-demo QSO logbook analysis showcase (Next.js / Vercel) Live Demo
dxpedition-demo DXpedition propagation analysis — 3Y0K Bouvet Island (Next.js / Vercel) Live Demo

Related Projects

Project Description
ionis-mcp HF propagation analytics from 175M+ signatures (14B observations) — PyPI
ionis-jupyter Jupyter notebooks for propagation research

Reporting Security Issues

Do NOT open public GitHub issues for security vulnerabilities. Email: ki7mt@yahoo.com with subject [SECURITY] qso-graph vulnerability report.

License

GPL-3.0-or-later

Popular repositories Loading

  1. adif-mcp adif-mcp Public

    ADIF MCP server — AI-agent access to Amateur Radio logging per ADIF 3.1.7

    Python 4

  2. qrz-mcp qrz-mcp Public

    MCP server for QRZ.com — callsign lookup, DXCC resolution, logbook queries

    Python 3 1

  3. solar-mcp solar-mcp Public

    MCP server for solar indices and space weather — SFI, SSN, Kp, DSCOVR, alerts

    Python 2 1

  4. pota-mcp pota-mcp Public

    MCP server for Parks on the Air — park lookup, activator/hunter stats, spots

    Python 2

  5. sota-mcp sota-mcp Public

    MCP server for Summits on the Air — summit lookup, spots, alerts, nearby summits

    Python 1

  6. lotw-mcp lotw-mcp Public

    MCP server for ARRL Logbook of The World — QSO query, QSL status, DXCC credit

    Python 1

Repositories

Showing 10 of 25 repositories

Top languages

Loading…

Most used topics

Loading…