mcpField
A
Adif Mcp

Adif Mcp

Local
github.com/qso-graphGames & Entertainment4Updated today

About Adif Mcp

adif-mcp is an MCP server for amateur radio operators and developers working with ADIF logs. It validates and parses records, searches the bundled ADIF 3.1.7 specification, and calculates distance and heading between Maidenhead locators; the specification is available offline without authentication.

Key features

  1. 01Validate ADIF records against the specification
  2. 02Parse large files with pagination
  3. 03Search fields, enumerations, and data types
  4. 04Calculate locator distance and heading
  5. 05Offline bundled specification

Use cases

  1. 01Check an ADIF record before importing it
  2. 02Parse and page through a large radio log
  3. 03Look up valid ADIF fields or enumeration values
  4. 04Calculate distance and beam heading between locators

MCP support

Exposes ADIF validation, parsing, specification lookup, enumeration search, and Maidenhead locator calculations as MCP tools. It also publishes the `adif://system/version` resource.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"adif": {
"command": "uvx",
"args": [
"adif-mcp"
]
}
}
}
Run commanduvx adif-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypiadif-mcp2.1.0

Tools

8

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

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

Tools

ToolDescriptionKey Parameters
validate_adif_recordValidate a raw ADIF record against the 3.1.7 specadif_string
parse_adifStreaming parser for large ADIF files, with paginationfile_path, start_at, limit
read_specification_resourceRaw JSON for any spec module (band, mode, fields, ...)resource_name
list_enumerationsAll ADIF enumerations with entry counts—
search_enumerationsSearch enumeration records by keywordsearch_term, enumeration
calculate_distanceGreat-circle distance (km) between two Maidenhead locatorsstart, end
calculate_headingInitial beam heading (azimuth) between two locatorsstart, end
get_version_infoService 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"]
    }
  }
}
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?"

What the validator checks

adif-mcp ships ADIF 3.1.7 as ADIF publishes it: 186 fields, 25 enumerations and 28 data types. validate_adif_record checks each field against its ADIF data type and, for enumerated fields, against the enumeration:

  • Enumeration values match regardless of case, so LoTW's BAND=15M is accepted as 15m.
  • Import-only values (42 of the Mode enumeration's 91 entries, for example) give a warning, not an error: ADIF allows them on import but not in new records.
  • Compound values such as CREDIT_SUBMITTED (a list of Credit or Credit:Medium entries) are checked entry by entry.
  • SUBMODE must be a valid Submode; one that belongs to a different MODE gives a warning. FT4, for example, is MODE=MFSK with SUBMODE=FT4.
  • Structured types are checked against the grammar ADIF states for them: grid squares (2, 4, 6 or 8 characters, any case) and their extensions and lists (VUCC needs two or four, each four or six characters), Location (XDDD MM.MMM), Boolean (Y or N), and IOTA, WWFF, POTA and SOTA references. What the grammar allows but cannot be right, such as a latitude over 90 degrees or N/S on a longitude, is a warning, never an error.

The server also publishes the MCP resource adif://system/version: the service version and the ADIF specification version it serves.

MCP Inspector

adif-mcp --transport streamable-http --port 8003

Then open the MCP Inspector at http://localhost:8003.

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 ADIF's published files for two versions, the previous and the current (3.1.6 and 3.1.7 today), unmodified: every file in ADIF's resource zip except its test material, in every format ADIF publishes (JSON, XML with all.xml and the XSD, CSV, TSV, XLSX, ODS), with a MANIFEST.json of their SHA-256s per version, 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 each version's MANIFEST.json. See NOTICE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.