Adif Mcp

io.github.qso-graph由 GitHub 账号 qso-graph 发布v2.1.1更新于 Nov 3, 2026

ADIF 3.1.7 spec engine for amateur radio logs: validation, parsing, enumerations, geospatial.

已验证STDIO仅桌面开发者工具数据与分析

概览

AI 生成的概览

面向 ADIF 3.1.7 业余无线电日志格式的本地 MCP 服务器:校验与解析 ADIF 记录、检索规范枚举,并计算梅登黑德网格间的距离与方位角。

可以做什么
  • 按 ADIF 3.1.7 规则校验原始 ADIF 记录,包括枚举成员与结构化类型
  • 以流式解析器分页读取大型 ADIF 日志文件
  • 读取规范资源,列出或搜索 25 个 ADIF 枚举及派生的 Country 表
  • 计算两个梅登黑德网格定位之间的球面距离与波束方位角
  • 返回服务器版本与内置的 ADIF 规范版本
适用场景
适合需要检查或了解业余无线电日志的场景:确认某条 QSO 记录是否有效、查询允许的 MODE 或 BAND 取值、分页浏览大型 ADIF 导出文件,或计算两个网格之间的通信距离与天线方位。
运行要求
作为本地进程运行,通常通过 uvx 启动 PyPI 上的 adif-mcp 包,因此需要 Python/uv 运行环境。无需认证、API 密钥或环境变量;ADIF 规范已内置,可离线使用。
安装前请注意
parse_adif 会按路径读取本地文件系统中的文件,请只指向自己拥有的 ADIF 日志文件。对于仅限导入的取值以及语法合法但明显不合理的取值,校验只给出警告而非错误,因此通过校验并不代表记录完全无误。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Adif Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

bash
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):

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

Add to .claude/settings.json:

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

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

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

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

json
{  "mcpServers": {    "adif": {      "command": "uvx",      "args": ["adif-mcp"]    }  }}
VS Code / GitHub Copilot

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

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

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

json
{  "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

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

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

Development

bash
git clone https://github.com/qso-graph/adif-mcp.gitcd adif-mcpuv sync --group devuv 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.

来源:README.md,提交 8614aab

工具

8

get_version_info

Get Version Info

Returns the version of the ADIF-MCP server and spec.

无需输入参数。

calculate_distance

Calculate Distance

Calculates distance (km) between Maidenhead locators.

输入参数end必填start必填

calculate_heading

Calculate Heading

Calculates heading (azimuth) between Maidenhead locators.

输入参数end必填start必填

parse_adif

Parse Adif

Streaming parser for large ADIF files with record seeking. SECURITY NOTE: This tool reads files from the local filesystem using the provided path. Only pass paths to ADIF log files you own.

输入参数limitstart_atfile_path必填

read_specification_resource

Read Specification Resource

Reads an ADIF 3.1.7 specification resource (e.g., 'mode', 'fields', 'all'). An unknown or unreadable name is a tool execution error, so the model can see it failed and correct the name rather than being handed an error document that looks like a successful result.

输入参数resource_name必填

list_enumerations

List Enumerations

Lists the 26 enumerations: ADIF 3.1.7's 25 plus Country (derived). Each entry's ``source`` says whether it is ADIF's own export or derived by adif-mcp, so a consumer loading reference tables can tell them apart.

无需输入参数。

search_enumerations

Search Enumerations

Searches ADIF 3.1.7 enumerations. Optionally filter by enumeration name.

输入参数enumerationsearch_term必填

validate_adif_record

Validate Adif Record

Validates an ADIF record against 3.1.7 rules including enum membership.

输入参数adif_string必填

版本历史

11
  1. v2.1.1最新Oct 29, 2026
  2. v2.1.0Oct 26, 2026
  3. v2.0.3Oct 26, 2026
  4. v2.0.0Oct 12, 2026
  5. v1.3.0Oct 12, 2026
  6. v1.2.3Oct 11, 2026
  7. v1.2.2Oct 11, 2026
  8. v1.2.1Oct 7, 2026
  9. v1.2.0Oct 6, 2026
  10. v1.1.4Sep 29, 2026
  11. v0.9.3Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分