Skip to main content

ADIF MCP core engine with plugin support (LoTW, eQSL, QRZ, Clublog)

Project description

adif-mcp

Core Model Context Protocol (MCP) server for Amateur Radio Logging, built on the ADIF 3.1.6 specification.

Overview

adif-mcp gives AI agents safe, typed access to Amateur Radio logging data. It validates and parses ADIF records, searches the full ADIF 3.1.6 specification (fields, enumerations, data types), and provides geospatial utilities for Maidenhead locators. A plugin system supports service integrations for LoTW, eQSL, QRZ, and Club Log.

Made with Python License: GPL-3.0 ADIF 3.1.6 PyPI CI Docs

Quick Start

pip install adif-mcp

Configure Your MCP Client

adif-mcp works with any MCP-compatible client. Add the server config and restart -- tools appear automatically.

Claude Desktop

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

{
  "mcpServers": {
    "adif": {
      "command": "adif-mcp"
    }
  }
}

Claude Code

Add to .claude/settings.json:

{
  "mcpServers": {
    "adif": {
      "command": "adif-mcp"
    }
  }
}

ChatGPT Desktop

Configure via Settings > Apps & Connectors, or in your agent definition:

{
  "mcpServers": {
    "adif": {
      "command": "adif-mcp"
    }
  }
}

Cursor

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

{
  "mcpServers": {
    "adif": {
      "command": "adif-mcp"
    }
  }
}

VS Code / GitHub Copilot

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

{
  "servers": {
    "adif": {
      "command": "adif-mcp"
    }
  }
}

Gemini CLI

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

{
  "mcpServers": {
    "adif": {
      "command": "adif-mcp"
    }
  }
}

Tools

adif-mcp exposes 7 tools via the Model Context Protocol:

Category Tool Description
Validation validate_adif_record Validate a raw ADIF string against the 3.1.6 spec
Validation parse_adif Streaming parser for large ADIF files with pagination
Spec read_specification_resource Retrieve raw JSON for any spec module (band, mode, fields)
Spec search_enumerations Search administrative subdivision records
Geospatial calculate_distance Great Circle distance (km) between two Maidenhead locators
Geospatial calculate_heading Initial beam heading (azimuth) between two locators
System get_version_info Active service version and ADIF spec version

Architecture

adif-mcp is the foundation package -- ADIF spec tools, persona management, and credential storage. Service integrations are separate MCP servers that depend on adif-mcp for identity and auth:

Package Status What It Does
adif-mcp Published ADIF 3.1.6 spec tools + persona/credential management
lotw-mcp Planned LoTW confirmations, award tracking
eqsl-mcp Planned eQSL inbox, confirmation status
qrz-mcp Planned Callsign lookup, logbook queries
clublog-mcp Planned DXCC matching, OQRS, expedition logs

Each integration MCP uses adif-mcp for persona lookup and keyring-backed credentials. Operators install only the servers they need. This keeps each server focused, independently versioned, and free of unnecessary dependencies.

Compliance & Provenance

adif-mcp follows the ADIF Specification (currently 3.1.6) and uses registered Program IDs to identify all exports:

  • ADIF-MCP -- Core engine
  • ADIF-MCP-LOTW -- LoTW plugin
  • ADIF-MCP-EQSL -- eQSL plugin
  • ADIF-MCP-QRZ -- QRZ plugin
  • ADIF-MCP-CLUBLOG -- Club Log plugin

The project uses APP_ fields for provenance when augmenting records:

  • APP_ADIF-MCP_OP -- operation performed (normalize, validate, merge)
  • APP_ADIF-MCP-LOTW_ACTION -- LoTW plugin operation
  • APP_ADIF-MCP-EQSL_TIME -- timestamp of eQSL merge

See the Program ID & APP_ Field Policy for full details.

License

GPL-3.0-or-later. See LICENSE for details.

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

adif_mcp-0.8.0.tar.gz (261.9 kB view details)

Uploaded Source

Built Distribution

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

adif_mcp-0.8.0-py3-none-any.whl (280.1 kB view details)

Uploaded Python 3

File details

Details for the file adif_mcp-0.8.0.tar.gz.

File metadata

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

File hashes

Hashes for adif_mcp-0.8.0.tar.gz
Algorithm Hash digest
SHA256 a6d8746e15331ad414f8197e9fa5692398328dcb05915f6b036c294f92ccb771
MD5 cd1b8d7e10040ccff0251831dd368912
BLAKE2b-256 c393880bb6ccdd6b088af54c3e596fd89f4a94c0ce1d83f5a2f9024dc3f136a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for adif_mcp-0.8.0.tar.gz:

Publisher: publish.yml on qso-graph/adif-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 adif_mcp-0.8.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for adif_mcp-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73ff37cdc1e99e51cd703a6021601975f7a4c07f2fbaecc8fcc24872f5537c36
MD5 d03ef01db4759974c189fe10eb9f948b
BLAKE2b-256 afe60a3d23886ff9ded06ad0cd8f273c1a6cc291effdfaf8692035471b3a5003

See more details on using hashes here.

Provenance

The following attestation bundles were made for adif_mcp-0.8.0-py3-none-any.whl:

Publisher: publish.yml on qso-graph/adif-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