一个小巧的桥梁,将任何GenieACS实例暴露为一个使用Go语言编写的MCP v1(用于大模型的JSON-RPC)服务器。
| 类型 | 用途 | MCP URI / 工具ID |
|---|---|---|
| 资源 | 只读方式消费GenieACS数据 | genieacs://device/{id}<br>genieacs://file/{name}<br>genieacs://tasks/{id}<br>genieacs://devices/list |
| 工具 | 通过GenieACS对CPE执行操作 | reboot_device<br>download_firmware<br>refresh_parameter |
所有内容都通过单一的JSON-RPC端点(/mcp)公开。
大模型/代理可以:initialize → readResource → listTools → callTool …等等。
请遵循来自 https://github.com/GeiserX/genieacs-docker 的说明,该文件已包含在docker-compose文件中。
git clone https://github.com/GeiserX/genieacs-mcp
cd genieacs-mcp
# (可选)从示例创建 .env 文件
cp .env.example .env && $EDITOR .env
go run ./cmd/server
| 变量 | 默认值 | 描述 |
|---|---|---|
ACS_URL | http://localhost:7557 | GenieACS NBI端点(不带尾部斜杠) |
ACS_USER | admin | GenieACS用户名 |
ACS_PASS | admin | GenieACS密码 |
将它们放入.env文件(从.env.example复制)或设置环境变量。
已使用Inspector进行测试,并且目前完全可用。在提交PR之前,请确保此MCP服务器通过这种媒介表现良好。
缺少与实际MCP客户端(客户端大模型)的测试,因此请提交您的PR以改进描述,以防它未能充分匹配此MCP服务器提供的服务。
{
"schema_version": "v1",
"name_for_human": "GenieACS-MCP",
"name_for_model": "genieacs_mcp",
"description_for_human": "从GenieACS读取数据并在CPE上运行操作(重启、固件更新、参数刷新)。",
"description_for_model": "与管理路由器的自动配置服务器(ACS)交互。首先调用initialize,然后在每次其他调用的头部“Mcp-Session-Id”中重复使用返回的会话ID。使用readResource获取以genieacs://开头的URI。使用listTools发现可用操作并使用callTool执行它们。",
"auth": { "type": "none" },
"api": {
"type": "jsonrpc-mcp",
"url": "http://localhost:8080/mcp",
"init_method": "initialize",
"session_header": "Mcp-Session-Id"
},
"logo_url": "https://raw.githubusercontent.com/geiserx/genieacs-docker/main/extra/logo.png",
"contact_email": "acsdesk@protonmail.com",
"legal_info_url": "https://github.com/GeiserX/genieacs-mcp/blob/main/LICENSE"
}
GenieACS – 最佳开源ACS
MCP-GO – 现代MCP实现
GoReleaser – 多架构发布无痛
欢迎参与!打开一个问题或提交PR。
GenieACS-Docker遵循贡献者公约行为准则。