← Back to search

io.github.qso-graph/hamqth-mcp

qso-graph Scanned 3d ago

HamQTH.com MCP server. Free callsign lookup, DX spots, RBN data, SAVP verification.

B
76 / 100

Versions

0.2.0latest
first seen Jun 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 8

get_version_info
annotations: none low

Get hamqth-mcp service version and upstream HamQTH API version. Returns the running PyPI version of hamqth-mcp and the HamQTH.com API contract in use. Use this to confirm fleet alignment across MCP deployments — agents can compare service_version and spec_version across servers to detect drift without going outside the MCP protocol. Returns: service_name, service_version (PyPI), and spec_version (HamQTH API).

hamqth_lookup
annotations: none low

Look up a callsign on HamQTH (free, no subscription required). Returns name, grid, DXCC, coordinates, QSL preferences, and more. Field availability depends on what the operator has published. Args: persona: Persona name configured in adif-mcp. callsign: Callsign to look up (e.g., OK2CQR). Returns: Structured record with station details.

persona str callsign str
hamqth_dxcc
annotations: none low

Resolve a DXCC entity from a callsign or ADIF entity code. Public endpoint — no authentication required. Args: query: Callsign (e.g., VP8PJ) or ADIF entity code (e.g., 291). Returns: DXCC entity details (name, continent, CQ/ITU zones, coordinates).

query str
hamqth_bio
annotations: none low

Fetch an operator's biography from HamQTH. Args: persona: Persona name configured in adif-mcp. callsign: Callsign to look up. Returns: Callsign and biography text (HTML stripped).

persona str callsign str
hamqth_activity
annotations: none low

Get recent DX cluster, RBN, and logbook activity for a callsign. Args: persona: Persona name configured in adif-mcp. callsign: Callsign to check. Returns: List of recent activity items (spots, RBN decodes, logbook entries).

persona str callsign str
hamqth_dx_spots
annotations: none low

Live DX cluster spots from HamQTH (public, no auth required). Spots update every ~15 seconds. Max 200 spots per request. Args: limit: Number of spots to return (default 60, max 200). band: Optional ADIF band filter (e.g., "20M", "40M"). call: Optional callsign filter — matches spotted call or spotter (case-insensitive, e.g., "3Y0K"). Pulls max spots and filters client-side since the API does not support server-side filtering. Returns: List of DX cluster spots with call, freq, band, spotter, etc.

band string call string limit int
hamqth_rbn
annotations: none low

Reverse Beacon Network spots from HamQTH (public, no auth required). Args: band: ADIF band numbers, comma-separated (e.g., "20,40"). mode: Filter by mode (CW, RTTY, PSK31, PSK63). cont: Filter by spotted station's continent (e.g., "EU", "NA"). fromcont: Filter by receiver/skimmer continent. age: Maximum age in seconds. call: Optional callsign filter — matches spotted station (case-insensitive, e.g., "3Y0K"). Filtered client-side. Returns: List of RBN decodes with call, freq, mode, age, and listener dB values.

age string band string call string cont string mode string fromcont string
hamqth_verify_qso
annotations: none low

Verify a QSO via HamQTH SAVP protocol (public, no auth required). Checks if a QSO exists in HamQTH's database for both parties. Args: mycall: Your callsign (e.g., "KI7MT"). hiscall: Other station's callsign (e.g., "OK2CQR"). date: QSO date in YYYYMMDD format (e.g., "20260305"). band: Band (e.g., "20M", "40M"). Returns: SAVP verification result with match status.

band str date str mycall str hiscall str

Permissions 3

network medium
Server uses network capabilities via: urllib
filesystem low
Server uses filesystem capabilities via: os, pathlib
env_vars low
Server uses env_vars capabilities via: os.environ, os.getenv()

Scan Findings 32

medium
Vulnerable dependency: fastmcp@3.0 (GHSA-m8x7-r2rg-vh5g) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0 (GHSA-rww4-4w9c-7733) dependency_analyzer · 95%
low
Tool 'get_version_info' has no annotations annotation_checker · 100%
low
Tool 'hamqth_lookup' has no annotations annotation_checker · 100%
low
Tool 'hamqth_dxcc' has no annotations annotation_checker · 100%
low
Tool 'hamqth_bio' has no annotations annotation_checker · 100%
low
Tool 'hamqth_activity' has no annotations annotation_checker · 100%
low
Tool 'hamqth_dx_spots' has no annotations annotation_checker · 100%
low
Tool 'hamqth_rbn' has no annotations annotation_checker · 100%
low
Tool 'hamqth_verify_qso' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: fastmcp@3.0 (GHSA-vv7q-7jx5-f767) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0 (PYSEC-2026-2475) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0 (PYSEC-2026-2476) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0 (PYSEC-2026-338) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: get_version_info manifest_parser · 90%
info
Tool: hamqth_lookup manifest_parser · 90%
info
Tool: hamqth_dxcc manifest_parser · 90%
info
Tool: hamqth_bio manifest_parser · 90%
info
Tool: hamqth_activity manifest_parser · 90%
info
Tool: hamqth_dx_spots manifest_parser · 90%
info
Tool: hamqth_rbn manifest_parser · 90%
info
Tool: hamqth_verify_qso manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (1) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 80%
low
Permission: filesystem access detected permission_analyzer · 70%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%