genieacs-mcp
✨ What you get
Type | What for | MCP URI / Tool id |
Resources | Consume GenieACS data read-only |
|
Tools | Invoke actions on a CPE through GenieACS |
|
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-mcpOr install globally:
npm install -g genieacs-mcp
genieacs-mcpThis 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 |
| GenieACS NBI endpoint (without trailing /) | |
| admin | GenieACS username |
| admin | GenieACS password |
| (empty = HTTP) | Set to |
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": "Read data from GenieACS and run actions on CPEs (reboot, firmware update, parameter refresh).",
"description_for_model": "Interact with an Auto-Configuration-Server (ACS) that manages routers. 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://. Use listTools to discover available actions and callTool to execute them.",
"auth": { "type": "none" },
"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 |
Docker + Helm | Production-ready multi-arch Docker image and Helm chart | |
Ansible Collection | Dynamic inventory plugin and device management modules | |
HA Integration | Home Assistant integration for TR-069 monitoring | |
n8n Node | Workflow automation for GenieACS | |
Service Defs | Systemd/Supervisord service definitions | |
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
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GeiserX/genieacs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server