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.
View the live demo → · Documentation →
Your credentials never leave the OS keyring. Every qso-graph server enforces 10 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, noshell=True, noeval - 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
| Package | Purpose | Tools | Status |
|---|---|---|---|
| adif-mcp | ADIF 3.1.6 spec engine, validation, persona management, keyring credentials | Parse, validate, search enumerations, list enumerations, distance, heading, version | PyPI v0.7.0 |
| Package | Service | Tools | Status |
|---|---|---|---|
| eqsl-mcp | eQSL.cc | Inbox download, QSO verification, AG status, last upload | PyPI v0.1.1 |
| lotw-mcp | LoTW | Confirmations, QSO query, DXCC credits, user activity | PyPI v0.1.1 |
| qrz-mcp | QRZ.com | Callsign lookup, DXCC resolution, logbook queries | PyPI v0.1.1 |
| clublog-mcp | Club Log | DXCC resolution, log search, propagation activity, Most Wanted, expeditions | PyPI v0.1.1 |
| hamqth-mcp | HamQTH | Callsign lookup, DXCC, bio, activity | PyPI v0.1.1 |
| Package | Service | Tools | Status |
|---|---|---|---|
| pota-mcp | POTA | Live spots, park info, stats, schedules, location search | PyPI v0.1.0 |
| sota-mcp | SOTA | Spots, alerts, summit info, nearby search, activator stats | PyPI v0.1.0 |
| solar-mcp | NOAA SWPC | SFI, Kp, solar wind, X-ray flux, band outlook, alerts | PyPI v0.1.0 |
| wspr-mcp | WSPR | Beacon spots, band activity, propagation paths, TX power | PyPI v0.1.0 |
# Install a server
pip install eqsl-mcp
# Set up credentials (via adif-mcp)
pip install adif-mcp
adif-mcp persona create ki7mt --callsign KI7MT
adif-mcp persona provider ki7mt eqsl --username KI7MT
adif-mcp persona secret ki7mt eqsl
# Add to Claude Desktop config and restartEach server works with any MCP client: Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code / GitHub Copilot, and Gemini CLI. See individual package READMEs for configuration.
adif-mcp (foundation) MCP Servers (qso-graph)
├── PersonaManager ──> eqsl-mcp, qrz-mcp, clublog-mcp, ...
├── Keyring credentials Each server = 1 pip install
└── ADIF spec tools Each server = 3-10 MCP tools
- adif-mcp handles identity and credentials once — all servers share it
- Each server is a standalone
pip installwith a single CLI entry point - Two public tools per server where possible (no auth needed to try it)
- Python (FastMCP) now, Go single-binary ports planned for production
| Project | Description |
|---|---|
| ionis-mcp | HF propagation analytics from 175M+ signatures (14B observations) |
| ionis-jupyter | Jupyter notebooks for propagation research |
Do NOT open public GitHub issues for security vulnerabilities. Email: ki7mt@yahoo.com with subject [SECURITY] qso-graph vulnerability report.
GPL-3.0-or-later