Victron TCP

Created By
lubosstrejcek4 months ago
An MCP (Model Context Protocol) server that connects to Victron Energy GX devices via Modbus TCP or MQTT on your local network. Get direct, low-latency access to real-time solar, battery, grid, and inverter data — no cloud required. Built from the official CCGX Modbus TCP register list (Rev 50, 900+ registers across 33 device categories). Features 30 specialized tools for reading Victron device data Dual transport — Modbus TCP (port 502) or MQTT (port 1883) 900+ registers across 33 device categories Network discovery — scan the local network to find GX devices, no IP needed One-shot setup — victron_setup probes both transports, discovers everything, generates ready-to-use config Read-only and safe — all tools annotated with readOnlyHint: true
Overview

Victron TCP — MCP Server

An MCP (Model Context Protocol) server that connects to Victron Energy GX devices on your local network via MQTT (recommended) or Modbus TCP. Get direct, low-latency access to real-time solar, battery, grid, and inverter data — no cloud required.

900+ registers across 33 device categories, built from the official CCGX Modbus TCP register list (Rev 50). MQTT transport uses the Venus OS built-in broker for zero-config auto-discovery.

Features

  • 30 specialized tools for reading Victron device data
  • Dual transport — MQTT (port 1883, zero-config) or Modbus TCP (port 502, raw register access)
  • 900+ registers across 33 device categories
  • Network discovery — scan the local network to find GX devices, no IP needed
  • One-shot setupvictron_setup probes both transports, discovers everything, generates ready-to-use config
  • Read-only and safe — all tools annotated with readOnlyHint: true

Prerequisites

  1. A Victron GX device on your local network (Ekrano, Cerbo, Venus GX, etc.)
  2. MQTT (enabled by default) or Modbus TCP (Settings → Services → Modbus TCP)
  3. Node.js 18+

Quick Start

claude mcp add --transport stdio victron-tcp -- npx victron-tcp

With environment variables pre-configured:

claude mcp add --transport stdio \
  -e VICTRON_HOST=192.168.1.50 \
  -e VICTRON_TRANSPORT=mqtt \
  -e VICTRON_PORTAL_ID=ca0f0e2e2261 \
  victron-tcp -- npx victron-tcp

Claude Desktop / Cursor / Windsurf

{
  "mcpServers": {
    "victron-tcp": {
      "command": "npx",
      "args": ["-y", "victron-tcp"],
      "env": {
        "VICTRON_HOST": "192.168.1.50",
        "VICTRON_TRANSPORT": "mqtt",
        "VICTRON_PORTAL_ID": "your-portal-id"
      }
    }
  }
}

See docs/setup.md for per-client config paths, project/user scopes, and building from source.

Don't know your GX device IP?

Ask the AI:

Find my Victron GX device on the network and set it up.

The AI will use victron_network_scan to find it, then victron_setup to configure everything.

Available Tools

Core Monitoring

ToolDescription
victron_system_overviewBattery SOC, PV power, grid power, AC consumption, ESS status
victron_battery_statusSOC, voltage, current, power, temperature, cell data, time-to-go
victron_solar_statusPV power, yield today/yesterday/total, charger state, tracker data
victron_grid_statusGrid power per phase (L1/L2/L3), voltage, current, frequency
victron_vebus_statusMulti/Quattro: AC in/out, current limit, mode, state, alarms
victron_tank_levelsTank level, capacity, remaining, fluid type
victron_temperatureTemperature, sensor type, humidity, pressure
victron_inverter_statusStandalone inverter: AC output, state, alarms
victron_evcs_statusEV Charging Station (direct connection): power, status, session energy

Extended Devices

ToolDescription
victron_multi_statusMulti RS inverter/charger
victron_pvinverter_statusAC-coupled PV inverters (Fronius, SolarEdge, ABB)
victron_genset_statusAC genset controllers
victron_dcgenset_statusDC generators
victron_alternator_statusNMEA 2000 alternators
victron_charger_statusAC chargers (Skylla, Blue Smart)
victron_dcdc_statusOrion XS DC-DC converter
victron_acload_statusAC load / current sensors
victron_dcenergy_statusDC energy meters (SmartShunts in DC meter mode)
victron_gx_infoGX device identity, relay states
victron_digital_inputsDigital input state and type
victron_gps_statusGPS position, altitude, speed
victron_meteo_statusSolar irradiance, wind speed, temperatures
victron_generator_statusGenerator auto start/stop, runtime, alarms

Discovery & Setup

ToolDescription
victron_network_scanScan local network to find GX devices by probing Modbus TCP and MQTT ports
victron_setupFull system setup: test transports, discover devices, generate MCP config
victron_mqtt_discoverAuto-discover MQTT portal ID, services, and device instances
victron_discoverScan Modbus unit IDs to find all connected devices

Utility

ToolDescription
victron_read_categoryRead all registers for any device category by service name
victron_read_registerRead raw register(s) by address (Modbus only)
victron_list_registersList available registers for a device category

Environment Variables

Set these to skip repetitive parameters:

VariableDescriptionExample
VICTRON_HOSTGX device IP or hostname192.168.1.50
VICTRON_TRANSPORTmodbus or mqttmqtt
VICTRON_PORTAL_IDPortal ID for MQTTca0f0e2e2261
VICTRON_MODBUS_PORTModbus TCP port502
VICTRON_MQTT_PORTMQTT broker port1883
VICTRON_UNIT_IDDefault Modbus unit ID100

Documentation

GuideContent
SetupClient configuration, transport comparison, finding unit IDs, supported devices
Examples15 real-world prompts with step-by-step AI behavior
TroubleshootingCommon errors and debugging
FAQFrequently asked questions
ArchitectureCode structure, how it works, register map

Roadmap

  • Phase 2: Write support — ESS mode control, grid setpoint, charge current limits, relay control
  • Phase 3: Resources — expose live device data as MCP resources with subscription notifications for real-time updates
  • Claude Desktop Extension packaging (.mcpb)
  • NPM package publishing (npx victron-tcp)

References

License

MIT

Server Config

{
  "mcpServers": {
    "victron-tcp": {
      "command": "npx",
      "args": [
        "-y",
        "victron-tcp"
      ],
      "env": {
        "VICTRON_HOST": "192.168.1.50",
        "VICTRON_TRANSPORT": "mqtt",
        "VICTRON_PORTAL_ID": "your-portal-id"
      }
    }
  }
}
Project Info
Created At
4 months ago
Updated At
3 months ago
Author Name
lubosstrejcek
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Tavily Mcp
@tavily-ai

JavaScript
a year ago