GenieACS MCP
MCP server that exposes GenieACS TR-069 ACS instances to LLMs for device management, firmware downloads, and parameter reads
GenieACS-MCP
A tiny bridge that exposes any GenieACS instance as an MCP v1 (JSON-RPC for LLMs) server written in Go.
✨ 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 |
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": "[email protected]",
"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
Servidores relacionados
Kone.vc
patrocinadorMonetize your AI agent with contextual product recommendations
MCP Voice Assistant
A voice-enabled AI personal assistant that integrates multiple tools and services through natural voice interactions using MCP.
Loreto Skills Generator
Feed any YouTube video, article, PDF, or image into the Loreto API and receive production-ready skill packages, complete with SKILL.md, test scripts, and reference stubs.
Notion
Connects AI assistants to your Notion workspace, allowing you to search, create, and manage content using natural language.
YuQue MCP
An MCP server for interacting with the YuQue knowledge base, enabling AI assistants to perform operations on documents and information.
Yachtsy MCP Server
Search, compare, and track sailboats with real-time listings, market insights, specs, and price history.
NexNex
Organizational context & memory for AI agents. Connect 100+ tools into one knowledge graph via 47 MCP tools.
healthcare-billing-codes
Standard MCP Server for looking up CPT, ICD-10, and denial codes.
Invoice MCP
Create professional PDF invoices using natural language.
Bexio MCP
Complete Swiss accounting integration for Bexio via MCP. Works with Claude Desktop, n8n, and any MCP client. 221 tools for invoices, contacts, projects & more.
MCP Orchestrator
A universal interface to manage and interact with all your MCP servers from a single point, using external configuration files for mappings and credentials.