About Genieacs Mcp
genieacs-mcp is a Go MCP server for managing devices through GenieACS. It exposes device data as resources and provides tools for searching devices, inspecting ACS state, and carrying out device operations.
Key features
- 01Search devices by tags, models, firmware, or parameters
- 02Read device parameters, tasks, and faults
- 03Reboot devices and manage firmware or parameters
- 04Manage tags, presets, provisions, and tasks
- 05Read-only mode and selectable tool exposure
- 06stdio and stateless HTTP transports
Use cases
- 01Find devices that have stopped informing
- 02Check firmware or parameter values for a device
- 03Reboot or update a selected group of devices
- 04Inspect ACS resources from an MCP client
MCP support
The server exposes seven resources and twelve tools backed by the GenieACS NBI to MCP clients. It supports stdio and stateless HTTP transports, with a read-only mode and configurable tool selection.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y genieacs-mcpACS_URLGenieACS NBI URL, without a trailing slashACS_USERGenieACS NBI basic-auth usernameACS_PASSSecretGenieACS NBI basic-auth passwordDEVICE_LIMITMax devices returned by genieacs://devices/list (default 500)GENIEACS_READ_ONLYSet to true to serve only the tools that never change a device or the ACSGENIEACS_TOOLSComma-separated tool names to serve; every other tool is left outACS_TIMEOUTSeconds to wait for one GenieACS NBI request (default 30)ACS_MAX_RESPONSE_BYTESLargest GenieACS NBI response the server reads, in bytes (default 4194304)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
3Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | Yes | Target device ID |
| file_id | string | Yes | GridFS _id of the file to download |
| filename | string | No | (optional) file name to pass to the CPE |
Details
From the project README
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_devicestakes 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_parameterand the seven resources only read; the other ten tools queue a task on a device or change the ACS, and each tool's hints say which, so your client can ask before the ones that act. - Read-only mode:
GENIEACS_READ_ONLY=trueserves only the two reading tools and the resources;GENIEACS_TOOLS=search_devices,reboot_deviceserves only the tools you name. - Speaks MCP 2026-07-28 and every earlier version back to 2024-11-05, so new and old clients both connect, over stdio or stateless HTTP.
- Safe on a laptop: the HTTP transport listens on loopback only unless you set an address and a bearer token, and checks
HostandOriginagainst 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" }
}
}
}
The same server in other clients:
# Claude Code
claude mcp add --transport stdio --env ACS_URL=http://localhost:7557 genieacs -- npx -y genieacs-mcp
# Docker, over stdio (any client that starts a command)
docker run -i --rm -e ACS_URL=http://host.docker.internal:7557 drumsergio/genieacs-mcp:v0.4.0
// VS Code, .vscode/mcp.json
{ "servers": { "genieacs": { "type": "stdio", "command": "npx", "args": ["-y", "genieacs-mcp"], "env": { "ACS_URL": "http://localhost:7557" } } } }
# Codex, ~/.codex/config.toml
[mcp_servers.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
Related projects
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
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.