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.0.tar.gz (9.1 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.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: clublog_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.1 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.0.tar.gz
Algorithm Hash digest
SHA256 d3efe2bb313d3130039bfbf6d8faa6f8e5da1684a90e41df2ff315f08ed596f0
MD5 04997efa882ff813156b46425222bcca
BLAKE2b-256 9ec1485862156fba5db18db5335e12bf1184d2e18440e2cc4c739087756b94b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for clublog_mcp-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: clublog_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c1703d8bc578a329c848af3caf7c1961dce4bc80097a5cac210dd725c811605f
MD5 9f6a9edc67539aafb87b5fca7b7c59e2
BLAKE2b-256 00b25350e28d15ffd0b4fb1974870844f412af2d0328c43b512d3b708daaf231

See more details on using hashes here.

Provenance

The following attestation bundles were made for clublog_mcp-0.1.0-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