QSO-Graph MCP Suite — interactive installer and manager
Project description
QSO-Graph Config
Installer and manager for the QSO-Graph ham radio MCP server suite — 12 packages, 71 tools, one command.
Quick Start
curl -sL https://qso-graph.io/install.sh | bash
This creates ~/.qso-graph/ with an isolated Python environment, installs
the base MCP servers, and adds them to your PATH. Works on Linux and macOS.
After install, run qso-graph-config to manage servers, credentials,
datasets, and MCP client configuration.
What Gets Installed
Base (default — 6 servers, 38 tools)
No accounts, no credentials, no downloads. Just works.
| Server | Tools | What It Does |
|---|---|---|
| adif-mcp | 8 | ADIF 3.1.6 spec — validation, parsing, geospatial |
| solar-mcp | 6 | Space weather — SFI, Kp, solar wind, band outlook |
| pota-mcp | 6 | Parks on the Air — spots, park info, schedules |
| sota-mcp | 4 | Summits on the Air — spots, alerts, summit info |
| iota-mcp | 6 | Islands on the Air — group lookup, nearby search |
| wspr-mcp | 8 | WSPR analytics — propagation, beacons, SNR trends |
Auth (optional — 5 packages, 22 tools)
Logbook services requiring free or paid accounts. Credentials stored in
your OS keyring via qso-auth CLI.
| Server | Tools | What It Does |
|---|---|---|
| qso-graph-auth | — | OS keyring credential manager |
| qrz-mcp | 5 | QRZ.com — callsign lookup, DXCC, logbook |
| eqsl-mcp | 5 | eQSL.cc — inbox, verification, AG status |
| lotw-mcp | 5 | LoTW — confirmations, QSOs, DXCC credits |
| hamqth-mcp | 7 | HamQTH — lookup, DX spots, RBN, bio |
ionis-mcp (optional — 1 package, 11 tools)
HF propagation analytics from 175M+ signatures. Requires a dataset download (~430 MB minimal, ~15 GB full).
| Server | Tools | What It Does |
|---|---|---|
| ionis-mcp | 11 | Band openings, path analysis, solar correlation |
How It Works
QSO-Graph Config follows the Conda model:
install.shbootstraps~/.qso-graph/with a Python venvqso-graph-config(Python) handles all logic — TUI menus, installs, upgrades, credential setup, dataset downloads, MCP client config generation- Wrapper scripts in
~/.qso-graph/bin/make all servers available on PATH - One PATH entry works on both Linux and macOS
~/.qso-graph/
venv/ Python virtual environment (servers live here)
bin/ Wrapper scripts (add to PATH)
etc/ state.json
log/ Install logs
Usage
qso-graph-config # Interactive TUI (dialog/whiptail or numbered prompts)
qso-graph-config --no-tui # Force plain text prompts
qso-graph-config --upgrade # Non-interactive upgrade
qso-graph-config --version # Show version
The TUI presents a raspi-config-style menu:
- Install Servers — select Base, Auth, ionis-mcp tiers
- Credentials — set up service accounts via
qso-auth - Datasets — download IONIS propagation data
- Status — show installed servers and versions
- Configure Client — generate config for 9 MCP clients
- Update — check PyPI for new versions
- Uninstall — remove everything
MCP Client Configuration
After installation, configure your MCP client to use the servers. QSO-Graph Config generates config snippets for:
- Claude Desktop
- Claude Code
- VS Code (Copilot)
- Cursor
- Windsurf
- ChatGPT Desktop
- Gemini CLI
- Goose
- Codex CLI
Example for Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"solar": { "command": "/home/you/.qso-graph/bin/solar-mcp" },
"pota": { "command": "/home/you/.qso-graph/bin/pota-mcp" },
"wspr": { "command": "/home/you/.qso-graph/bin/wspr-mcp" }
}
}
Advanced: pip Install
For users who manage their own Python environments:
pip install qso-graph-config # Base — 6 servers
pip install "qso-graph-config[auth]" # + logbook servers
pip install "qso-graph-config[ionis]" # + ionis-mcp
pip install "qso-graph-config[full]" # Everything
Requirements
- Python 3.11+ (Linux or macOS)
dialogorwhiptailfor TUI menus (optional — falls back to numbered prompts)
Windows
Windows users install via the QSO-Graph Installer (.exe) available from SourceForge. The Windows installer uses PyInstaller + InnoSetup and does not require Python.
Links
- Website: qso-graph.io
- Source: github.com/qso-graph
- Demo: qso-graph-demo.vercel.app
- All servers on PyPI: pypi.org/search/?q=qso-graph
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qso_graph_config-0.1.1.tar.gz.
File metadata
- Download URL: qso_graph_config-0.1.1.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6008518e17f839b94a262e32f0ebfe70d646d401431d8ccd22e0bb2ebc1f6e20
|
|
| MD5 |
d230ce31587cdd529ced41724d593f12
|
|
| BLAKE2b-256 |
5221e95b4c046deedc06be40255b90cea95b1d714fddc218b367a0303ec3da77
|
Provenance
The following attestation bundles were made for qso_graph_config-0.1.1.tar.gz:
Publisher:
publish.yml on qso-graph/qso-graph-config
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qso_graph_config-0.1.1.tar.gz -
Subject digest:
6008518e17f839b94a262e32f0ebfe70d646d401431d8ccd22e0bb2ebc1f6e20 - Sigstore transparency entry: 1059430508
- Sigstore integration time:
-
Permalink:
qso-graph/qso-graph-config@9cff03ea660a0e056a6cd23c62f31f8e04f4d48d -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/qso-graph
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9cff03ea660a0e056a6cd23c62f31f8e04f4d48d -
Trigger Event:
push
-
Statement type:
File details
Details for the file qso_graph_config-0.1.1-py3-none-any.whl.
File metadata
- Download URL: qso_graph_config-0.1.1-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5788ecece140ef7699821b64e24f4d3fde8419196487b57081d7f52d76362218
|
|
| MD5 |
92d852e83cf4ae07da299d4c2efc53e2
|
|
| BLAKE2b-256 |
555a2772bb4049f4a85451f2e56ccc9c2266729e6ebeb715ded7a87773ae598c
|
Provenance
The following attestation bundles were made for qso_graph_config-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on qso-graph/qso-graph-config
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qso_graph_config-0.1.1-py3-none-any.whl -
Subject digest:
5788ecece140ef7699821b64e24f4d3fde8419196487b57081d7f52d76362218 - Sigstore transparency entry: 1059430513
- Sigstore integration time:
-
Permalink:
qso-graph/qso-graph-config@9cff03ea660a0e056a6cd23c62f31f8e04f4d48d -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/qso-graph
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9cff03ea660a0e056a6cd23c62f31f8e04f4d48d -
Trigger Event:
push
-
Statement type: