mcpField
N
netlogger-mcp

netlogger-mcp

本地服务
github.com/qso-graph游戏娱乐0今天更新

关于 netlogger-mcp

netlogger-mcp 将 NetLogger 数据接入兼容 MCP 的助手,面向业余无线电操作员和听众。无需 API 密钥即可查询实时及历史电台联络活动,并通过缓存遵守服务调用限制。

主要功能

  1. 01查找当前活跃的电台联络
  2. 02查看实时签到列表和当前通联对象
  3. 03搜索历史电台联络及签到
  4. 04保存请求使用的呼号
  5. 05缓存响应并遵守调用限制

适用场景

  1. 01查询当前正在进行的电台联络
  2. 02查看实时联络中的签到人员
  3. 03回顾往期电台联络的签到记录

MCP 相关

将 NetLogger 的公开电台联络和签到数据作为工具提供给 MCP 客户端,支持实时和历史查询。无需 API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"qso-graph-netlogger": {
"command": "uvx",
"args": [
"netlogger-mcp"
]
}
}
}
启动命令uvx netlogger-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypinetlogger-mcp0.3.1

工具

6

收录的工具列表 · 更新于 今天

此工具无需参数。

详细介绍

netlogger-mcp

PyPI MCP Registry

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 天内已结束的联络网,以及查询过往签到所需的联络网 IDinterval_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),并以原样收录。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。