← Back to search

victron-vrm-mcp

lubosstrejcek Scanned 19h ago

MCP server for Victron Energy VRM cloud API — remote, HTTPS, Connector-compatible

D
59.2 / 100

Versions

0.3.0latest
Apr 18, 2026
0.2.1
Apr 18, 2026
0.2.0
Apr 18, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 53

vrm_set_site_settings
annotations: none low

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.

notes string description string phonenumber string alarmMonitoring boolean geofenceEnabled boolean realtimeUpdates boolean restrictNodeRed boolean noDataAlarmActive boolean noDataAlarmTimeout number inverterChargerControl boolean
vrm_create_access_token
annotations: none low

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.

name string
vrm_delete_access_token
annotations: none low

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

vrm_capabilities
annotations: none low

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_get_custom_widgets
annotations: none low

Retrieve all custom widgets configured on a VRM installation. Endpoint: GET /installations/{idSite}/custom-widget.

vrm_create_custom_widget
annotations: none low

Add a new custom widget to a VRM installation. DESTRUCTIVE: creates persistent state. Endpoint: POST /installations/{idSite}/custom-widget.

vrm_patch_custom_widget
annotations: none low

Partially update an existing custom widget. DESTRUCTIVE. Endpoint: PATCH /installations/{idSite}/custom-widget.

vrm_delete_custom_widget
annotations: none low

Remove a custom widget from a VRM installation. DESTRUCTIVE. Endpoint: DELETE /installations/{idSite}/custom-widget.

vrm_get_alarms
annotations: none low

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
annotations: none low

Acknowledge and clear an active alarm on a VRM installation. DESTRUCTIVE: modifies the Event Log. Endpoint: POST /installations/{idSite}/clear-alarm.

alarmId number
vrm_add_alarm
annotations: none low

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
annotations: none low

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
annotations: none low

Remove an alarm definition from an installation (not just acknowledge — actually deletes it). DESTRUCTIVE. Endpoint: DELETE /installations/{idSite}/alarms.

instance number idDataAttribute number
vrm_widget_graph
annotations: none low

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.

width number instance number useMinMax boolean attributeIds array attributeCodes array pointsPerPixel number
vrm_widget
annotations: none low

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

widget string instance number
vrm_widget_generator_state
annotations: none low

Fetch generator state-change data for a VRM installation over a given timeframe (default: last 24 hours). Endpoint: GET /installations/{idSite}/widgets/GeneratorState.

instance number
vrm_search_sites
annotations: none low

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.

query string
vrm_get_site_id
annotations: none low

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.

installation_identifier string
vrm_list_invites
annotations: none low

List invitations the user has issued or received. Endpoint: GET /users/{idUser}/invites.

vrm_add_site
annotations: none low

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.

installation_identifier string
vrm_get_site_users
annotations: none low

List all users, pending invites, access requests, user groups, and site groups linked to a VRM installation. Endpoint: GET /installations/{idSite}/users.

vrm_list_installations
annotations: none low

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_list_data_attributes
annotations: none low

Catalog of all VRM data attributes (codes, descriptions, units). Supports `page` and `count` for pagination. Endpoint: GET /data-attributes.

page number count number
vrm_admin_list_devices
annotations: none low

⚠️ ADMIN-ONLY. Returns 403 for non-admin users. Lists devices across all installations. Endpoint: GET /admin/devices.

vrm_admin_data_attributes_count
annotations: none low

⚠️ ADMIN-ONLY. Count installations across the full corpus matching given data-attribute conditions. Endpoint: GET /admin/installation-data-attributes-count.

vrm_admin_search_download
annotations: none low

⚠️ ADMIN-ONLY. Bulk export of search results. Endpoint: GET /admin/search-download.

vrm_list_firmwares
annotations: none low

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
annotations: none low

⚠️ 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.

serial string favorite union instance number timezone string updatedAt number customName string description string
vrm_installation_overview_download
annotations: none low

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_auth_login_as_demo
annotations: none low

⚠️ 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
annotations: none low

⚠️⚠️ 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.

password string smsToken string username string
vrm_auth_logout
annotations: none low

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_get_tags
annotations: none low

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
annotations: none low

Attach a tag to a VRM installation. DESTRUCTIVE: modifies site metadata. Endpoint: PUT /installations/{idSite}/tags.

tag string
vrm_tags_remove
annotations: none low

Detach a tag from a VRM installation. DESTRUCTIVE. Endpoint: DELETE /installations/{idSite}/tags.

tag string
vrm_find_by_data_attributes
annotations: none low

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.

page number count number
vrm_get_system_overview
annotations: none low

Retrieve the list of connected devices and their roles for an installation. Endpoint: GET /installations/{idSite}/system-overview.

vrm_get_diagnostics
annotations: none low

Per-device diagnostic readings — last known value for every attribute on every device. Endpoint: GET /installations/{idSite}/diagnostics.

vrm_get_stats
annotations: none low

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.

type string datatype enum interval enum attributeCodes array
vrm_get_overallstats
annotations: none low

Lifetime aggregate stats for an installation. Endpoint: GET /installations/{idSite}/overallstats.

vrm_get_dynamic_ess_settings
annotations: none low

Read the current Dynamic ESS configuration for an installation. Endpoint: GET /installations/{idSite}/dynamic-ess-settings.

vrm_get_gps_download
annotations: none low

Fetch GPS position history for an installation. Endpoint: GET /installations/{idSite}/gps-download.

vrm_get_forecasts_last_reset
annotations: none low

Retrieve the timestamp of the last forecasts reset (or 0 if never reset). Endpoint: GET /installations/{idSite}/reset-forecasts.

vrm_invite_user
annotations: none low

Send an email invitation to grant another user access to a VRM installation. DESTRUCTIVE: modifies membership. Endpoint: POST /installations/{idSite}/invite.

name string email string
vrm_unlink_user
annotations: none low

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
annotations: none low

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
annotations: none low

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.

idUser array accessLevel array
vrm_set_invite_rights
annotations: none low

Update the access level for one or more pending email invitations on a VRM installation. DESTRUCTIVE. Endpoint: POST /installations/{idSite}/invite-rights.

email array accessLevel array
vrm_link_user_groups
annotations: none low

Link one or more user groups to a VRM installation with given access levels. DESTRUCTIVE. Endpoint: POST /installations/{idSite}/link-user-groups.

idUserGroup number
vrm_set_user_group_access_level
annotations: none low

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.

accessLevel union idUserGroup number
vrm_set_favorite
annotations: none low

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.

favorite union
vrm_reset_forecasts
annotations: none low

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.

resetType number
vrm_set_dynamic_ess_settings
annotations: none low

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.

settings record

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 126

low
Tool 'vrm_search_sites' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_site_id' has no annotations annotation_checker · 100%
low
Tool 'vrm_list_invites' has no annotations annotation_checker · 100%
low
Tool 'vrm_add_site' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_site_users' has no annotations annotation_checker · 100%
low
Tool 'vrm_list_installations' has no annotations annotation_checker · 100%
low
Tool 'vrm_list_data_attributes' has no annotations annotation_checker · 100%
low
Tool 'vrm_admin_list_devices' has no annotations annotation_checker · 100%
low
Tool 'vrm_admin_data_attributes_count' has no annotations annotation_checker · 100%
low
Tool 'vrm_admin_search_download' has no annotations annotation_checker · 100%
low
Tool 'vrm_list_firmwares' has no annotations annotation_checker · 100%
low
Tool 'vrm_add_system' has no annotations annotation_checker · 100%
low
Tool 'vrm_installation_overview_download' has no annotations annotation_checker · 100%
low
Tool 'vrm_auth_login_as_demo' has no annotations annotation_checker · 100%
low
Tool 'vrm_auth_login' has no annotations annotation_checker · 100%
low
Tool 'vrm_auth_logout' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_tags' has no annotations annotation_checker · 100%
low
Tool 'vrm_tags_add' has no annotations annotation_checker · 100%
low
Tool 'vrm_tags_remove' has no annotations annotation_checker · 100%
low
Tool 'vrm_find_by_data_attributes' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_system_overview' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_diagnostics' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_stats' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_overallstats' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_dynamic_ess_settings' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_gps_download' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_forecasts_last_reset' has no annotations annotation_checker · 100%
low
Tool 'vrm_invite_user' has no annotations annotation_checker · 100%
low
Tool 'vrm_unlink_user' has no annotations annotation_checker · 100%
low
Tool 'vrm_unlink_installation' has no annotations annotation_checker · 100%
low
Tool 'vrm_set_user_rights' has no annotations annotation_checker · 100%
low
Tool 'vrm_set_invite_rights' has no annotations annotation_checker · 100%
low
Tool 'vrm_link_user_groups' has no annotations annotation_checker · 100%
low
Tool 'vrm_set_user_group_access_level' has no annotations annotation_checker · 100%
low
Tool 'vrm_set_favorite' has no annotations annotation_checker · 100%
low
Tool 'vrm_reset_forecasts' has no annotations annotation_checker · 100%
low
Tool 'vrm_set_dynamic_ess_settings' has no annotations annotation_checker · 100%
low
Tool 'vrm_set_site_settings' has no annotations annotation_checker · 100%
low
Tool 'vrm_create_access_token' has no annotations annotation_checker · 100%
low
Tool 'vrm_delete_access_token' has no annotations annotation_checker · 100%
low
Tool 'vrm_capabilities' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_custom_widgets' has no annotations annotation_checker · 100%
low
Tool 'vrm_create_custom_widget' has no annotations annotation_checker · 100%
low
Tool 'vrm_patch_custom_widget' has no annotations annotation_checker · 100%
low
Tool 'vrm_delete_custom_widget' has no annotations annotation_checker · 100%
low
Tool 'vrm_get_alarms' has no annotations annotation_checker · 100%
low
Tool 'vrm_clear_alarm' has no annotations annotation_checker · 100%
low
Tool 'vrm_add_alarm' has no annotations annotation_checker · 100%
low
Tool 'vrm_edit_alarm' has no annotations annotation_checker · 100%
low
Tool 'vrm_delete_alarm' has no annotations annotation_checker · 100%
low
Tool 'vrm_widget_graph' has no annotations annotation_checker · 100%
low
Tool 'vrm_widget' has no annotations annotation_checker · 100%
low
Tool 'vrm_widget_generator_state' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: vitest@4.0.18 (GHSA-5xrq-8626-4rwp) dependency_analyzer · 95%
medium
Vulnerable dependency: vitest@4.0.18 (GHSA-82fw-gwwq-j7x9) dependency_analyzer · 95%
medium
Buffer.from base64 in lubosstrejcek-victron-vrm-mcp-b2ec4e5/tests/client.test.ts:259 entropy_analyzer · 75%
medium
Buffer.from base64 in lubosstrejcek-victron-vrm-mcp-b2ec4e5/tests/handlers.test.ts:367 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: vrm_search_sites manifest_parser · 85%
info
Tool: vrm_get_site_id manifest_parser · 85%
info
Tool: vrm_list_invites manifest_parser · 85%
info
Tool: vrm_add_site manifest_parser · 85%
info
Tool: vrm_get_site_users manifest_parser · 85%
info
Tool: vrm_list_installations manifest_parser · 85%
info
Tool: vrm_list_data_attributes manifest_parser · 85%
info
Tool: vrm_admin_list_devices manifest_parser · 85%
info
Tool: vrm_admin_data_attributes_count manifest_parser · 85%
info
Tool: vrm_admin_search_download manifest_parser · 85%
info
Tool: vrm_list_firmwares manifest_parser · 85%
info
Tool: vrm_add_system manifest_parser · 85%
info
Tool: vrm_installation_overview_download manifest_parser · 85%
info
Tool: vrm_auth_login_as_demo manifest_parser · 85%
info
Tool: vrm_auth_login manifest_parser · 85%
info
Tool: vrm_auth_logout manifest_parser · 85%
info
Tool: vrm_get_tags manifest_parser · 85%
info
Tool: vrm_tags_add manifest_parser · 85%
info
Tool: vrm_tags_remove manifest_parser · 85%
info
Tool: vrm_find_by_data_attributes manifest_parser · 85%
info
Tool: vrm_get_system_overview manifest_parser · 85%
info
Tool: vrm_get_diagnostics manifest_parser · 85%
info
Tool: vrm_get_stats manifest_parser · 85%
info
Tool: vrm_get_overallstats manifest_parser · 85%
info
Tool: vrm_get_dynamic_ess_settings manifest_parser · 85%
info
Tool: vrm_get_gps_download manifest_parser · 85%
info
Tool: vrm_get_forecasts_last_reset manifest_parser · 85%
info
Tool: vrm_invite_user manifest_parser · 85%
info
Tool: vrm_unlink_user manifest_parser · 85%
info
Tool: vrm_unlink_installation manifest_parser · 85%
info
Tool: vrm_set_user_rights manifest_parser · 85%
info
Tool: vrm_set_invite_rights manifest_parser · 85%
info
Tool: vrm_link_user_groups manifest_parser · 85%
info
Tool: vrm_set_user_group_access_level manifest_parser · 85%
info
Tool: vrm_set_favorite manifest_parser · 85%
info
Tool: vrm_reset_forecasts manifest_parser · 85%
info
Tool: vrm_set_dynamic_ess_settings manifest_parser · 85%
info
Tool: vrm_set_site_settings manifest_parser · 85%
info
Tool: vrm_create_access_token manifest_parser · 85%
info
Tool: vrm_delete_access_token manifest_parser · 85%
info
Tool: vrm_capabilities manifest_parser · 85%
info
Tool: vrm_get_custom_widgets manifest_parser · 85%
info
Tool: vrm_create_custom_widget manifest_parser · 85%
info
Tool: vrm_patch_custom_widget manifest_parser · 85%
info
Tool: vrm_delete_custom_widget manifest_parser · 85%
info
Tool: vrm_get_alarms manifest_parser · 85%
info
Tool: vrm_clear_alarm manifest_parser · 85%
info
Tool: vrm_add_alarm manifest_parser · 85%
info
Tool: vrm_edit_alarm manifest_parser · 85%
info
Tool: vrm_delete_alarm manifest_parser · 85%
info
Tool: vrm_widget_graph manifest_parser · 85%
info
Tool: vrm_widget manifest_parser · 85%
info
Tool: vrm_widget_generator_state manifest_parser · 85%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (6) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Invisible Unicode characters in 'vrm_admin_list_devices' poisoning · 92%
critical
Invisible Unicode characters in 'vrm_admin_data_attributes_count' poisoning · 92%
critical
Invisible Unicode characters in 'vrm_admin_search_download' poisoning · 92%
critical
Invisible Unicode characters in 'vrm_add_system' poisoning · 92%
critical
Invisible Unicode characters in 'vrm_auth_login_as_demo' poisoning · 92%
critical
Invisible Unicode characters in 'vrm_auth_login' poisoning · 92%
info
SBOM generated: 182 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%