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 分