MCP server for Victron Energy GX devices via Modbus TCP or MQTT
Victron Tcp MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. MCP server for Victron Energy GX devices via Modbus TCP or MQTT.
Connect AI assistants to Victron Energy systems. Read real-time solar, battery, grid, and inverter data from your local network — no cloud required.
Once Victron Tcp is connected, these are the calls the assistant has available:
victron_system_overview — Battery SOC, PV power, grid power, AC consumption, ESS statusvictron_battery_status — SOC, voltage, current, power, temperature, cell data, time-to-govictron_solar_status — PV power, yield today/yesterday/total, charger state, tracker datavictron_grid_status — Grid power per phase (L1/L2/L3), voltage, current, frequencyvictron_vebus_status — Multi/Quattro: AC in/out, current limit, mode, state, alarmsvictron_tank_levels — Tank level, capacity, remaining, fluid typevictron_temperature — Temperature, sensor type, humidity, pressurevictron_inverter_status — Standalone inverter: AC output, state, alarmsvictron_evcs_status — EV Charging Station: power, status, session energyvictron_multi_status — Multi RS inverter/chargervictron_pvinverter_status — AC-coupled PV inverters (Fronius, SolarEdge, ABB)victron_genset_status — AC genset controllersYou will need 4 environment variables: VICTRON_HOST, VICTRON_TRANSPORT, VICTRON_PORTAL_ID, VICTRON_UNIT_ID. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Installation goes through your MCP client rather than a global install: point it at victron-tcp on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
This sits in the developer tooling group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Victron Tcp's toolset — victron_system_overview, victron_battery_status, victron_solar_status and 11 more — is a fair guide to whether it matches your workflow. It is maintained by lubosstrejcek; worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Victron Tcp's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
| Tool | What it does |
|---|---|
| victron_system_overview | Battery SOC, PV power, grid power, AC consumption, ESS status |
| victron_battery_status | SOC, voltage, current, power, temperature, cell data, time-to-go |
| victron_solar_status | PV power, yield today/yesterday/total, charger state, tracker data |
| victron_grid_status | Grid power per phase (L1/L2/L3), voltage, current, frequency |
| victron_vebus_status | Multi/Quattro: AC in/out, current limit, mode, state, alarms |
| victron_tank_levels | Tank level, capacity, remaining, fluid type |
| victron_temperature | Temperature, sensor type, humidity, pressure |
| victron_inverter_status | Standalone inverter: AC output, state, alarms |
| victron_evcs_status | EV Charging Station: power, status, session energy |
| victron_multi_status | Multi RS inverter/charger |
| victron_pvinverter_status | AC-coupled PV inverters (Fronius, SolarEdge, ABB) |
| victron_genset_status | AC genset controllers |
| victron_dcgenset_status | DC generators |
| victron_alternator_status | NMEA 2000 alternators |
{
"mcpServers": {
"victron-tcp": {
"command": "npx",
"args": ["-y", "victron-tcp"],
"env": {
"VICTRON_HOST": "your-value",
"VICTRON_TRANSPORT": "your-value",
"VICTRON_PORTAL_ID": "your-value",
"VICTRON_UNIT_ID": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| VICTRON_HOST | Endpoint or connection string the server talks to. | Optional |
| VICTRON_TRANSPORT | Configuration value read at startup. | Optional |
| VICTRON_PORTAL_ID | Configuration value read at startup. | Optional |
| VICTRON_UNIT_ID | Configuration value read at startup. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.