MCP ExplorerExplorer

Genieacs Mcp

@GeiserXon 9 months ago
3 GPL-3.0
FreeCommunity
AI Systems
MCP Server for GenieACS in Go

Overview

What is Genieacs Mcp

genieacs-mcp is a Management Control Protocol (MCP) server designed for GenieACS, implemented in the Go programming language. It facilitates communication between network devices and the ACS (Auto Configuration Server).

Use cases

Use cases for genieacs-mcp include managing broadband routers, configuring set-top boxes, and automating device provisioning in large-scale networks.

How to use

To use genieacs-mcp, you need to set up the server in your environment, configure it according to your network requirements, and then integrate it with GenieACS to manage your devices effectively.

Key features

Key features of genieacs-mcp include support for various network protocols, efficient device management, real-time communication capabilities, and easy integration with existing GenieACS infrastructure.

Where to use

genieacs-mcp is typically used in telecommunications and networking environments where device management and configuration automation are essential.

Content

GenieACS-MCP

A tiny bridge that exposes any GenieACS instance as an MCP v1
(JSON-RPC for LLMs) server written in Go.

Go
Docker Image
GitHub license


✨ 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
Tools Invoke actions on a CPE through GenieACS reboot_device
download_firmware
refresh_parameter

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-docker, it is included in the docker compose file there.

🛠 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 admin GenieACS username
ACS_PASS admin GenieACS password

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-docker/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

@GeiserX.

Contributing

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

GenieACS-Docker follows the Contributor Covenant Code of Conduct.

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers