Skip to main content
Glama

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

uvx adif-mcp            # run it; nothing to install
pip install adif-mcp    # or install it into your own environment

Related MCP server: qrz-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": "uvx",
      "args": ["adif-mcp"]
    }
  }
}

Claude Code

Add to .claude/settings.json:

{
  "mcpServers": {
    "adif": {
      "command": "uvx",
      "args": ["adif-mcp"]
    }
  }
}

ChatGPT Desktop

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

{
  "mcpServers": {
    "adif": {
      "command": "uvx",
      "args": ["adif-mcp"]
    }
  }
}

Cursor

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

{
  "mcpServers": {
    "adif": {
      "command": "uvx",
      "args": ["adif-mcp"]
    }
  }
}

VS Code / GitHub Copilot

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

{
  "servers": {
    "adif": {
      "command": "uvx",
      "args": ["adif-mcp"]
    }
  }
}

Gemini CLI

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

{
  "mcpServers": {
    "adif": {
      "command": "uvx",
      "args": ["adif-mcp"]
    }
  }
}

Installed with pip instead? Use "command": "adif-mcp" in any config above.

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
uv sync --group dev
uv run pytest

License

adif-mcp's own code is GPL-3.0-or-later. See LICENSE for details.

The ADIF specification files are not ours. The package includes the ADIF 3.1.6 and 3.1.7 specification exports, unmodified, from the ADIF Developers Group. They are ADIF's work, and our licence doesn't cover them. The only files in that folder that are ours are the derived Country enumeration and two small catalog files. See NOTICE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for HamQTH.com — callsign lookup, DX cluster spots, Reverse Beacon Network, DXCC resolution, and more through any MCP-compatible AI assistant.
    8
    1,622 PyPI
    GPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for QRZ.com — callsign lookups, DXCC entity resolution, and logbook queries through any MCP-compatible AI assistant.
    6
    1,758 PyPI
    3
    GPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for ARRL Logbook of The World (LoTW) that enables querying confirmations, uploaded QSOs, DXCC credits, and user activity through any MCP-compatible AI assistant. Part of the qso-graph project, it is read-only and requires LoTW credentials for authenticated tools.
    6
    1
    GPL 3.0