电缆调制解调器监控工具

通过模型上下文协议(MCP)监控Arris SB8200电缆调制解调器的状态和事件日志。

  • by mindfury
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mindfury/arris-sb8200-mcp

使用说明

Arris SB8200 MCP

通过模型上下文协议(MCP)监控Arris SB8200电缆调制解调器的状态和事件日志。

特性

  • 两个MCP工具:
    • get_modem_status:Arris SB8200的启动程序、信道统计(下游/上游)、系统时间
    • get_modem_event_log:带有时间戳和优先级的事件历史记录
  • ISO 8601时间戳:所有时间均为标准时间 YYYY-MM-DDTHH:MM:SS LLM消费格式
  • 类型化数据:正确键入为int/float的数值(不是字符串)
  • 模块化设计:HTTP获取、解析和MCP工具的干净分离
  • 慢速调制解调器支持:具有重试逻辑的60秒默认超时

需求

  • Python 3.10+ (使用match语句和现代类型提示)
  • 看 requirements.txt 用于包依赖关系

安装

  1. 设置虚拟环境并安装依赖项:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
  1. 验证设置:
python check_setup.py
  1. 配置Claude桌面:
./setup_mcp.sh
  1. 重新启动克劳德桌面

手动配置(如果安装脚本不起作用):

  • 复制 claude_desktop_config.example.json 到您的Claude Desktop配置目录
  • 在macOS上: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 在Windows上: %APPDATA%\Claude\claude_desktop_config.json
  • 更新Python venv和安装目录的路径

MCP使用

在Claude Desktop中配置后,您可以询问:

状态查询:

  • “检查我的电缆调制解调器状态”
  • “我的下游信道的信噪比是多少?”
  • “显示我的上游功率水平”
  • “我的调制解调器上有任何未纠正的错误吗?”

事件日志查询:

  • “显示最近的调制解调器事件”
  • “我的调制解调器今天记录了哪些错误?”
  • “检查我的电缆调制解调器事件历史记录”

输出格式

状态工具(get_modem_status)

{
  "system_time": "2026-01-24T14:22:31",
  "downstream_count": 33,
  "downstream_channels": [
    {
      "channel": 4,
      "status": "Locked",
      "modulation": "QAM256",
      "frequency_mhz": 447.0,
      "power_dbmv": 0.7,
      "snr_db": 41.5,
      "corrected": 0,
      "uncorrected": 0
    }
  ],
  "upstream_count": 4,
  "upstream_channels": [
    {
      "channel": 1,
      "channel_id": 1,
      "status": "Locked",
      "type": "SC-QAM",
      "frequency_mhz": 16.4,
      "width_mhz": 6.4,
      "power_dbmv": 44.0
    }
  ],
  "startup_procedure": [
    {"procedure": "Acquire Downstream Channel", "status": "543000000 Hz", "comment": "Locked"}
  ]
}

事件日志工具(get_modem_event_log)

{
  "events": [
    {
      "timestamp": "2026-01-18T22:06:08",
      "priority": "Notice",
      "priority_level": 6,
      "description": "CM-STATUS message sent..."
    }
  ],
  "event_count": 29
}

建筑

该项目采用模块化设计 src/cm/:

  • src/cm/common.py:带重试逻辑的HTTP获取、文本解析、验证器
  • src/cm/status_parser.py:解析启动程序、下游/上游通道、系统时间
  • src/cm/event_log_parser.py:使用ISO 8601时间戳转换解析事件日志
  • src/cm/mcp_server.py:MCP服务器公开了两个工具

故障排除

验证设置:

python check_setup.py

测试MCP工具:

python test_mcp.py

手动运行服务器:

# From source
python -m cm.mcp_server

# Or after install (console script)
sb8200-status

然后通过stdin发送JSON-RPC命令:

{"jsonrpc":"2.0","method":"tools/list","id":1}

检查调制解调器连接:

curl -I http://192.168.100.1/cmconnectionstatus.html