MCP server bridging GenieACS TR-069 ACS instances to LLMs for CPE device management
Runs on your machine from its package; the steps are below.

At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y genieacs-mcp
MCP client config
{
"mcpServers": {
"genieacs": {
"command": "npx",
"args": [
"-y",
"genieacs-mcp"
]
}
}
}Run
docker run -i --rm drumsergio/genieacs-mcp:v0.3.7
MCP client config
{
"mcpServers": {
"genieacs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"drumsergio/genieacs-mcp:v0.3.7"
]
}
}
}
genieacs-mcp is an MCP server for GenieACS, the open-source TR-069 ACS that manages routers, ONTs and other CPE devices. Add it to Claude Desktop, Cursor or any other MCP client and ask in plain words: which devices stopped informing last night, what firmware serial 000003 runs, reboot the ones tagged pilot. The assistant reads and acts through your GenieACS NBI with 7 resources and 12 tools; one Go binary, no database of its own.
search_devices takes a MongoDB-style filter).genieacs://device/{id}, genieacs://devices/list, ...).search_devices, get_parameter and the seven resources only read; the other ten tools queue a task on a device or change the ACS.Host and Origin against DNS rebinding.npx genieacs-mcp) and a Docker image.You need a GenieACS whose NBI (port 7557) this machine can reach; without one, the family's demo stack gives you an ACS with a simulated router in about a minute:
curl -fsSLO https://raw.githubusercontent.com/GeiserX/genieacs-container/main/docker-compose.yml
docker compose --profile testing up -d # GenieACS + MongoDB + one simulated CPE, NBI on localhost:7557
Then add the server to a client that reads an mcpServers block (Claude Desktop, Cursor, Claude Code; in VS Code the .vscode/mcp.json key is servers):
{
"mcpServers": {
"genieacs": {
"command": "npx",
"args": ["-y", "genieacs-mcp"],
"env": { "ACS_URL": "http://localhost:7557" }
}
}
}
It worked when you ask "which devices does the ACS know about?" and the assistant answers with device ids such as 202BC1-BM632w-000000 (the demo stack) or your own. Docker, the HTTP transport and a local build are in Getting started.
The full documentation is at geiserx.github.io/genieacs-mcp.
Listed in the official MCP Registry as io.github.GeiserX/genieacs-mcp. Part of the GenieACS family: genieacs-container (the ACS itself, Docker and Helm, with this server as a compose profile), genieacs-sim-container, genieacs-ansible, genieacs-ha, genieacs-services, and n8n-nodes-genieacs (archived).