GenieACS-MCP

MCP serverAI & models

Once added, your AI can help manage the CPE devices handled by your GenieACS setup. This integration connects your AI to GenieACS so device management can happen through a normal conversation. It works with the GenieACS you already have in place.

Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.

Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.

What your AI can do with it

  • Connect your AI to a GenieACS instance
  • Manage CPE devices through your GenieACS setup
  • Handle device management tasks by asking your AI
  • Work with the devices your GenieACS already manages

Getting started

  1. Save this item in Your setup as a reference.
  2. Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
  3. Check this page for availability before trying to install it through Ahel.

From the project's README

As published by geiserx/genieacs-mcp in README.md.


✨ What you get

TypeWhat forMCP URI / Tool id
ResourcesConsume GenieACS data read-onlygenieacs://device/{id}genieacs://file/{name}genieacs://tasks/{id}genieacs://devices/listgenieacs://presets/listgenieacs://provisions/listgenieacs://faults/{id}
ToolsInvoke actions on a CPE through GenieACSreboot_devicedownload_firmwarerefresh_parameterset_parameterget_parametermanage_presetmanage_provisionsearch_devicestag_deviceconnection_requestdelete_taskretry_task

Everything is exposed over a single JSON-RPC endpoint (/mcp).
LLMs / Agents can: initialize → readResource → listTools → callTool … and so on.


🚀 Quick-start (Docker Compose)

Follow instructions from https://github.com/GeiserX/genieacs-container, it is included in the docker compose file there.

📦 Install via npm (stdio transport)

npx genieacs-mcp

Or install globally:

npm install -g genieacs-mcp
genieacs-mcp

This downloads the pre-built Go binary for your platform and runs it with stdio transport, compatible with any MCP client.

🛠 Local build

git clone https://github.com/GeiserX/genieacs-mcp
cd genieacs-mcp

# (optional) create .env from the sample
cp .env.example .env && $EDITOR .env

go run ./cmd/server

🔧 Configuration

VariableDefaultDescription
ACS_URLhttp://localhost:7557GenieACS NBI endpoint (without trailing /)
ACS_USER(empty)GenieACS NBI basic-auth username
ACS_PASS(empty)GenieACS NBI basic-auth password
TRANSPORT(empty = HTTP)Set to stdio for stdio transport
DEVICE_LIMIT500Max devices returned by genieacs://devices/list
MCP_LISTEN_ADDR127.0.0.1:8080HTTP listen address (only used when TRANSPORT is not stdio)
MCP_AUTH_TOKEN(empty)Bearer token for HTTP transport auth. Required when MCP_LISTEN_ADDR is non-loopback
MCP_ALLOWED_HOSTS(empty)Comma-separated extra Host header values to accept (e.g. a reverse-proxy domain). Loopback names on the listen port are always allowed
MCP_ALLOWED_ORIGINS(empty)Comma-separated extra browser Origin values to accept (e.g. https://my-ai-app.com)

Security — HTTP transport. The HTTP transport validates the Host and Origin headers on every request to prevent DNS rebinding from a malicious web page reaching a local listener. Requests with an untrusted Host, or a present-but-untrusted Origin, are rejected with 403. Loopback access works with no configuration; if you expose the server through a reverse proxy or a hostname, add that name to MCP_ALLOWED_HOSTS (and MCP_ALLOWED_ORIGINS for browser clients). The stdio transport is unaffected and remains the recommended mode for local MCP clients.

Put them in a .env file (from .env.example) or set them in the environment.

Testing

Tested with Inspector and it is currently fully working. Before making a PR, make sure this MCP server behaves well via this medium.

Lacks Testing with actual MCP clients (client LLMs), so please, submit your PRs to improve descriptions in case it fails to adequately match the services offered by this MCP server.

Example configuration for client LLMs:

{
  "schema_version": "v1",
  "name_for_human": "GenieACS-MCP",
  "name_for_model": "genieacs_mcp",
  "description_for_human": "Full CPE management through GenieACS — parameter read/write, presets, provisions, firmware, tags, search, and task lifecycle.",
  "description_for_model": "Interact with a GenieACS TR-069 Auto-Configuration-Server (ACS) that manages CPE devices (routers, ONTs, gateways). First call initialize, then reuse the returned session id in header \"Mcp-Session-Id\" for every other call. Use readResource to fetch URIs that begin with genieacs:// (devices, presets, provisions, faults). Use listTools to discover available actions (parameter read/write, presets, provisions, tags, search, task management) and callTool to execute them.",
  "auth": { "type": "bearer", "token": "<MCP_AUTH_TOKEN value>" },
  "api": {
    "type": "jsonrpc-mcp",
    "url":  "http://localhost:8080/mcp",
    "init_method": "initialize",
    "session_header": "Mcp-Session-Id"
  },
  "logo_url": "https://raw.githubusercontent.com/GeiserX/genieacs-container/main/extra/logo.png",
  "contact_email": "acsdesk@protonmail.com",
  "legal_info_url": "https://github.com/GeiserX/genieacs-mcp/blob/main/LICENSE"
}

Credits

GenieACS – the best open-source ACS

MCP-GO – modern MCP implementation

GoReleaser – painless multi-arch releases

Maintainers

@GeiserX.

Contributing

Feel free to dive in! Open an issue or submit PRs.

GenieACS-MCP follows the Contributor Covenant Code of Conduct.

GenieACS Ecosystem

This project is part of a broader set of tools for working with GenieACS:

ProjectTypeDescription
genieacs-dockerDocker + HelmProduction-ready multi-arch Docker image and Helm chart
genieacs-ansibleAnsible CollectionDynamic inventory plugin and device management modules
genieacs-haHA IntegrationHome Assistant integration for TR-069 monitoring
n8n-nodes-genieacsn8n NodeWorkflow automation for GenieACS
genieacs-servicesService DefsSystemd/Supervisord service definitions
genieacs-sim-containerSimulatorDocker-based GenieACS simulator for testing

Other MCP Servers by GeiserX

Signals

GitHub stars
17
Forks
4
Last commit
Oct 2026
Weekly downloads
235
Advanced
Delivery
genieacs-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-geiserx-genieacs-mcp
Source
github.com/geiserx/genieacs-mcp