Skip to main content

adif-mcp

PyPI MCP Registry

MCP server for the ADIF 3.1.7 specification: validate and parse ADIF records, search the spec's fields, enumerations and data types, and compute distance and heading between Maidenhead locators, through any MCP-compatible AI assistant.

Part of the qso-graph project. No authentication required — the ADIF specification is bundled, so it works offline.

Install

pip install adif-mcp

Tools

Tool Description Key Parameters
validate_adif_record Validate a raw ADIF record against the 3.1.7 spec adif_string
parse_adif Streaming parser for large ADIF files, with pagination file_path, start_at, limit
read_specification_resource Raw JSON for any spec module (band, mode, fields, ...) resource_name
list_enumerations All ADIF enumerations with entry counts —
search_enumerations Search enumeration records by keyword search_term, enumeration
calculate_distance Great-circle distance (km) between two Maidenhead locators start, end
calculate_heading Initial beam heading (azimuth) between two locators start, end
get_version_info Service version + upstream spec version (fleet identity attestation) —

What is ADIF?

ADIF (Amateur Data Interchange Format) is the standard file format amateur radio logging programs use to exchange QSO records. adif-mcp is the specification package of qso-graph: it validates, parses and searches ADIF so an assistant can work with logs safely and accurately. Credentials are handled separately by qso-graph-auth, and each logging service has its own MCP server (see qso-graph.io).

Quick Start

No credentials needed — just install and configure your MCP client.

Configure your MCP client

adif-mcp works with any MCP-compatible client. Add the server config and restart. The 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"
    }
  }
}

Ask questions

"Is this ADIF record valid? CALL:5KI7MT<QSO_DATE:8>20260928BAND:320mMODE:3SSB"

"What values does the ADIF MODE enumeration allow for digital modes?"

"Parse my log file and show me the first 50 QSOs."

"How far is it from DN13 to JN48, and what heading should I point the beam?"

Compliance & Provenance

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

  • ADIF-MCP -- Core engine
  • ADIF-MCP-LOTW -- LoTW server
  • ADIF-MCP-EQSL -- eQSL server
  • ADIF-MCP-QRZ -- QRZ server

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 server operation
  • APP_ADIF-MCP-EQSL_TIME -- timestamp of eQSL merge

Development

git clone https://github.com/qso-graph/adif-mcp.git
cd adif-mcp
pip install -e ".[test]"
pytest

License

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

Metadata

Release files for adif-mcp 1.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adif-mcp 1.1.3
File Size Uploaded
adif_mcp-1.1.3.tar.gz 460.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for adif-mcp 1.1.3
File Interpreter ABI Platform
adif_mcp-1.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 938.7 kB

Release files / adif_mcp-1.1.3.tar.gz

Download URL adif_mcp-1.1.3.tar.gz
Size 460.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0156fb0c1828955ab1bef7fc0682aeebc4f01214fdb697d3a765ee52caec8e4d
BLAKE2b-256 checksum
How to use checksums
5b010d9c2a229410a4a451563d0182a31022038114a25a45ed99f8e2118a73c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / adif_mcp-1.1.3-py3-none-any.whl

Download URL adif_mcp-1.1.3-py3-none-any.whl
Size 478.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59823b0a2cfeb16e99ec1c2a3c766b91b3caeb08ede446294d4a2a82bcf63be8
BLAKE2b-256 checksum
How to use checksums
0221557a2ff2ea81d69a874c52653ba3732c7b6c22996f6df20aedcdb0b6d372
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.4

2 release files

This release

1.1.3 This release

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.12

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.8

2 release files

0.1.6

2 release files

0.1.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page