genieacs-mcp 是一个用 Go 编写的 MCP(Model Context Protocol)服务器,面向 GenieACS——管理路由器、ONT 及其他 CPE 设备的开源 TR-069 ACS。把它添加到 Claude Desktop、Cursor 或任何其他 MCP 客户端后,就可以用自然语言发出指令,例如“昨晚哪些设备停止上报信息”“序列号 000003 运行的是哪个固件”“重启带有 pilot 标签的设备”。助手通过你的 GenieACS NBI 进行读取和操作,服务器提供 7 个资源和 12 个工具,只有一个 Go 二进制文件,不维护自己的数据库。
主要能力:
- 按标签、型号、固件、最近上报时间或任意 TR-069 参数查找设备,search_devices 接受 MongoDB 风格过滤器。
- 以资源形式读取设备的完整参数树、任务和故障,以及 ACS 上的预设、预置和文件,例如 genieacs://device/{id}、genieacs://devices/list 等。
- 在对话中重启设备、推送固件、刷新或设置参数,或通过连接请求唤醒设备。
- 为设备打标签,创建或删除预设和预置,删除或重试任务,便于助手修复发现的问题。
- 每个工具描述都说明其作用、限制和示例,客户端无需额外提示即可选对工具。
使用方式: 需要一台本机可访问其 NBI(端口 7557)的 GenieACS。若没有,官方家族的演示栈可在约一分钟内提供一个带模拟路由器的 ACS。随后把服务器加入能读取 mcpServers 块的客户端(Claude Desktop、Cursor、Claude Code;在 VS Code 中 .vscode/mcp.json 使用的键是 servers)。当询问“ACS 知道哪些设备”并得到设备 ID(如演示栈中的 202BC1-BM632w-000000 或你自己的设备)时,说明配置成功。Docker、HTTP 传输和本地构建见 Getting started。完整文档位于 geiserx.github.io/genieacs-mcp。
只读与操作:search_devices、get_parameter 以及 7 个资源仅执行读取;其余 10 个工具会在设备上排队任务或更改 ACS。没有只读模式,因此应指向你愿意让助手执行操作的 ACS,并保持客户端的工具审批提示开启。
安全限制:在笔记本上使用较安全,HTTP 传输默认仅监听回环地址,除非你设置地址和 bearer token,并会针对 DNS 重绑定校验 Host 和 Origin。
分发形式:面向 Linux、macOS 和 Windows(amd64 与 arm64)的单个静态 Go 二进制文件,同时提供 npm 包(npx genieacs-mcp)和 Docker 镜像。
相关项目:已在官方 MCP Registry 中登记为 io.github.GeiserX/genieacs-mcp。属于 GenieACS 家族,相关项目包括 genieacs-container(ACS 本体,含 Docker 和 Helm,本服务器作为 compose profile)、genieacs-sim-container、genieacs-ansible、genieacs-ha、genieacs-services,以及已归档的 n8n-nodes-genieacs。许可证为 GPL-3.0-or-later。