GenieACS

Registre officiel Autres

MCP server bridging GenieACS TR-069 ACS instances to LLMs for CPE device management

Que pouvez-vous faire avec GenieACS ?

  • Find devices the way you would ask a colleague: by tag, model, firmware, last inform, or any TR-069 parameter (search_devices takes a MongoDB-style filter).
  • Read a device's full parameter tree, its tasks and its faults, plus the presets, provisions and files on the ACS, as resources (genieacs://device/{id}, genieacs://devices/list, ...).
  • Reboot a device, push firmware to it, refresh or set a parameter, or wake it with a connection request, from a chat.
  • Tag devices, create or delete presets and provisions, and delete or retry tasks, so the assistant can fix what it finds.
  • Every tool description says what it does, its limits and an example, so clients pick the right one without a prompt from you.
  • Read versus act: search_devices, get_parameter and the seven resources only read; the other ten tools queue a task on a device or change the ACS.
  • No read-only mode: point it at an ACS you are willing to let an assistant act on, and keep your client's tool-approval prompts on.
  • Safe on a laptop: the HTTP transport listens on loopback only unless you set an address and a bearer token, and checks Host and Origin against DNS rebinding.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package genieacs-mcp
Claude Code
claude mcp add genieacs -e 'ACS_URL=http://localhost:7557' -e 'ACS_USER=<ACS_USER>' -e 'ACS_PASS=<your acs_pass>' -e 'DEVICE_LIMIT=500' -e 'GENIEACS_READ_ONLY=false' -e 'GENIEACS_TOOLS=<GENIEACS_TOOLS>' -e 'ACS_TIMEOUT=30' -e 'ACS_MAX_RESPONSE_BYTES=4194304' -- npx -y genieacs-mcp@0.4.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "genieacs": {
            "command": "npx",
            "args": [
                "-y",
                "genieacs-mcp@0.4.0"
            ],
            "env": {
                "ACS_URL": "http://localhost:7557",
                "ACS_USER": "<ACS_USER>",
                "ACS_PASS": "<your acs_pass>",
                "DEVICE_LIMIT": "500",
                "GENIEACS_READ_ONLY": "false",
                "GENIEACS_TOOLS": "<GENIEACS_TOOLS>",
                "ACS_TIMEOUT": "30",
                "ACS_MAX_RESPONSE_BYTES": "4194304"
            }
        }
    }
}

Variables d'environnement

  • ACS_URL GenieACS NBI URL, without a trailing slash
  • ACS_USER GenieACS NBI basic-auth username
  • ACS_PASS secret GenieACS NBI basic-auth password
  • DEVICE_LIMIT Max devices returned by genieacs://devices/list (default 500)
  • GENIEACS_READ_ONLY Set to true to serve only the tools that never change a device or the ACS
  • GENIEACS_TOOLS Comma-separated tool names to serve; every other tool is left out
  • ACS_TIMEOUT Seconds to wait for one GenieACS NBI request (default 30)
  • ACS_MAX_RESPONSE_BYTES Largest GenieACS NBI response the server reads, in bytes (default 4194304)
OCI package drumsergio/genieacs-mcp:v0.4.0
Claude Code
claude mcp add genieacs -e 'ACS_URL=http://genieacs:7557' -e 'ACS_USER=<ACS_USER>' -e 'ACS_PASS=<your acs_pass>' -e 'DEVICE_LIMIT=500' -e 'GENIEACS_READ_ONLY=false' -e 'GENIEACS_TOOLS=<GENIEACS_TOOLS>' -e 'ACS_TIMEOUT=30' -e 'ACS_MAX_RESPONSE_BYTES=4194304' -- docker run -i --rm drumsergio/genieacs-mcp:v0.4.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "genieacs": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "drumsergio/genieacs-mcp:v0.4.0"
            ],
            "env": {
                "ACS_URL": "http://genieacs:7557",
                "ACS_USER": "<ACS_USER>",
                "ACS_PASS": "<your acs_pass>",
                "DEVICE_LIMIT": "500",
                "GENIEACS_READ_ONLY": "false",
                "GENIEACS_TOOLS": "<GENIEACS_TOOLS>",
                "ACS_TIMEOUT": "30",
                "ACS_MAX_RESPONSE_BYTES": "4194304"
            }
        }
    }
}

Variables d'environnement

  • ACS_URL GenieACS NBI URL, without a trailing slash
  • ACS_USER GenieACS NBI basic-auth username
  • ACS_PASS secret GenieACS NBI basic-auth password
  • DEVICE_LIMIT Max devices returned by genieacs://devices/list (default 500)
  • GENIEACS_READ_ONLY Set to true to serve only the tools that never change a device or the ACS
  • GENIEACS_TOOLS Comma-separated tool names to serve; every other tool is left out
  • ACS_TIMEOUT Seconds to wait for one GenieACS NBI request (default 30)
  • ACS_MAX_RESPONSE_BYTES Largest GenieACS NBI response the server reads, in bytes (default 4194304)

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Features
  2. Quick start
  3. Documentation
  4. Related projects
  5. License

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.

Features

  • Find devices the way you would ask a colleague: by tag, model, firmware, last inform, or any TR-069 parameter (search_devices takes a MongoDB-style filter).
  • Read a device's full parameter tree, its tasks and its faults, plus the presets, provisions and files on the ACS, as resources (genieacs://device/{id}, genieacs://devices/list, ...).
  • Reboot a device, push firmware to it, refresh or set a parameter, or wake it with a connection request, from a chat.
  • Tag devices, create or delete presets and provisions, and delete or retry tasks, so the assistant can fix what it finds.
  • Every tool description says what it does, its limits and an example, so clients pick the right one without a prompt from you.
  • Read versus act: search_devices, get_parameter and the seven resources only read; the other ten tools queue a task on a device or change the ACS.
  • No read-only mode: point it at an ACS you are willing to let an assistant act on, and keep your client's tool-approval prompts on.
  • Safe on a laptop: the HTTP transport listens on loopback only unless you set an address and a bearer token, and checks Host and Origin against DNS rebinding.
  • One static Go binary for Linux, macOS and Windows on amd64 and arm64, also as an npm package (npx genieacs-mcp) and a Docker image.

Quick start

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.

Documentation

The full documentation is at geiserx.github.io/genieacs-mcp.

  • Getting started: npm, Docker Compose, local build, and what the first exchange looks like
  • Configuration: every environment variable, the HTTP transport's security model, client config for stdio and HTTP
  • Usage: the 7 resources and 12 tools with their arguments, which ones act on devices, example prompts
  • Development: tests, trying the server with MCP Inspector, contributing
  • Related projects: the GenieACS family, other MCP servers, where this server is listed

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).

License

GPL-3.0-or-later

Questions fréquentes

Qu'est-ce que GenieACS ?

MCP server bridging GenieACS TR-069 ACS instances to LLMs for CPE device management

Comment installer GenieACS ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add genieacs -e 'ACS_URL=http://localhost:7557' -e 'ACS_USER=<ACS_USER>' -e 'ACS_PASS=<your acs_pass>' -e 'DEVICE_LIMIT=500' -e 'GENIEACS_READ_ONLY=false' -e 'GENIEACS_TOOLS=<GENIEACS_TOOLS>' -e 'ACS_TIMEOUT=30' -e 'ACS_MAX_RESPONSE_BYTES=4194304' -- npx -y genieacs-mcp@0.4.0. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour GenieACS ?

Oui. Il attend ACS_PASS, à renseigner dans sa configuration.

GenieACS est-il open source ?

Oui. Son code est sur GitHub sous licence GPL-3.0.

Qui maintient GenieACS ?

Il est publié par GeiserX. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.