关于 Adif Mcp
adif-mcp 是面向业余无线电用户及 ADIF 日志开发者的 MCP 服务,可验证和解析记录、检索内置的 ADIF 3.1.7 规范,并计算 Maidenhead 定位网格之间的距离和方位;规范可离线使用且无需认证。
主要功能
- 01按规范验证 ADIF 记录
- 02分页解析大型文件
- 03搜索字段、枚举和数据类型
- 04计算定位网格距离和方位
- 05内置离线规范
适用场景
- 01导入前检查 ADIF 记录
- 02解析大型无线电日志并分页查看
- 03查询有效 ADIF 字段或枚举值
- 04计算定位网格间距离和天线方位
MCP 相关
通过 MCP 工具提供 ADIF 验证、解析、规范查询、枚举搜索及 Maidenhead 定位网格计算。还会发布 `adif://system/version` 资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
adif-mcp
适用于 ADIF 3.1.7 规范 的 MCP 服务:通过任何兼容 MCP 的 AI 助手验证和解析 ADIF 记录、搜索规范中的字段、枚举和数据类型,并计算 Maidenhead 网格定位器之间的距离和方位。
这是 qso-graph 项目的一部分。无需身份验证——ADIF 规范已随软件打包,因此可离线使用。
安装
uvx adif-mcp # run it; nothing to install
工具
| 工具 | 描述 | 关键参数 |
|---|---|---|
validate_adif_record | 根据 3.1.7 规范验证原始 ADIF 记录 | adif_string |
parse_adif | 用于大型 ADIF 文件的流式解析器,支持分页 | file_path, start_at, limit |
read_specification_resource | 任意规范模块(band、mode、fields 等)的原始 JSON | resource_name |
list_enumerations | 所有 ADIF 枚举及其条目数 | — |
search_enumerations | 按关键词搜索枚举记录 | search_term, enumeration |
calculate_distance | 两个 Maidenhead 网格定位器之间的大圆距离(km) | start, end |
calculate_heading | 两个网格定位器之间的初始波束方位角 | start, end |
get_version_info | 服务版本 + 上游规范版本(集群身份验证) | — |
什么是 ADIF?
ADIF(业余无线电数据交换格式)是业余无线电日志程序用于交换 QSO 记录的标准文件格式。adif-mcp 是 qso-graph 的规范包:它验证、解析和搜索 ADIF,让助手能够安全、准确地处理日志。凭据由 qso-graph-auth 单独处理,每个日志服务都有自己的 MCP 服务(参见 qso-graph.io)。
快速入门
无需凭据——只需安装并配置 MCP 客户端。
配置 MCP 客户端
adif-mcp 适用于任何兼容 MCP 的客户端。添加服务配置并重启即可。工具会自动显示。
Claude Desktop
将配置添加到 claude_desktop_config.json(macOS 上为 ~/Library/Application Support/Claude/,Windows 上为 %APPDATA%\Claude\):
{
"mcpServers": {
"adif": {
"command": "uvx",
"args": ["adif-mcp"]
}
}
}
Claude Code
将配置添加到 .claude/settings.json:
{
"mcpServers": {
"adif": {
"command": "uvx",
"args": ["adif-mcp"]
}
}
}
ChatGPT Desktop
通过“设置”>“应用和连接器”进行配置,或在 Agent 定义中配置:
{
"mcpServers": {
"adif": {
"command": "uvx",
"args": ["adif-mcp"]
}
}
}
Cursor
将配置添加到 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局):
{
"mcpServers": {
"adif": {
"command": "uvx",
"args": ["adif-mcp"]
}
}
}
VS Code / GitHub Copilot
将配置添加到工作区中的 .vscode/mcp.json:
{
"servers": {
"adif": {
"command": "uvx",
"args": ["adif-mcp"]
}
}
}
Gemini CLI
将配置添加到 ~/.gemini/settings.json(全局)或 .gemini/settings.json(项目级):
{
"mcpServers": {
"adif": {
"command": "uvx",
"args": ["adif-mcp"]
}
}
}
提出问题
“这条 ADIF 记录有效吗?CALL:5KI7MT<QSO_DATE:8>20260928BAND:320mMODE:3SSB”
“ADIF MODE 枚举中,数字模式允许哪些值?”
“解析我的日志文件,并显示前 50 条 QSO。”
“从 DN13 到 JN48 有多远?我应该将波束指向什么方位?”
验证器检查内容
adif-mcp 按照 ADIF 发布的内容提供 ADIF 3.1.7:186 个字段、25 个枚举和 28 种数据类型。
validate_adif_record 会根据每个字段的 ADIF 数据类型进行检查;对于枚举字段,还会根据对应枚举进行检查:
- 枚举值不区分大小写,因此 LoTW 的
BAND=15M会被接受为15m。 - 仅用于导入的值(例如,Mode 枚举的 91 个条目中有 42 个)会发出警告,而不是报错:ADIF 允许导入这些值,但不允许在新记录中使用。
- 复合值(例如
CREDIT_SUBMITTED,即Credit或Credit:Medium条目的列表)会逐项检查。 - SUBMODE 必须是有效的 Submode;如果它属于其他 MODE,则会发出警告。例如,FT4 的
MODE=MFSK,且SUBMODE=FT4。 - 结构化类型会根据 ADIF 为其规定的语法进行检查:网格方格(2、4、6 或 8 个字符,大小写不限)及其扩展形式和列表(VUCC 需要两个或四个条目,每个条目为 4 或 6 个字符)、
Location(XDDD MM.MMM)、Boolean(Y 或 N),以及 IOTA、WWFF、POTA 和 SOTA 参考标识。语法允许但实际不可能正确的值,例如纬度超过 90 度或经度使用 N/S,会发出警告,绝不会报错。
该服务还会发布 MCP 资源 adif://system/version:服务版本及其提供的 ADIF 规范版本。
MCP Inspector
adif-mcp --transport streamable-http --port 8003
然后打开 MCP Inspector:http://localhost:8003。
开发
git clone https://github.com/qso-graph/adif-mcp.git
cd adif-mcp
uv sync --group dev
uv run pytest
许可证
adif-mcp 自身的代码采用 GPL-3.0-or-later 许可证。详情请参见 LICENSE。
ADIF 规范文件不属于我们。 软件包包含 ADIF 发布的两个版本的文件,即前一版本和当前版本(目前为 3.1.6 和 3.1.7),且未经修改:ADIF 资源压缩包中的所有文件(测试材料除外),涵盖 ADIF 发布的所有格式(JSON、含 all.xml 和 XSD 的 XML、CSV、TSV、XLSX、ODS),并附有每个版本的 SHA-256 值 MANIFEST.json;这些文件来自 ADIF Developers Group。这些文件属于 ADIF 的作品,不受我们的许可证约束。该文件夹中只有派生的 Country 枚举和每个版本的 MANIFEST.json 属于我们。请参见 NOTICE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。