Skip to main content
Glama
aydho

sigenergy-mcp

by aydho

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SIGENERGY_HOSTYesIP address of the Sigenergy system (required)
SIGENERGY_PORTNoModbus TCP port502
SIGENERGY_TIMEOUTNoModbus request timeout, seconds10
SIGENERGY_PLANT_IDNoPlant device id247
SIGENERGY_AUDIT_LOGNoFile to append a JSON line to for every write
SIGENERGY_LOG_LEVELNoPython log levelWARNING
SIGENERGY_HTTP_TOKENNoBearer token required by the HTTP transport
SIGENERGY_ALLOW_WRITESNoEnable control (write) toolsfalse
SIGENERGY_INVERTER_IDSNoComma-separated inverter device ids1
SIGENERGY_AC_CHARGER_IDSNoAC charger (EVAC) device ids, usually 1
SIGENERGY_DC_CHARGER_IDSNoDC charger (EVDC) ids = the inverter's id
SIGENERGY_HTTP_ALLOWED_HOSTSNoAllowed Host headers for HTTP, e.g. pi.local:8000,192.168.1.20:8000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_plant_statusA

Live overview of the whole system: PV, battery, grid and load power, battery SOC, mode and active alarms.

load_power comes from the system's own load register on newer firmware; otherwise it is derived as plant AC output + grid power + third-party PV - AC EV charger power.

get_battery_statusB

Battery (ESS) state for the whole plant: SOC, SOH, power, capacity, available energy and limits.

get_grid_statusB

Grid connection point: total and per-phase active/reactive power and on/off-grid status.

get_energy_totalsA

Plant energy counters (kWh): PV, load, battery, grid import/export and EV charger totals.

These registers need Modbus protocol V2.5+ firmware; any the system doesn't support are listed in errors.

get_inverter_statusA

Detailed live data for a hybrid inverter: power, battery, temperatures, AC voltages/currents and PV strings.

Args: inverter_id: Modbus device id of the inverter. Omit to read every configured inverter.

get_inverter_infoA

Static inverter information: model, serial number, firmware and ratings.

Args: inverter_id: Modbus device id of the inverter. Omit to read every configured inverter.

get_control_settingsB

Current plant control settings: remote EMS enable/mode, power limits and SOC limits.

list_registersB

List the named registers known to this server for the plant or an inverter.

read_registersA

Read named registers (see list_registers) and return scaled values with units.

Args: names: Register names, e.g. ["ess_soc", "pv_power"]. scope: "plant" (system level), "inverter", "ac_charger" or "dc_charger". device_id: Modbus device id. Defaults to the plant id (247) or the first configured device of that kind.

read_raw_registersA

Read arbitrary registers by address, for registers not in the built-in map.

Args: address: Start register address as given in the Sigenergy Modbus protocol (e.g. 30014). count: Number of 16-bit words to read (1-125). device_id: Modbus device id. Defaults to the plant id (247). register_type: "input" (function 0x04) or "holding" (0x03). Defaults to input for 3xxxx, holding otherwise. data_type: Optionally decode the words as this type.

get_ev_charger_statusA

Status of every configured Sigen EV charger.

AC chargers (EVAC): state (IEC 61851: no vehicle / connected / charging...), charging power, energy, ratings, alarms. DC chargers (EVDC, built into a SigenStor): state, output power, vehicle SOC, session energy and duration, lifetime totals and power limits.

discover_devicesA

Scan Modbus device ids to find the plant, inverters, DC chargers and AC chargers.

Probes ids 1..max_device_id in order and stops at the first id that doesn't answer. Use the result to set SIGENERGY_INVERTER_IDS, SIGENERGY_AC_CHARGER_IDS and SIGENERGY_DC_CHARGER_IDS.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation4/5

Each tool targets a distinct subsystem (plant, grid, battery, inverter, EV charger, energy totals, registers), so boundaries are mostly clear. The only mild overlap is that get_plant_status summarizes data also exposed by the individual status tools, but descriptions clarify the live-overview vs subsystem-detail distinction.

Naming Consistency5/5

Names follow a consistent verb_noun snake_case pattern (get_*_status, get_*_info, list_registers, read_registers, read_raw_registers, discover_devices). The verbs (get/list/read/discover) map predictably to action type.

Tool Count5/5

12 tools is well within the sweet spot for a monitoring/inspection domain, and each earns its place by covering a distinct device or data access layer.

Completeness4/5

The read surface is thorough: live status, static info, energy counters, settings, named-register and raw-register access, device discovery, and EV charging. The notable gap is write/control operations (e.g. setting power or SOC limits) implied by get_control_settings, though read_raw_registers partially mitigates unmapped reads.

Maintenance

ActivityMaintained
ResponsivenessNo issues