GenieACS-MCP
MCP serverAI & modelsOnce 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
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- 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
| Type | What for | MCP URI / Tool id |
|---|---|---|
| Resources | Consume GenieACS data read-only | genieacs://device/{id}genieacs://file/{name}genieacs://tasks/{id}genieacs://devices/listgenieacs://presets/listgenieacs://provisions/listgenieacs://faults/{id} |
| Tools | Invoke actions on a CPE through GenieACS | reboot_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
| Variable | Default | Description |
|---|---|---|
ACS_URL | http://localhost:7557 | GenieACS 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_LIMIT | 500 | Max devices returned by genieacs://devices/list |
MCP_LISTEN_ADDR | 127.0.0.1:8080 | HTTP 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
HostandOriginheaders on every request to prevent DNS rebinding from a malicious web page reaching a local listener. Requests with an untrustedHost, or a present-but-untrustedOrigin, are rejected with403. Loopback access works with no configuration; if you expose the server through a reverse proxy or a hostname, add that name toMCP_ALLOWED_HOSTS(andMCP_ALLOWED_ORIGINSfor browser clients). Thestdiotransport 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
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:
| Project | Type | Description |
|---|---|---|
| genieacs-docker | Docker + Helm | Production-ready multi-arch Docker image and Helm chart |
| genieacs-ansible | Ansible Collection | Dynamic inventory plugin and device management modules |
| genieacs-ha | HA Integration | Home Assistant integration for TR-069 monitoring |
| n8n-nodes-genieacs | n8n Node | Workflow automation for GenieACS |
| genieacs-services | Service Defs | Systemd/Supervisord service definitions |
| genieacs-sim-container | Simulator | Docker-based GenieACS simulator for testing |
Other MCP Servers by GeiserX
- cashpilot-mcp — Passive income monitoring
- duplicacy-mcp — Backup health monitoring
- lynxprompt-mcp — AI configuration blueprints
- pumperly-mcp — Fuel and EV charging prices
- telegram-archive-mcp — Telegram message archive
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
github.com/geiserx/genieacs-mcp
More in AI & models
MCP server · upstash
More in AI & modelsAdButler
MCP server · adbutler
More in AI & modelsatom-mcp-server
MCP server · a7om-ai
More in AI & modelsottasia
MCP server · aiweather-anurag
More in AI & modelsunphurl
MCP server · 123ergo
More in AI & modelsmicrosoft-learn-mcp
MCP server · microsoftdocs
More in AI & models