Skip to content

Victron VRM MCP server via DADL

Victron Energy VRM API -- monitor and control solar installations, batteries, inverters, and energy systems via the Victron Remote Management portal

Use the Victron VRM API as an MCP server with Claude, GPT, or any MCP-compatible AI agent — defined declaratively in a single DADL file, served by ToolMesh. No custom MCP server code, no boilerplate.

Source: Victron Energy VRM REST API v2

Credits: Dunkel Cloud GmbH -- maintainer Updated: 2026-03-31

Coverage

82% (41 of ~50 endpoints)

Focus: auth, users, installations, stats, widgets, diagnostics, alarms, data export, GPS, tags, dynamic ESS, firmware, data attributes

Missing: admin endpoints, access token CRUD, installation settings write, alarm acknowledgement

Last reviewed: 2026-03-31

Setup

  1. Log in to the VRM Portal at https://vrm.victronenergy.com
  2. Navigate to Preferences → Integrations → Access tokens
  3. Click 'New token', give it a descriptive name
  4. Copy the generated token immediately -- it is shown only once
  5. Store the token prefixed with 'Token ' (e.g. 'Token abc123def456') in the credential store

Environment variable: CREDENTIAL_VICTRON_VRM_TOKEN

Authentication docs ↗

Personal Access Tokens bypass the login flow entirely. Use /users/me to get your idUser, then /users/{idUser}/installations to discover your sites. The token has full access to all installations the VRM user can see.

Install

Add to your backends.yaml:

- name: victron-vrm
  transport: rest
  dadl: /app/dadl/victron-vrm.dadl

Set the credential:

CREDENTIAL_VICTRON_VRM_TOKEN=your-token-here

Tools (44)

POST login Authenticate with username/password and receive a bearer token. Prefer Personal Access Tokens for automation.
GET login_as_demo Log in as the demo user to explore the API without credentials
GET logout Invalidate the current session token
GET get_current_user Get the current authenticated user's profile and idUser. Essential first call when using Personal Access Tokens.
GET list_installations List all installations accessible to a user. Returns idSite, name, and system overview for each.
GET get_installation Get high-level system overview for a specific installation including current power flow
GET search_installations Search through the user's installations by name, notes, or address
GET get_installation_tags Get tags/labels assigned to an installation
GET get_stats Get time-series statistics for an installation. Types: venus, live_feed, consumption, kwh, solar_yield, forecast.
GET get_overall_stats Get aggregated lifetime totals for an installation (total kWh generated, consumed, etc.)
GET download_data Download historical data as CSV or Excel for an installation
GET download_gps_data Download GPS tracking data for a mobile installation (e.g. boat, RV)
GET get_alarms Get active and historical alarms for an installation. Also returns device list and user notification settings.
GET get_diagnostics Get the most recent diagnostic data points for all devices at an installation
GET get_widget Get widget data for a specific device category. See hints for available widget types.
GET get_widget_graph Get graph widget data with time-series values for specific device instances and attributes
GET get_widget_battery Get battery summary: voltage, current, state of charge (SoC), temperature, and health
GET get_widget_solar_charger Get MPPT solar charger data: PV voltage, current, yield, and charger state
GET get_widget_vebus_state Get VE.Bus system state: inverter/charger mode, input voltage, output power
GET get_widget_inverter_charger_state Get inverter/charger operational mode and status
GET get_widget_status Get general system status overview for the installation
GET get_widget_pv_inverter Get PV inverter AC output: power, voltage, current per phase
GET get_widget_ev_charger Get EV charger status: charging power, session energy, and state
GET get_widget_tank Get tank level and capacity for fuel, water, or waste tanks
GET get_widget_temperature Get temperature sensor readings and graphical data
GET get_widget_dc_meter Get DC power meter readings (voltage, current, power)
GET get_widget_motor Get motor drive summary: RPM, power, and temperature
GET get_widget_gps Get current GPS position for mobile installations (boats, RVs)
GET get_widget_global_link Get GlobalLink 520 device summary and connectivity status
GET get_widget_vebus_warnings Get VE.Bus system warnings and alarm conditions
GET get_widget_inverter_warnings Get inverter/charger warning and alarm conditions
GET get_widget_bms_diagnostics Get BMS cell voltages, balancing data, and battery management diagnostics
GET get_widget_lithium_bms Get lithium battery BMS details: cell voltages, temperatures, and balancing
GET get_widget_historic_data Get historic data trend analysis for device performance over time
GET get_widget_io_extender Get IO extender digital and analog input/output signals
GET get_widget_charger_relay Get charger relay switching status
GET get_widget_solar_charger_relay Get solar charger relay state
GET get_widget_gateway_relay Get primary gateway (GX device) relay state
GET get_widget_gateway_relay_two Get secondary gateway (GX device) relay state
GET get_widget_custom Get custom widget configuration and data
GET get_dynamic_ess Get Dynamic ESS (Energy Storage System) settings and schedule for optimized battery usage
GET get_data_attributes Get all available data attribute definitions (codes, labels, units) used across the VRM API
GET get_firmwares List available firmware versions for Victron devices
GET reset_forecasts Get forecast reset timestamps for recalculation scheduling