Skip to main content
Glama

✨ 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/list

genieacs://presets/list

genieacs://provisions/list

genieacs://faults/{id}

Tools

Invoke actions on a CPE through GenieACS

reboot_device

download_firmware

refresh_parameter

set_parameter

get_parameter

manage_preset

manage_provision

search_devices

tag_device

connection_request

delete_task

retry_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)

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": "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

@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:

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

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
7Releases (12mo)

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