Skip to main content

MCP server for Club Log — log search, DXCC status, most-wanted rankings, OQRS

Project description

clublog-mcp

MCP server for Club Log — DXCC entity resolution, expedition log search, propagation activity, Most Wanted rankings, and real-time callsign monitoring through any MCP-compatible AI assistant.

Part of the qso-graph project. Operated by Michael Wells, G7VJR.

Install

pip install clublog-mcp

Tools

Tool Auth Description
clublog_dxcc API key Resolve callsign to DXCC entity (date-aware for prefix changes)
clublog_search API key Search expedition/public logs ("am I in the log?")
clublog_activity API key Hour-by-hour propagation between two DXCC entities
clublog_most_wanted Public Current Most Wanted DXCC entity list
clublog_expeditions Public Active/recent expedition list with QSO counts
clublog_watch API key Real-time 24h activity monitor for a callsign

Quick Start

1. Get an API key

Request an application API key at clublog.org/requestapikey.php. This is a per-application key (40-character hex), not a per-user credential.

Important: API keys are auto-revoked if found in public repos (GitHub scanning active).

2. Set the environment variable

export CLUBLOG_API_KEY=your-40-char-hex-key

Two tools (clublog_most_wanted and clublog_expeditions) work without an API key.

3. Configure your MCP client

Claude Desktop

Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):

{
  "mcpServers": {
    "clublog": {
      "command": "clublog-mcp",
      "env": {
        "CLUBLOG_API_KEY": "your-40-char-hex-key"
      }
    }
  }
}

Claude Code

Add to .claude/settings.json:

{
  "mcpServers": {
    "clublog": {
      "command": "clublog-mcp",
      "env": {
        "CLUBLOG_API_KEY": "your-40-char-hex-key"
      }
    }
  }
}

ChatGPT Desktop

{
  "mcpServers": {
    "clublog": {
      "command": "clublog-mcp",
      "env": {
        "CLUBLOG_API_KEY": "your-40-char-hex-key"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "clublog": {
      "command": "clublog-mcp",
      "env": {
        "CLUBLOG_API_KEY": "your-40-char-hex-key"
      }
    }
  }
}

VS Code / GitHub Copilot

Add to .vscode/mcp.json in your workspace:

{
  "servers": {
    "clublog": {
      "command": "clublog-mcp",
      "env": {
        "CLUBLOG_API_KEY": "your-40-char-hex-key"
      }
    }
  }
}

Gemini CLI

Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):

{
  "mcpServers": {
    "clublog": {
      "command": "clublog-mcp",
      "env": {
        "CLUBLOG_API_KEY": "your-40-char-hex-key"
      }
    }
  }
}

4. Ask questions

"What DXCC entity is 3Y0J?"

"Am I in the 3Y0J expedition log? Search for KI7MT"

"Show me propagation activity between USA (291) and Japan (339)"

"What are the top 10 Most Wanted DXCC entities?"

"What expeditions are currently active on Club Log?"

"Is 3Y0J still on the air? Show me their 24-hour activity"

Rate Limiting

Club Log has no published rate limits, but enforcement is real and automatic. clublog-mcp protects you:

  • 500ms minimum delay between all API calls
  • Token bucket: 30 requests/minute
  • 3600s freeze on HTTP 403 (IP ban detection)
  • Response caching (DXCC: 1hr, Most Wanted: 24hr, Activity: 1hr, Watch: 5min)

Never loop over /dxcc for batch resolution — Club Log provides /bulkdxcc for that (future v2.0 feature).

Band Normalization

Club Log uses bare numbers for bands. clublog-mcp normalizes all responses to ADIF names:

Club Log clublog-mcp
"20" "20m"
"40" "40m"
"C" "CW"
"P" "Phone"
"D" "Data"

Testing Without an API Key

Set the mock environment variable to test all 6 tools:

CLUBLOG_MCP_MOCK=1 clublog-mcp

MCP Inspector

CLUBLOG_API_KEY=your-key clublog-mcp --transport streamable-http --port 8003

Development

git clone https://github.com/qso-graph/clublog-mcp.git
cd clublog-mcp
pip install -e .

License

GPL-3.0-or-later

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clublog_mcp-0.1.2.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clublog_mcp-0.1.2-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file clublog_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: clublog_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clublog_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 95bfe15640285a0d56c3de8cef818cc005f4f2e5e9cc83537e3b856faef20e98
MD5 3a9fe23815fc141da3327e4237916d67
BLAKE2b-256 709ac36b9045f9190189d149b765f02238761e059ae0e8cad4f555a51b5daf8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for clublog_mcp-0.1.2.tar.gz:

Publisher: publish.yml on qso-graph/clublog-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clublog_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: clublog_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clublog_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f01cd38a4777d4d2aad2fc4400483753707a987c5a020228536cdab4242c8eac
MD5 b5a117703654022bb0824abee251ecd7
BLAKE2b-256 03a4a9bfbaaa7f09ba771b2f845f903e73ac5f807a76ea4cbacc00b28d8be1d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for clublog_mcp-0.1.2-py3-none-any.whl:

Publisher: publish.yml on qso-graph/clublog-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page