# Victron VRM MCP Server — 44 tools via DADL

The Victron VRM DADL turns Victron VRM's API into an MCP server that Claude, GPT or any MCP-compatible agent can consume directly. One YAML file declares all 44 tools — widget, data, installation, alarm, diagnostic, dynamic, and more — and ToolMesh serves them at runtime. No Python boilerplate, no per-endpoint code, no separate MCP server process.

Below: the endpoint coverage matrix, a two-block ToolMesh setup, the full tool reference grouped by Victron VRM feature area.

**Source:** [Victron Energy VRM REST API v2](https://vrm-api-docs.victronenergy.com/)

**Updated:** 2026-03-31

**Tags:** energy, iot, monitoring, authentication, search, real-time, metrics, auth:bearer

## Which Victron VRM endpoints are covered?

**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*

## How do you configure the Victron VRM DADL?

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](https://vrm-api-docs.victronenergy.com/)

*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.*

## How do you install the Victron VRM MCP server with ToolMesh?

Add to your `backends.yaml`:

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

```

Set the credential:

```
CREDENTIAL_VICTRON_VRM_TOKEN=your-token-here
```

## What 44 tools does the Victron VRM DADL expose?

- **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

## Which DADLs are related to Victron VRM?

- [Graylog](https://www.dadl.ai/d/graylog/) — Graylog REST API -- log search (Views/Search + legacy universal), streams, pipelines, inputs, alerts, events, dashboards, users, roles, sidecars, index management, and cluster administration. Targets Graylog 6.x.
- [PeeringDB](https://www.dadl.ai/d/peeringdb/) — PeeringDB v2 API -- the public peering database of networks (ASNs), Internet Exchanges, and colocation facilities: full CRUD over net, ix, fac, org, carrier, campus, point-of-contact records, and the netixlan/netfac/ixfac/carrierfac/ixlan/ixpfx relationships that map who peers where
- [Umami](https://www.dadl.ai/d/umami/) — Umami open-source web analytics — privacy-friendly alternative to Google Analytics
- [Algolia HN Search](https://www.dadl.ai/d/algolia-hn-search/) — Algolia Hacker News Search API — full-text search, filtering, and retrieval for stories, comments, and users on Hacker News
- [Cloudflare](https://www.dadl.ai/d/cloudflare/) — Cloudflare API -- DNS, Pages, Workers, KV, R2, D1, Zones, SSL/TLS, Cache, Load Balancers, Firewall/WAF, Page Rules, Access (Zero Trust), and account management
- [DokuWiki](https://www.dadl.ai/d/dokuwiki/) — DokuWiki JSON-RPC API — wiki pages, media files, search, ACL management, and user administration

---

**Canonical URL:** https://www.dadl.ai/d/victron-vrm/
**Raw DADL:** https://github.com/DunkelCloud/dadl-registry/blob/main/victron-vrm.dadl
