Skip to main content

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

Project description

adif-mcp

Core Model Context Protocol (MCP) service for Amateur Radio Logging, per ADIF 3.1.6 specification

Pretty Code • Pretty Output • Iterative Docs - A simple mantra: keep the code clean, the output clear, and the docs evolving.


Resources

Made with Python License: MIT

Core Project Health

ADIF GitHub release GitHub tag CI Docs pre-commit Conventional Commits SSL Certificate Expiry Check

MCP / API Readiness

MCP API Docs JSON Schema Manifest Valid

Compliance and Program Registry

ADIF 3.1.6 Program ID


Project Ethos

ADIF-MCP is a community-driven effort. It is not intended to replace or compete with existing ADIF libraries, utilities, or logging applications. Instead, it provides a common foundation that others can build upon.

  • Interoperability — a schema-driven, spec-compliant core that makes it easier for tools, logs, and services to talk to each other.
  • Extensibility — a plugin and integration framework for services like LoTW, eQSL, QRZ, and future platforms.
  • Collaboration — designed to complement, not fragment, the ecosystem of ADIF tools already enjoyed by the ham community.
  • Future-facing — introduces safe, typed access to ADIF data in contexts such as AI agents and MCP integrations, opening doors for innovation while preserving compatibility.

Our goal is simple: support and enhance the Amateur Radio logging ecosystem while keeping the project open, transparent, and aligned with the spirit of the hobby.


Specifications & Standards

ADIF-MCP is built upon the official Amateur Data Interchange Format (ADIF).

  • Current Spec Version: 3.1.6 (Released 2025-09-15)
  • Source: All field definitions, data types, and enumerations are derived from the official resources provided by the ADIF Developers Group.
  • Compliance: This tool aims for 100% compliance with the ADIF 3.1.6 standard, including support for ADI and ADX formats.

Note: ADIF is a trademark of the ADIF Developers Group. This project is an independent implementation intended to support the amateur radio community.


ADIF-MCP Engines

This package defines the ADIF MCP core engine, with plugins for:

  • LoTW (adif-mcp-lotw)
  • eQSL (adif-mcp-eqsl)
  • qrz (adif-mcp-qrz)
  • clublog (adif-mcp-clublog)

Performs these tasks

  • Validation & normalization of ADIF records
  • Unified schema for consistent QSO storage and exchange
  • MCP-ready tools for safe AI-agent access
  • Foundation for service adapters (e.g., LoTW, eQSL, Qrx, Clublog)

🔑 Takeaway: MCP doesn’t replace LoTW, eQSL, Clublog, Qrz, or award / logging program(s). Instead, it gives operators visibility and accessibility into their award progress, across sponsors, without them needing to export, filter, or code.


Why ADIF-MCP Matters

Unlike existing ADIF editors and one-off utilities, ADIF-MCP is a shared protocol engine for the Amateur Radio community:

  • Spec-compliant & typed — ADIF fields are validated against the official standard.
  • Extensible — integrations (LoTW, eQSL, QRZ, Clublog, and other logging apps) plug into a common base.
  • AI-ready — exposes safe, typed tools to AI agents via the Model Context Protocol.
  • Foundation, not silo — one engine many apps can trust, instead of everyone re-implementing ADIF parsing.

👉 ADIF-MCP turns ADIF from a static file format into a living protocol interface.


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"
    }
  }
}

Next Steps

  • Build adif-mcp-lotw and adif-mcp-eqsl adapters
  • Expose MCP tools for validation, award tracking, and service sync
  • Support cross-logger interoperability with AI-driven agents

Compliance & Provenance

ADIF-MCP and its plugins follow the ADIF Specification (currently 3.1.6) and use registered Program IDs to identify all exports:

  • ADIF-MCP — Core engine
  • ADIF-MCP-LOTW — Plugin for ARRL Logbook of The World
  • ADIF-MCP-EQSL — Plugin for eQSL.cc
  • ADIF-MCP-QRZ — Plugin for Qrz.com
  • ADIF-MCP-CLUBLOG — Plugin for Clublog.com
  • ADIF-MCP-NEXT — Whatever else operators want integrated

To ensure transparency and auditability, the project also uses APP_ fields for provenance when augmenting records. Examples include:

  • 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

MIT — open and free for amateur radio use.

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.5.1.tar.gz (247.0 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.5.1-py3-none-any.whl (278.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: adif_mcp-0.5.1.tar.gz
  • Upload date:
  • Size: 247.0 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.5.1.tar.gz
Algorithm Hash digest
SHA256 a13e805b9b38d4473397465ab1ebd9fcb5d8481219c8668a50b156a8ec22eed9
MD5 4e2b4e09b658c094b8d295a933bf8c49
BLAKE2b-256 8228991938bdebe78728bf3f9b74d31efed7f5f058bc5ceb2f2a782452a0fdbb

See more details on using hashes here.

Provenance

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

Publisher: release.yml on KI7MT/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.5.1-py3-none-any.whl.

File metadata

  • Download URL: adif_mcp-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 278.0 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.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 71c830f76859fe70cb70599fe1d69b3435b313325178ecab8863b3d18887b2fb
MD5 aa91a365dc5a642a17717e5f41d5d23b
BLAKE2b-256 bde473c07555d181f3c81fb69e4392a372f698da3d78efc90a1f36d7e719c522

See more details on using hashes here.

Provenance

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

Publisher: release.yml on KI7MT/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