PSK报告器MCP服务器
一种模型上下文协议(MCP)服务器,通过Claude Desktop从PSKReporter提供实时业余无线电传播数据。
特性
- 实时传播数据:从世界各地的业余无线电台收集现场直播
- 高级过滤:按频段、模式、呼号、位置和国家进行筛选
- DXCC实体支持:具有智能名称变化的完整国家/地区地图
- MCP资源:发现可用的国家及其常见变体
- 线程架构:非阻塞MQTT收集以实现响应性能
安装
先决条件
- Python 3.13或更高版本
- uv包管理器
- Claude桌面应用程序
设置
- 克隆或下载此存储库
git clone
cd mcp-server-pskreporter- 使用uv安装依赖项
uv sync- 选择您的安装方法:
选项A:开发模式(用于直接命令使用)
uv pip install -e .这将在本地虚拟环境中以开发模式安装包,使 pskreporter-mcp-server 此项目环境中可用的命令。如果要直接从项目目录运行命令,请使用此选项。
选项B:基于项目的执行(适用于Claude Desktop-无需安装)
uv run --project . pskreporter-mcp-server这将直接从项目目录运行服务器,而无需安装。这是Claude Desktop默认使用的。
- 验证服务器是否正常工作
如果您使用选项A(开发模式):
# Make sure you're in the project directory
pskreporter-mcp-server如果您使用选项B(基于项目):
uv run --project . pskreporter-mcp-server服务器应启动并准备好接受MCP连接。
添加到Claude桌面
方法1:使用配置文件(推荐)
- 复制配置文件 到Claude Desktop的配置目录:
- 视窗: %APPDATA%\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json
- 更新路径 在……里面
claude_desktop_config.json要匹配您的系统:
{
"mcpServers": {
"pskreporter": {
"command": "uv",
"args": ["run", "--project", "C:\\Users\\rokhm\\git\\mcp-server-pskreporter", "pskreporter-mcp-server"],
"env": {}
}
}
}- 重新启动克劳德桌面
备注:The claude_desktop_config.json 此存储库中的文件已针对当前路径进行了预配置。如果移动项目,请更新 --project 相应的论点。
方法2:使用Claude桌面UI
- 打开克劳德桌面
- 首选 设置 → MCP服务器
- 点击 添加服务器
- 配置服务器:
- 名字: pskreporter - 命令: uv - 参数: run --project C:\Users\rokhm\git\mcp-server-pskreporter pskreporter-mcp-server - 工作目录: C:\Users\rokhm\git\mcp-server-pskreporter (您的项目文件夹)
- 点击 保存
方法3:替代命令
您还可以使用以下替代方法运行服务器:
直接执行Python:
python -m pskreporter_mcp_server使用uv运行:
uv run pskreporter-mcp-server开发模式:
uv run mcp dev pskreporter_mcp_server.py用法
连接到Claude Desktop后,您可以使用以下工具和资源:
get_spots 工具
使用过滤选项收集实时业余无线电传播点。
参数:
band业余无线电频段(例如,“20m”、“40m”、”80m“、”160m“、”10m“、mode:操作模式(例如,“FT8”、“FT4”、“CW”、“SSB”、“PSK31”、“RTTY”)sendercall:特定车站呼号(例如“W9KM”、“JA1ABC”)receivercall:接收站呼号senderlocator:发送站梅登黑德网格定位器(例如“EN51”、“JO20”)receiverlocator:接收站梅登黑德网格定位器sendercountry:发件人所在国家的国家名称(例如,“日本”、“美国”、“德国”)receivercountry:接收方所在国家的国家名称duration:收集时间(秒)(5-30,默认值:10)
国家名称特征:
- 不区分大小写:“日本”、“japan”、“japan”都是一样的
- 部分匹配:“swains”匹配“swains I.”,“korea”匹配“Republic of korea”
- 常见变化:“美国”、“英国”、“德国”会自动映射到它们的全名
- 340+实体:DXCC实体全面支持全球覆盖
示例:
- “向我展示距离日本20米的FT8活动”
- “在40米处查找美国车站”
- “W9KM在哪些频段上运行?”
- “向我展示80米长的德国车站”
dxcc_entities 资源
发现可用的国家及其变体,以更好地过滤。
资源特性:
- 完整实体列表:所有340个具有正式名称的DXCC实体
- 名称变化:每个国家的常见变体(例如,“美国”代表“美利坚合众国”)
- 使用示例:现成的示例
get_spots工具 - 搜索提示:有效使用国名指南
如何使用:
- 浏览所有可用的国家和地区
- 查看每个国家的常见变化
- 获取要在中使用的确切名称
get_spots参数 - 发现您可能不知道的新DXCC实体
示例资源数据:
{
"code": "291",
"name": "United States of America",
"name_variations": ["United States", "USA", "US", "America"]
}国家名称发现
这 dxcc_entities 资源提供了全面的国家信息:
- 官方名称:使用精确的DXCC实体名称以获得最佳结果
- 常见变化:常用缩写和替代名称
- 案例灵活性:所有名称都有效,无论大小写
- 部分匹配:查找名称不完整的国家
常见示例:
- 美国:“美国”、“US”、“America”、“美利坚合众国”
- 英国:“英国”、“大不列颠”、“不列颠”、“英格兰”
- 德国:“德国”、“德意志”、“DE”
- 日本:“日本”(无常见变体)
- 斯温斯岛:“沼泽”、“沼泽一号”、“斯温斯岛”
数据源
此服务器连接到PSKReporter MQTT源 mqtt.pskreporter.info 从世界各地的业余无线电台检索实时传播数据。
故障排除
常见问题
- 服务器无法启动
- 确保已安装Python 3.13+ - 确保安装了紫外线: curl -LsSf https://astral.sh/uv/install.sh | sh - 检查是否安装了依赖项: uv sync
- 未收集到斑点
- 增加 duration 参数(最多30秒) - 使用更宽的过滤器(更少的参数) - 检查您的互联网连接
- 未找到国家名称
- 使用 dxcc_entities 查找确切国家名称的资源 - 尝试常见的变体(例如,用“美国”代替“美利坚合众国”) - 检查拼写错误并尝试部分匹配
- Claude Desktop无法连接
- 验证中的路径 claude_desktop_config.json 是正确的 - 确保手动运行时服务器成功启动: uv run pskreporter-mcp-server - 检查Claude Desktop日志中的错误消息
- “找不到文件”错误
- 确保工作目录指向包含以下内容的文件夹 pskreporter_mcp_server.py - 验证所有项目文件是否在同一目录中
- “找不到程序”或“生成失败”错误
- 如果您在直接运行命令时收到“无法生成‘pskreporter mcp server’,原因是:找不到程序”,则需要在开发模式下安装该包:
uv pip install -e .- 安装后 pskreporter-mcp-server 命令将在项目的虚拟环境中可用 - 备注:克劳德桌面使用 uv run --project 不需要安装-提供 claude_desktop_config.json 无需任何额外设置即可工作
调试信息
服务器创建调试日志文件 mcp_server_debug.log 详细信息如下:
- MQTT连接状态
- 现场采集进度
- 国家名称解析
- 错误消息和堆栈跟踪
发展
此项目使用 uv 用于依赖性管理。关键命令:
uv sync-安装依赖项uv run pskreporter-mcp-server-运行服务器uv run --project C:\Users\rokhm\git\mcp-server-pskreporter pskreporter-mcp-server-从任何目录运行python -m pskreporter_mcp_server-以Python模块运行
配置
Claude桌面配置
这 claude_desktop_config.json 文件已预先配置为使用 uv run --project:
{
"mcpServers": {
"pskreporter": {
"command": "uv",
"args": ["run", "--project", "C:\\Users\\rokhm\\git\\mcp-server-pskreporter", "pskreporter-mcp-server"],
"env": {}
}
}
}要点:
- 用途
uv run --project直接项目执行命令 --project参数指向本地项目目录- 无需预安装(uv会自动处理依赖关系)
- 可执行文件名为
pskreporter-mcp-server(带连字符)
DXCC实体配置
服务器对DXCC实体使用基于YAML的配置(dxcc_entities.yaml)它提供:
- 易于维护:国家名称和变体存储在人类可读的YAML文件中
- 灵活的更新:在不接触代码的情况下添加或修改国家/地区变化
- 结构化数据:规范名称和常见变体之间的明确区分
文件结构:
dxcc_entities:
"291":
canonical_name: "United States of America"
name_variations: ["USA", "US", "United States", "America"]
"339":
canonical_name: "Japan"
name_variations: []添加国家差异: 要为某个国家添加变体,只需编辑 dxcc_entities.yaml 文件:
- 通过DXCC代码查找国家
- 添加变体
name_variations数组 - 重新启动服务器以应用更改
例子:
"339":
canonical_name: "Japan"
name_variations: ["Nippon", "Nihon"]服务器在启动时自动加载这些更改,使维护和扩展国家名称支持变得容易。
______________________________________________________________________
73! 安德里 w9公里
