genieacs-mcp — Claude Code MCP server: manage CPE through GenieACS
An MCP server that wires an AI client to GenieACS, so you can search devices, read their parameters and queue tasks from a chat.
claude mcp add --env ACS_URL=<ACS_URL> --env ACS_USER=<ACS_USER> --env ACS_PASS=<ACS_PASS> --env DEVICE_LIMIT=<DEVICE_LIMIT> --transport stdio genieacs-mcp -- npx -y genieacs-mcpWhat genieacs-mcp does
The server sits on top of the GenieACS NBI and exposes 7 resources and 12 tools. Through them the assistant searches devices by tag, model, firmware or any TR-069 parameter, reads a device's parameter tree, tasks and faults, and lists the presets, provisions and files on the ACS. Actions work too: reboot a CPE, push firmware, change a parameter, send a connection request.
Read and act are split. search_devices, get_parameter and the resources change nothing; the other ten tools queue work on a device or modify the ACS. There is no read-only mode, so point the server at an ACS you are fine letting an assistant touch, and leave tool-approval prompts enabled in your client. The HTTP transport binds to loopback unless you set an address and bearer token, and it checks Host and Origin against DNS rebinding.
One Go binary covers Linux, macOS and Windows on amd64 and arm64, with an npm package and a Docker image as alternatives. You need a reachable GenieACS NBI on port 7557 — without it the server has nothing to talk to. No ACS of your own? The demo stack in genieacs-container brings up an ACS with a simulated router in about a minute.
What it helps with
- find devices that stopped checking in
- inspect the parameter tree of one CPE
- reboot every device carrying a given tag
- roll firmware out to a batch of routers
- create a preset or provision from chat
Example prompts for the agent
- Which devices stopped informing the ACS last night?
- Reboot the devices tagged
pilot - Show me the parameters of device
202BC1-BM632w-000000
How to install genieacs-mcp
Platform CLI
claude mcp add --env ACS_URL=<ACS_URL> --env ACS_USER=<ACS_USER> --env ACS_PASS=<ACS_PASS> --env DEVICE_LIMIT=<DEVICE_LIMIT> --transport stdio genieacs-mcp -- npx -y genieacs-mcpReplace <…> with your own values
Platform CLI
codex mcp add genieacs-mcp --env ACS_URL=<ACS_URL> --env ACS_USER=<ACS_USER> --env ACS_PASS=<ACS_PASS> --env DEVICE_LIMIT=<DEVICE_LIMIT> -- npx -y genieacs-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"genieacs-mcp": {
"command": "npx",
"args": [
"-y",
"genieacs-mcp"
],
"env": {
"ACS_URL": "<ACS_URL>",
"ACS_USER": "<ACS_USER>",
"ACS_PASS": "<ACS_PASS>",
"DEVICE_LIMIT": "<DEVICE_LIMIT>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"genieacs-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"genieacs-mcp"
],
"env": {
"ACS_URL": "<ACS_URL>",
"ACS_USER": "<ACS_USER>",
"ACS_PASS": "<ACS_PASS>",
"DEVICE_LIMIT": "<DEVICE_LIMIT>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e ACS_URL=<ACS_URL> -e ACS_USER=<ACS_USER> -e ACS_PASS=<ACS_PASS> -e DEVICE_LIMIT=<DEVICE_LIMIT> genieacs-mcp npx -y genieacs-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about genieacs-mcp
How do I install genieacs-mcp in Claude Code?
Run claude mcp add genieacs-mcp -e ACS_URL=<ACS_URL> -e ACS_PASS=<ACS_PASS> -- npx -y genieacs-mcp. A second form adds ACS_USER and DEVICE_LIMIT if you need them.
What does genieacs-mcp do?
It links an AI client to the GenieACS NBI: the assistant searches devices, reads parameters and tasks, and can reboot CPE, push firmware or edit ACS settings.
Do I need my own GenieACS instance?
Yes, the server needs a reachable NBI on port 7557. To try it out, the genieacs-container demo stack starts an ACS with a simulated router.