Genieacs MCP logo

Genieacs MCP

by GeiserX

Manage GenieACS devices through MCP with tools for discovery, parameters, firmware, presets, tasks, tags, and CPE actions.

Install Genieacs MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "geiserx-genieacs-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "genieacs-mcp"
      ],
      "env": {
        "ACS_URL": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

GeiserX/genieacs-mcp connects MCP clients to a GenieACS TR-069 ACS through its NBI, exposing device data and management operations as agent tools and resources. It can search CPE inventory, read cached parameters, queue reboots and firmware downloads, refresh or set values, manage tags, and handle presets, provisions, and tasks. The server is a single Go binary with npm and Docker distribution options, and suits operators managing routers, ONTs, and other TR-069 devices through conversational workflows. Use approval prompts carefully because most operational tools can change the ACS or queue actions on devices.

Use cases

  • Find CPEs by tag, firmware, model, or last inform time
  • Read cached device parameters and request fresh values
  • Queue reboots, firmware downloads, and configuration changes
  • Group devices with tags and apply preset-based provisioning
  • Inspect, cancel, or retry GenieACS tasks

Key features

  • GenieACS NBI access over MCP
  • MongoDB-style device search
  • TR-069 parameter reads, refreshes, and updates
  • Firmware downloads and CPE reboot or connection requests
  • Preset, provision, tag, and task management
  • npm package, Go binary, and Docker distribution

Tools12

What Genieacs MCP lets your agent do. Expand a tool for its parameters.

Verified live~3.9k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

7/7 checks healthy over the last 78d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · genieacs-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars19Stargazers on the source repository.
npm downloads642Package downloads in the last 30 days.
Last commit8d agoMost recent push to the default branch.
Tools exposed12Callable tools this server registers over MCP.
Directory activity8 viewsConfig copies, upvotes, and views on AllMCPs.

How Genieacs MCP works

What GeiserX/genieacs-mcp does

GeiserX/genieacs-mcp exposes GenieACS through the Model Context Protocol. GenieACS is a TR-069 Auto Configuration Server for routers, ONTs, and other CPE devices. The MCP server uses the ACS NBI rather than maintaining a separate device database, allowing an MCP client to inspect inventory and request device operations from the same system used for normal GenieACS management.

Its read capabilities include device searches using MongoDB-style filters, cached parameter lookup, and access to device documents, task data, faults, presets, provisions, and files through seven genieacs:// resources. Write and operational capabilities include connection requests, reboots, firmware or file downloads, parameter refreshes and updates, device tagging, preset and provision management, and task deletion or retry.

How it works

The server translates MCP tool calls into GenieACS NBI requests. Searches can filter by tags, manufacturer, model, firmware, last inform time, or stored TR-069 paths. get_parameter reads values already held by GenieACS, while refresh_parameter queues a request for the CPE to report a current value. Device actions such as rebooting, downloading firmware, and setting parameters are generally asynchronous tasks executed when the CPE next contacts the ACS.

A connection request can prompt an immediately reachable CPE to start a CWMP session, but it does not itself create a task. Tasks can be inspected through resources, removed while pending, or retried after a fault. Presets and provisions change ACS behavior for later device inform sessions rather than applying changes immediately.

Setup and configuration

A reachable GenieACS NBI is required; the example configuration uses http://localhost:7557. The server can be launched with the npm package through npx genieacs-mcp, built as a local Go binary, or run with Docker. Configure an MCP client with an mcpServers entry and set ACS_URL in its environment:

config.json
{
  "mcpServers": {
    "genieacs": {
      "command": "npx",
      "args": ["-y", "genieacs-mcp"],
      "env": { "ACS_URL": "http://localhost:7557" }
    }
  }
}

The documented client examples include Claude Desktop, Cursor, Claude Code, and VS Code. VS Code uses a servers key in .vscode/mcp.json rather than mcpServers. A demo stack can provide GenieACS, MongoDB, and a simulated CPE through Docker Compose, with the NBI exposed on local port 7557.

Tools and capabilities

  • Search devices with MongoDB comparison and matching operators.
  • Read cached TR-069 values or request parameter refreshes.
  • Set writable parameters, reboot devices, request connections, and queue firmware or file downloads.
  • Add or remove device tags for grouping and preset targeting.
  • Create, replace, or delete presets and JavaScript provision scripts.
  • Delete pending tasks or retry tasks that contain faults.

Limitations and notes

Cached values may be stale, and a parameter that GenieACS has never collected is unavailable through get_parameter. Refreshes, reboots, downloads, and parameter changes are asynchronous; completion must be checked through later device or task data. Connection requests require the CPE to be reachable from the ACS, so NAT, offline devices, or blocked ports can prevent them from working.

Only pending tasks can be deleted, and only faulted tasks can be retried. Writable parameter support depends on the CPE. Provision scripts run in the GenieACS sandbox with a limited API and cannot make arbitrary HTTP requests or access the filesystem. The server has no read-only mode, so MCP client approval prompts should remain enabled when exposing it to an assistant.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Genieacs MCP

GeiserX/genieacs-mcp is an MCP server that connects AI clients to GenieACS, a TR-069 ACS for routers, ONTs, and other CPE devices. Its main tools search devices, read and set parameters, request refreshes, reboot devices, download firmware, manage tags, presets, provisions, and handle pending or faulted tasks.

Install it through the npm package with `npx -y genieacs-mcp`, or use its Go binary or Docker image. Add the command to an MCP client configuration and set `ACS_URL` to a reachable GenieACS NBI endpoint, such as `http://localhost:7557`.

Yes, GeiserX/genieacs-mcp works with Cursor. Add it as an MCP server using an `mcpServers` configuration entry, launch it with `npx -y genieacs-mcp`, and provide the GenieACS endpoint through the `ACS_URL` environment variable.

Use `search_devices` with a JSON MongoDB-style filter and an optional result limit. Filters can match tags, manufacturers, models, firmware, last inform timestamps, or stored TR-069 parameters; for example, `_tags` can locate devices assigned to a group.

Yes, it can queue reboots, firmware or file downloads, parameter updates, and parameter refreshes through GenieACS. These operations are asynchronous and normally execute when the CPE contacts the ACS, although a reachable device can receive a connection request to start a session sooner.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewGenieacs MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/geiserx-genieacs-mcp?style=directory)](https://allmcps.com/mcp/geiserx-genieacs-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/geiserx-genieacs-mcp"><img src="https://allmcps.com/api/badge/geiserx-genieacs-mcp?style=directory" alt="Genieacs MCP on AllMCPs" /></a>