GoodWe MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOODWE_HOST | No | Inverter IP/hostname for auto-connect on startup | |
| GOODWE_PORT | No | Inverter UDP/TCP port | 8899 |
| MCP_BASE_URL | No | Public base URL of the server | http://<host>:<port> |
| GOODWE_FAMILY | No | Inverter family override (ET, EH, BT, BH, ES, EM, BP, DT, MS, NS, XS) | auto-detect |
| MCP_AUTH_TOKEN | No | Bearer token required on all HTTP requests (auth disabled if empty) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connect_inverterA | Connect to a GoodWe inverter over the local network. Args: host: IP address or hostname of the inverter (e.g. "192.168.1.100"). port: UDP port — default 8899. Use 502 for Modbus/TCP. family: Optional inverter family override: ET, EH, BT, BH, ES, EM, BP, DT, MS, NS, XS. Leave blank for auto-detection. timeout: Per-attempt timeout in seconds. retries: Number of retry attempts on failure. |
| get_connection_statusB | Return the current connection status and basic device info. |
| get_device_infoA | Get model name, serial number and firmware version of the connected inverter. |
| get_runtime_dataA | Read current live data from all inverter sensors. Args: sensor_kind: Optional filter — one of PV, AC, UPS, BAT, GRID, BMS. Omit to return all sensors. Returns power, voltage, current, energy, battery state, grid status and more. |
| list_sensorsA | List all sensor IDs and names available on the connected inverter. Args: sensor_kind: Optional filter — one of PV, AC, UPS, BAT, GRID, BMS. |
| read_sensorA | Read the current value of a single sensor by its ID. Args: sensor_id: Sensor identifier, e.g. "pv1_voltage", "battery_soc", "grid_power". Use list_sensors to discover available IDs. |
| get_settings_dataA | Read all configurable inverter settings and their current values. |
| read_settingA | Read the current value of a single configurable setting. Args: setting_id: Setting identifier. Use get_settings_data to see all IDs. |
| write_settingA | Write a new value to a configurable inverter setting. Args: setting_id: Setting identifier. Use get_settings_data to see available IDs. value: New value as a string (converted to int/float automatically when possible). Warning: Incorrect values can affect inverter operation. Verify the value before writing. |
| get_operation_modeA | Get the current operation mode and the list of modes supported by this inverter. |
| set_operation_modeB | Set the inverter operation mode. Args: mode: One of: general, off_grid, backup, eco, peak_shaving, eco_charge, eco_discharge. eco_mode_power: Power level % for eco modes (0–100, default 100). eco_mode_soc: Battery SOC % threshold for eco modes (0–100, default 100). |
| get_grid_export_limitA | Get the current grid export power limit in watts. |
| set_grid_export_limitA | Set the maximum power the inverter may export to the grid. Args: limit_watts: Power limit in watts (0–10000). Use 0 to disable export. |
| get_battery_dodA | Get the battery depth-of-discharge setting (percentage of capacity that may be used). |
| set_battery_dodA | Set the battery depth-of-discharge limit. Args: depth_percent: How much of the battery capacity may be discharged (0–99). Higher values allow deeper cycling but can reduce battery lifespan. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| status_overview | Get a full status report: connection, live power flow, battery state, and grid metrics. |
| battery_optimisation | Review battery settings and suggest depth-of-discharge and operation mode adjustments. |
| grid_export_config | Check and adjust the grid export power limit. |
| operation_mode_change | Explain available operation modes and help pick the right one. |
| diagnose_issue | Collect full diagnostics and help identify problems with the inverter. |
| daily_energy_summary | Pull today's energy counters and produce a human-readable daily summary. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_status | Connection status and device info for the GoodWe inverter. |
| resource_runtime | Live runtime data from the inverter — all sensor values as JSON. |
| resource_settings | Current configurable settings of the inverter as JSON. |
| resource_power_now | Real-time power flow: PV, battery, grid and load — watts only. |
| resource_energy_today | Today's energy counters: production, load, grid buy/sell, battery charge/discharge (kWh). |
| resource_battery | Battery state: SOC, power, temperature, BMS data, depth-of-discharge and operation mode. |
| resource_sensors | Static sensor catalog: id, name, unit and kind for every sensor (no live values). |
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/marcinn2/goodwe-inverter-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server