关于 netlogger-mcp
netlogger-mcp 将 NetLogger 数据接入兼容 MCP 的助手,面向业余无线电操作员和听众。无需 API 密钥即可查询实时及历史电台联络活动,并通过缓存遵守服务调用限制。
主要功能
- 01查找当前活跃的电台联络
- 02查看实时签到列表和当前通联对象
- 03搜索历史电台联络及签到
- 04保存请求使用的呼号
- 05缓存响应并遵守调用限制
适用场景
- 01查询当前正在进行的电台联络
- 02查看实时联络中的签到人员
- 03回顾往期电台联络的签到记录
MCP 相关
将 NetLogger 的公开电台联络和签到数据作为工具提供给 MCP 客户端,支持实时和历史查询。无需 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 今天
此工具无需参数。
详细介绍
netlogger-mcp
NetLogger 的 MCP 服务 NetLogger:通过任何兼容 MCP 的 AI 助手,查看当前正在空中的无线电联络网、实时签到列表和当前通联对象,以及过去的联络网及其签到记录。
数据来自 NetLogger 的公共 XML Data Service(API 1.3)。这是 qso-graph 项目的一部分。无需 API 密钥。 只需提供一次你的呼号(见下文)。
安装
uvx netlogger-mcp # run it; nothing to install
工具
| 工具 | 说明 | 关键参数 |
|---|---|---|
netlogger_active_nets | 当前正在空中的联络网:频率、波段、模式、网控、记录员、监听人数 | name_like |
netlogger_checkins | 实时联络网的签到列表,以及当前指针(正在通联的电台) | server_name, net_name |
netlogger_past_nets | 最近 N 天内已结束的联络网,以及查询过往签到所需的联络网 ID | interval_days, name_like |
netlogger_past_checkins | 已结束联络网的签到列表 | server_name, net_name, net_id |
netlogger_set_callsign | 保存你的呼号(首次使用时询问一次) | callsign |
get_version_info | 服务版本 + 上游规范版本(集群身份验证) | — |
什么是 NetLogger?
NetLogger 是许多业余无线电联络网使用的记录程序:网控或记录员维护签到列表,任何人都可以实时跟踪联络网。其服务器通过公共 API 发布活动联络网、签到列表和过往联络网的数据。
你的呼号
每个请求都会告知 NetLogger 是哪个电台在请求,以便区分不同用户:
netlogger-mcp/<version> (KI7MT; +https://github.com/qso-graph/netlogger-mcp)
版本号是已安装的版本——它从软件包中读取,并非在此处填写。
首次使用时,助手会询问你的呼号并保存。只会询问一次。你也可以自行设置:使用 NETLOGGER_MCP_CALLSIGN=KI7MT。
呼号保存在 settings.json 中,路径为 ~/.config/netlogger-mcp/(Linux)、~/Library/Application Support/netlogger-mcp/(macOS)或 %APPDATA%\netlogger-mcp\(Windows)。
友好使用规范
NetLogger 是由捐款资助、运行在一台服务器上的服务,并限制每个呼号的调用频率。我们遵守这些限制:
| 措施 | 详情 |
|---|---|
| NetLogger 的调用限制 | GetActiveNets 每分钟 1 次,GetCheckins 每分钟 3 次,GetPastNets 每分钟 1 次,GetPastNetCheckins 每分钟 10 次。发送请求前检查限制,绝不在请求后检查。 |
| 每位用户共用一份额度 | 你运行的每个副本(Claude Desktop、Claude Code、脚本)都通过 settings.json 旁的锁定文件共用一份额度。 |
| 共享答案 | 每个副本也会共享已获取的答案,因此达到限制的副本可以获取另一个副本最近的答案及其时效,而不是收到错误。 |
| 响应缓存 | 活动联络网缓存 60 秒,签到列表缓存 20 秒,过往联络网缓存 60 秒,过往签到缓存 1 小时。按名称筛选不会增加调用次数。 |
| 答案的时效 | 每个答案都包含 as_of_utc(提供答案的时间)和 age_seconds(数据的时效),因此数据是在 as_of_utc 减去 age_seconds 时获取的。 |
| 优先返回过期答案,而非错误 | 达到限制时,会返回上一次的答案及其时效,而不是发起新请求。 |
| 429 退避 | 任何调用遇到“请求过多”时,都会停止所有调用至少一分钟;如果 NetLogger 要求更长时间,则按其要求执行。 |
| 过往联络网时间范围 | 查询超过 7 天的过往联络网时必须指定名称筛选,这是 NetLogger 为保护服务器制定的规则。 |
| 请求超时 | 15 秒超时。 |
| User-Agent 标头 | 每个请求都会标明此项目和你的呼号,以便 NetLogger 的运营人员了解请求者身份。 |
频段和频率
NetLogger 的频段和频率就是记录员输入的内容("40M"、"75M"、"DMR"、"7033"、"3918 KHz"、"147.030 91.5"、"TG 3141")。返回的内容与输入一致;此外,仅在文本能够可靠解析时,才会返回 frequency_mhz、band_adif(ADIF 3.1.7 的 Band 枚举中的 ADIF 频段)、tone_hz 和 talkgroup。业余频段之外的频率(例如 GMRS)不会有 band_adif。
隐私
NetLogger 的签到数据包括街道地址和 ZIP 编码,过去的网络集会还包括打开集会者的 IP 地址。这些信息绝不会被返回。
快速开始
配置 MCP 客户端
netlogger-mcp 适用于任何兼容 MCP 的客户端。添加服务配置并重启即可。工具会自动显示。
Claude Desktop
添加到 claude_desktop_config.json(macOS 上为 ~/Library/Application Support/Claude/,Windows 上为 %APPDATA%\Claude\):
{
"mcpServers": {
"netlogger": {
"command": "uvx",
"args": ["netlogger-mcp"]
}
}
}
Claude Code
添加到 .claude/settings.json:
{
"mcpServers": {
"netlogger": {
"command": "uvx",
"args": ["netlogger-mcp"]
}
}
}
ChatGPT Desktop
{
"mcpServers": {
"netlogger": {
"command": "uvx",
"args": ["netlogger-mcp"]
}
}
}
Cursor
添加到 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局):
{
"mcpServers": {
"netlogger": {
"command": "uvx",
"args": ["netlogger-mcp"]
}
}
}
VS Code / GitHub Copilot
添加到工作区中的 .vscode/mcp.json:
{
"servers": {
"netlogger": {
"command": "uvx",
"args": ["netlogger-mcp"]
}
}
}
Gemini CLI
添加到 ~/.gemini/settings.json(全局)或 .gemini/settings.json(项目级):
{
"mcpServers": {
"netlogger": {
"command": "uvx",
"args": ["netlogger-mcp"]
}
}
}
提出问题
“现在有哪些网络集会正在进行?”
“有 80m 网络集会正在进行吗?”
“谁已签到县 ARES 网络集会?现在轮到谁了?”
“过去三天进行了哪些网络集会?”
“显示昨晚网络集会的签到记录。”
作为 Python 库使用
相同的代码也可以在没有 AI 的情况下运行,并且限制和缓存也相同。库无法询问你的呼号,因此需要由你传入:
from netlogger_mcp.netlogger import NetLoggerSource
nl = NetLoggerSource(callsign="KI7MT")
for net in nl.active_nets()["nets"]:
live = nl.checkins(net["server"], net["name"])
print(net["name"], "up now:", live["pointer_callsign"])
应用也可以指定自己的名称,使用 ADIF 的 PROGRAMID 和 PROGRAMVERSION:NetLoggerSource(callsign="KI7MT", program_id="MyLogger", program_version="1.0")。
无网络测试
NETLOGGER_MCP_MOCK=1 netlogger-mcp
MCP 检查器
netlogger-mcp --transport streamable-http --port 8014
开发
git clone https://github.com/qso-graph/netlogger-mcp.git
cd netlogger-mcp
uv sync --group dev
uv run pytest
许可证
GPL-3.0-or-later。adif_band.json 是 ADIF 3.1.7 的 Band 枚举,由 ADIF Developers Group 编制(adif.org.uk),并以原样收录。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。