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
Core Project Health
MCP / API Readiness
Compliance and Program Registry
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.
Next Steps
- Build
adif-mcp-lotwandadif-mcp-eqsladapters - 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 engineADIF-MCP-LOTW— Plugin for ARRL Logbook of The WorldADIF-MCP-EQSL— Plugin for eQSL.ccADIF-MCP-QRZ— Plugin for Qrz.comADIF-MCP-CLUBLOG— Plugin for Clublog.comADIF-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 operationAPP_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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file adif_mcp-0.4.4.tar.gz.
File metadata
- Download URL: adif_mcp-0.4.4.tar.gz
- Upload date:
- Size: 246.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c3571466610830815ab89e07d133ce536bc3819205158fc9fcefe6d6429881c
|
|
| MD5 |
f5413b926a85631b9296691e2386096b
|
|
| BLAKE2b-256 |
7d22f928fdb066436e4e1a86dcaa78183e6789d93372436abc5fe440e6207283
|
Provenance
The following attestation bundles were made for adif_mcp-0.4.4.tar.gz:
Publisher:
release.yml on KI7MT/adif-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adif_mcp-0.4.4.tar.gz -
Subject digest:
1c3571466610830815ab89e07d133ce536bc3819205158fc9fcefe6d6429881c - Sigstore transparency entry: 780720243
- Sigstore integration time:
-
Permalink:
KI7MT/adif-mcp@3c2fc19a92214593264a1a2b7c9c237dcc0d2c19 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/KI7MT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3c2fc19a92214593264a1a2b7c9c237dcc0d2c19 -
Trigger Event:
push
-
Statement type:
File details
Details for the file adif_mcp-0.4.4-py3-none-any.whl.
File metadata
- Download URL: adif_mcp-0.4.4-py3-none-any.whl
- Upload date:
- Size: 277.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f107e399690d19a9d3b14ad8738289a71b5f67aacef63f8a36459e2de07aecdd
|
|
| MD5 |
5ed53f146a0929a2496c18a4ae75f92d
|
|
| BLAKE2b-256 |
789d41c108c15e4eeb7bd4e182e2645b54597662e34455dc065b109d6a8563ad
|
Provenance
The following attestation bundles were made for adif_mcp-0.4.4-py3-none-any.whl:
Publisher:
release.yml on KI7MT/adif-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adif_mcp-0.4.4-py3-none-any.whl -
Subject digest:
f107e399690d19a9d3b14ad8738289a71b5f67aacef63f8a36459e2de07aecdd - Sigstore transparency entry: 780720244
- Sigstore integration time:
-
Permalink:
KI7MT/adif-mcp@3c2fc19a92214593264a1a2b7c9c237dcc0d2c19 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/KI7MT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3c2fc19a92214593264a1a2b7c9c237dcc0d2c19 -
Trigger Event:
push
-
Statement type: