qso-graph¶
MCP servers connecting AI assistants to ham radio services.
Ask your AI assistant to look up a callsign, check your LoTW confirmations, find POTA spots, or get a band-by-band propagation forecast — all through natural language.
9 Packages, 44 Tools¶
| Package | Tools | Auth | What It Does |
|---|---|---|---|
| eqsl-mcp | 4 | Persona | eQSL inbox, QSO verification, AG status |
| qrz-mcp | 4 | Persona + API key | Callsign lookup, DXCC, logbook access |
| clublog-mcp | 6 | API key | DXCC resolution, expedition logs, Most Wanted |
| lotw-mcp | 4 | Persona | LoTW confirmations, QSOs, DXCC credits |
| hamqth-mcp | 4 | Persona | Free callsign lookup, DXCC, bio, activity |
| pota-mcp | 6 | None | Live spots, park info, stats, schedules |
| sota-mcp | 5 | None | Spots, alerts, summit info, nearby search |
| solar-mcp | 6 | None | SFI, Kp, solar wind, X-ray, band outlook |
| wspr-mcp | 5 | None | Beacon spots, band activity, propagation |
Quick Install¶
# Install any package
pip install eqsl-mcp qrz-mcp clublog-mcp lotw-mcp
# Public-only packages (no credentials needed)
pip install pota-mcp sota-mcp solar-mcp wspr-mcp
See Getting Started for MCP client configuration.
How It Works¶
qso-graph packages are MCP servers — they run locally on your machine and expose ham radio services as tools that AI assistants can call. Your credentials stay in your OS keyring and never leave your machine.
You: "Do I have any new LoTW confirmations this week?"
│
▼
AI Assistant (Claude, ChatGPT, Cursor, etc.)
│
▼ calls lotw_confirmations(persona="ki7mt", since="2026-03-01")
│
lotw-mcp (local process)
│
▼ HTTPS request to lotw.arrl.org (credentials from OS keyring)
│
LoTW API
│
▼ ADIF response
│
You: "You have 3 new confirmations: JA1ABC on 20m FT8, ..."
Security First¶
All qso-graph servers follow a security framework with 10 non-negotiable guarantees:
- Credentials stored in OS keyring only — never in config files
- Credentials never appear in logs, tool results, or error messages
- No command injection surface — no
subprocess, noshell=True - All external connections HTTPS only
- Rate limiting to prevent account bans
- Input validation on all user-provided strings
- Security audit before every PyPI release
Live Demo¶
See qso-graph tools in action — no install required:
:material-open-in-new: Launch Demo
Dashboard, physics lab, DXCC progress, path analyzer, and log viewer — all powered by pre-computed MCP tool output from 49,233 real QSOs.
Project Links¶
- Demo: qso-graph-demo.vercel.app
- GitHub: github.com/qso-graph
- PyPI: eqsl-mcp · qrz-mcp · clublog-mcp · lotw-mcp
- Foundation: adif-mcp — ADIF parsing + credential management
- Related: IONIS — HF propagation prediction from 14B amateur radio observations