victron-vrm-mcp
MCP server for Victron Energy VRM cloud API — remote, HTTPS, Connector-compatible
Versions
0.3.0latest0.2.10.2.0Tools 53
vrm_widget_graph Fetch graph time-series data for one or more data attributes on a VRM installation. Attributes can be given by code (strings) or id (integers) or both. If no timeframe is provided, the last 24 hours are returned. Endpoint: GET /installations/{idSite}/widgets/Graph.
vrm_widget Fetch any VRM widget by name — BatterySummary, SolarChargerSummary, TankSummary, VeBusState, EvChargerSummary, MPPTState, InputState, InverterState, PVInverterStatus, MotorSummary, MeteorologicalSensorOverview, GlobalLinkSummary, Status, HoursOfAc, LithiumBMS, DCMeter, FuelCellState, BatteryRelayState, BatteryExternalRelayState, ChargerRelayState, GatewayRelayState, GatewayRelayTwoState, SolarChargerRelayState, BatteryMonitorWarningsAndAlarms, VeBusWarningsAndAlarms, InverterChargerState, InverterChargerWarningsAndAlarms, EssBatteryLifeState, IOExtenderInOut, BMSDiagnostics, HistoricData, TempSummaryAndGraph, TempAirQuality. Endpoint: GET /installations/{idSite}/widgets/{widget}.
vrm_widget_generator_state Fetch generator state-change data for a VRM installation over a given timeframe (default: last 24 hours). Endpoint: GET /installations/{idSite}/widgets/GeneratorState.
vrm_set_favorite Toggle the favorite flag on a VRM installation. `favorite: 1` to mark, `0` to unmark. DESTRUCTIVE: modifies per-user site metadata. Endpoint: POST /installations/{idSite}/favorite.
vrm_reset_forecasts Reset the forecasting model for an installation. Future forecasts ignore data before this timestamp. DESTRUCTIVE: affects prediction quality for the site. Endpoint: POST /installations/{idSite}/reset-forecasts.
vrm_set_dynamic_ess_settings Write the Dynamic ESS configuration object for an installation. DESTRUCTIVE: changes battery/grid scheduling behavior. Body is a DynamicEssConfiguration object — refer to VRM docs for field list (scheduleEnabled, b2gEnabled, countryCode, batteryKwh, priceSchedule, etc.). Endpoint: POST /installations/{idSite}/dynamic-ess-settings.
vrm_set_site_settings Update one or more settings on a VRM installation (name, notes, geofence, alarm behavior, Node-RED restrictions, inverter-charger control, etc.). DESTRUCTIVE: changes site configuration. Endpoint: POST /installations/{idSite}/settings.
vrm_get_site_users List all users, pending invites, access requests, user groups, and site groups linked to a VRM installation. Endpoint: GET /installations/{idSite}/users.
vrm_get_custom_widgets Retrieve all custom widgets configured on a VRM installation. Endpoint: GET /installations/{idSite}/custom-widget.
vrm_create_custom_widget Add a new custom widget to a VRM installation. DESTRUCTIVE: creates persistent state. Endpoint: POST /installations/{idSite}/custom-widget.
vrm_patch_custom_widget Partially update an existing custom widget. DESTRUCTIVE. Endpoint: PATCH /installations/{idSite}/custom-widget.
vrm_delete_custom_widget Remove a custom widget from a VRM installation. DESTRUCTIVE. Endpoint: DELETE /installations/{idSite}/custom-widget.
vrm_auth_login_as_demo ⚠️ DEPRECATED by VRM on 2026-06-01 (Bearer scheme deprecation). Fetches a short-lived Bearer token for the Victron demo tenant. Useful for testing but NOT for production. Endpoint: GET /auth/loginAsDemo.
vrm_auth_login ⚠️⚠️ DEPRECATED by VRM on 2026-06-01 AND a security hazard — your password flows through this MCP server. STRONGLY prefer creating a personal access token via /users/{idUser}/accesstokens/create. Endpoint: POST /auth/login.
vrm_auth_logout Log out the Bearer token used for this request — invalidates the session so subsequent calls with the same Bearer fail. DESTRUCTIVE for the current session (DEPRECATED Bearer flow only; has no effect on long-lived personal access tokens). Endpoint: POST /auth/logout.
vrm_list_data_attributes Catalog of all VRM data attributes (codes, descriptions, units). Supports `page` and `count` for pagination. Endpoint: GET /data-attributes.
vrm_admin_list_devices ⚠️ ADMIN-ONLY. Returns 403 for non-admin users. Lists devices across all installations. Endpoint: GET /admin/devices.
vrm_admin_data_attributes_count ⚠️ ADMIN-ONLY. Count installations across the full corpus matching given data-attribute conditions. Endpoint: GET /admin/installation-data-attributes-count.
vrm_admin_search_download ⚠️ ADMIN-ONLY. Bulk export of search results. Endpoint: GET /admin/search-download.
vrm_list_firmwares Catalog of Victron firmware versions for a given feed channel + VictronConnect client version. Both params are required by VRM. `feedChannel` values seen in the wild: `release`, `candidate`, `testing`, `officialrelease`. Pass the current VictronConnect version from the client making the request — do not hardcode it. Endpoint: GET /firmwares.
vrm_add_system ⚠️ ADMIN / DEALER ONLY. Register a new VictronConnect System in VRM with one or more devices (serial + productId + instance per device). DESTRUCTIVE: creates persistent state. Endpoint: POST /systems/add-system.
vrm_installation_overview_download Bulk export of installation overviews. Returns a binary payload (typically a ZIP archive) as base64. Despite the POST verb this is a read (takes filter body). Endpoint: POST /installation-overview-download.
vrm_search_sites Search for sites the caller has access to by site ID, user email, user name, device serial number, site identifier, or email domain. Endpoint: GET /users/{idUser}/search.
vrm_get_site_id Look up the numeric idSite for a given 12-char hex installation_identifier (the portalId printed on the GX device). Endpoint: POST /users/{idUser}/get-site-id.
vrm_list_invites List invitations the user has issued or received. Endpoint: GET /users/{idUser}/invites.
vrm_add_site Link a VRM installation (by identifier) to the user account. An email is sent when done. DESTRUCTIVE: modifies account membership. Endpoint: POST /users/{idUser}/addsite.
vrm_list_installations List all VRM installations (sites) accessible to the authenticated user. Calls /users/me then /users/{idUser}/installations. Returns idSite, name, identifier, owner/admin flags, and metadata for each site.
vrm_capabilities Reports the authenticated user (id, name, email) and probes whether the current token can reach admin endpoints. Use this BEFORE attempting any admin / system / firmware tool to avoid avoidable 403s. Probes /users/me + /admin/devices (count=1).
vrm_find_by_data_attributes Search the current user\'s installations by up to five data-attribute conditions. Query syntax uses attribute codes and comparisons, e.g. `bs>=50,au=(1,2),IV1!`. Endpoint: GET /installation-data-attributes.
vrm_invite_user Send an email invitation to grant another user access to a VRM installation. DESTRUCTIVE: modifies membership. Endpoint: POST /installations/{idSite}/invite.
vrm_unlink_user Remove another user from a VRM installation. Requires full-control or technician access. Cannot remove the last admin. DESTRUCTIVE. Endpoint: POST /installations/{idSite}/unlink-user.
vrm_unlink_installation Remove the CURRENT user\'s own access to an installation. DESTRUCTIVE: you will lose access to this site. Endpoint: POST /installations/{idSite}/unlink.
vrm_set_user_rights Update the access level for one or more users on a VRM installation. The idUser and accessLevel arrays must be the same length. DESTRUCTIVE: changes who can do what. Endpoint: POST /installations/{idSite}/user-rights.
vrm_set_invite_rights Update the access level for one or more pending email invitations on a VRM installation. DESTRUCTIVE. Endpoint: POST /installations/{idSite}/invite-rights.
vrm_link_user_groups Link one or more user groups to a VRM installation with given access levels. DESTRUCTIVE. Endpoint: POST /installations/{idSite}/link-user-groups.
vrm_set_user_group_access_level Set a new access level for a user group on an installation, or unlink it entirely by passing accessLevel: null. DESTRUCTIVE. Endpoint: POST /installations/{idSite}/user-group-access-level.
vrm_get_alarms Get all alarms configured for a VRM installation, plus the devices, users (who receive notifications), and attributes that can be used to define new alarms. Read-only. Endpoint: GET /installations/{idSite}/alarms.
vrm_clear_alarm Acknowledge and clear an active alarm on a VRM installation. DESTRUCTIVE: modifies the Event Log. Endpoint: POST /installations/{idSite}/clear-alarm.
vrm_add_alarm Create a new alarm on an installation. Two variants: float (numeric threshold, PascalCase field names) and enum (set membership, camelCase names). DESTRUCTIVE. Endpoint: POST /installations/{idSite}/alarms.
vrm_edit_alarm Update an existing alarm on an installation. Same body shape as vrm_add_alarm (float or enum variant). DESTRUCTIVE. Endpoint: PUT /installations/{idSite}/alarms.
vrm_delete_alarm Remove an alarm definition from an installation (not just acknowledge — actually deletes it). DESTRUCTIVE. Endpoint: DELETE /installations/{idSite}/alarms.
vrm_get_tags List tags attached to a VRM installation, grouped by source (user, team, group, predefined). Optionally filter to a single source. Endpoint: GET /installations/{idSite}/tags.
vrm_tags_add Attach a tag to a VRM installation. DESTRUCTIVE: modifies site metadata. Endpoint: PUT /installations/{idSite}/tags.
vrm_tags_remove Detach a tag from a VRM installation. DESTRUCTIVE. Endpoint: DELETE /installations/{idSite}/tags.
vrm_get_system_overview Retrieve the list of connected devices and their roles for an installation. Endpoint: GET /installations/{idSite}/system-overview.
vrm_get_diagnostics Per-device diagnostic readings — last known value for every attribute on every device. Endpoint: GET /installations/{idSite}/diagnostics.
vrm_get_stats Time-series stats for an installation. Supports 15-min / hours / days / weeks / months / years intervals with documented max-range limits. Supports `custom` datatype with attribute codes. Endpoint: GET /installations/{idSite}/stats.
vrm_get_overallstats Lifetime aggregate stats for an installation. Endpoint: GET /installations/{idSite}/overallstats.
vrm_get_dynamic_ess_settings Read the current Dynamic ESS configuration for an installation. Endpoint: GET /installations/{idSite}/dynamic-ess-settings.
vrm_get_gps_download Fetch GPS position history for an installation. Endpoint: GET /installations/{idSite}/gps-download.
vrm_get_forecasts_last_reset Retrieve the timestamp of the last forecasts reset (or 0 if never reset). Endpoint: GET /installations/{idSite}/reset-forecasts.
vrm_create_access_token Create a new long-lived VRM access token for a user. DESTRUCTIVE: the returned token grants API access and should be stored securely. Endpoint: POST /users/{idUser}/accesstokens/create.
vrm_delete_access_token Revoke one VRM access token by id, or ALL tokens by passing idAccessToken: "*". DESTRUCTIVE: revoked tokens cannot be restored. If the caller uses the same token being revoked, all subsequent calls will fail. Endpoint: DELETE /users/{idUser}/accesstokens/{idAccessToken}.
Permissions 3
network medium shell high env_vars low