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
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
Setup
- Log in to the VRM Portal at https://vrm.victronenergy.com
- Navigate to Preferences → Integrations → Access tokens
- Click 'New token', give it a descriptive name
- Copy the generated token immediately -- it is shown only once
- Store the token prefixed with 'Token ' (e.g. 'Token abc123def456') in the credential store
Environment variable: CREDENTIAL_VICTRON_VRM_TOKEN
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