QRZ.com MCP server. Callsign lookup, DXCC resolution, logbook queries via QRZ XML API.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx qrz-mcp
MCP client config
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": [
"qrz-mcp"
]
}
}
}MCP server for QRZ.com — callsign lookups, DXCC entity resolution, and logbook queries through any MCP-compatible AI assistant.
Part of the qso-graph project. Uses qso-graph-auth for credential management.
uvx qrz-mcp # run it; nothing to install
| Tool | API | Auth | Description |
|---|---|---|---|
qrz_lookup | XML | Session key | Callsign lookup (name, grid, DXCC, license class, QSL info, image) |
qrz_dxcc | XML | Session key | DXCC entity resolution from callsign or entity code |
qrz_logbook_status | Logbook | API key | Logbook stats (QSO count, DXCC total, date range) |
qrz_logbook_fetch | Logbook | API key | Query QSOs with filters and transparent pagination |
qrz_download | Logbook | API key | Download full logbook as ADIF |
get_version_info | — | None | Service version + upstream QRZ API version (fleet identity attestation) |
qrz-mcp uses qso-graph-auth personas for credential management. QRZ has two separate auth mechanisms, exposed as two providers — set up whichever you need:
| Provider | Tools | Credentials |
|---|---|---|
qrz | qrz_lookup, qrz_dxcc | username + password |
qrz_logbook | qrz_logbook_status, qrz_logbook_fetch, qrz_download | username + API key |
# Install qso-graph-auth if you haven't
uv tool install qso-graph-auth
# Create a persona (--start is required)
qso-auth persona add --name ki7mt --callsign KI7MT --start 2018-01-01
# XML API (qrz_lookup, qrz_dxcc)
qso-auth provider enable ki7mt qrz
qso-auth creds set ki7mt qrz # asks for your username, then your password (hidden)
# Logbook API (qrz_logbook_status, qrz_logbook_fetch, qrz_download)
qso-auth provider enable ki7mt qrz_logbook
qso-auth creds set ki7mt qrz_logbook # asks for your username, then your API key
# Verify
qso-auth creds doctor
Pass the persona name (ki7mt above) as the persona argument on every tool call.
Omit
--password/--api-keyto be prompted instead — passing secrets as CLI arguments leaves them in your shell history.
XML API (callsign lookup, DXCC) requires a QRZ XML Subscription ($35.95/yr). Free tier returns name and address only.
Logbook API requires an API key from QRZ Settings > API.
qrz-mcp works with any MCP-compatible client. Add the server config and restart — tools appear automatically.
Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}
Add to .claude/settings.json:
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}
ChatGPT supports MCP via the OpenAI Agents SDK. Add under Settings > Apps & Connectors, or configure in your agent definition:
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}
Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}
"Look up W1AW on QRZ — what's their grid and license class?"
"What DXCC entity is VP8PJ?"
"How many QSOs do I have in my QRZ logbook?"
"Show me all 20m FT8 QSOs from my QRZ logbook this year"
QRZ enforces undocumented rate limits that can trigger 24-hour IP bans. qrz-mcp protects you:
Set the mock environment variable to test all 6 tools without QRZ credentials:
QRZ_MCP_MOCK=1 qrz-mcp
qrz-mcp --transport streamable-http --port 8002
Then open the MCP Inspector at http://localhost:8002.
git clone https://github.com/qso-graph/qrz-mcp.git
cd qrz-mcp
uv sync --group dev
uv run pytest
| Feature | Free | XML Data ($35.95/yr) |
|---|---|---|
| Callsign lookups/day | 100 | Unlimited |
| Fields returned | Name + address only | All (grid, lat/lon, DXCC, class, QSL, image) |
| Logbook API | No | Yes |
| DXCC lookup | No | Yes |
GPL-3.0-or-later