Victron VRM MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Victron VRM MCP Server show me my current solar production"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Victron VRM MCP Server
A Model Context Protocol (MCP) server that provides read-only access to Victron VRM data.
Features
Read-only access to Victron VRM API v2
Complete implementation of all 41 GET endpoints
Supports comprehensive VRM monitoring:
User & authentication management
Installation discovery and search
Real-time system overview
Time-series statistics and forecasts
Aggregated energy totals
Alarms and warnings
Detailed diagnostics
20+ widget endpoints for specific device data
Data export in CSV/Excel formats
GPS tracking for mobile installations
Full input validation and error handling
Rate limiting awareness (200 requests rolling window)
Comprehensive test coverage
Related MCP server: unofficial-solaredge-mcp
Installation
npm install
npm run buildConfiguration
Set the following environment variables:
VRM_TOKEN(required): Your VRM personal access tokenVRM_BASE_URL(optional): Default ishttps://vrmapi.victronenergy.com/v2VRM_TOKEN_KIND(optional): EitherToken(default) orBearer
You can set these via shell env or a local .env file (auto‑loaded via dotenv). Example .env:
VRM_TOKEN=your-token-here
VRM_BASE_URL=https://vrmapi.victronenergy.com/v2
VRM_TOKEN_KIND=TokenGetting a VRM Token
Log into VRM Portal
Go to Preferences → Integrations → Access tokens
Create a new personal access token
Copy the token and set it as
VRM_TOKEN
Usage
As MCP Server (stdio)
# Option A: env inline
VRM_TOKEN=your-token-here npm start
# Option B: use .env (recommended)
echo "VRM_TOKEN=your-token-here" > .env
npm startClaude Desktop Configuration
Add to your Claude Desktop config:
{
"mcpServers": {
"vrm": {
"command": "node",
"args": ["/path/to/victron_vrm_mcp/dist/index.js"],
"env": {
"VRM_TOKEN": "your-token-here" // or omit if using .env alongside the binary
}
}
}
}Available Tools (41 Total)
Core Monitoring (8 tools)
vrm_get_user_me- Get current user information including user IDvrm_list_installations- List all installations accessible to the uservrm_get_system_overview- Get high-level system overview for a sitevrm_get_stats- Time-series statistics (venus, live_feed, consumption, kwh, solar_yield, forecast)vrm_get_overall_stats- Aggregated totals for attribute codes over a periodvrm_get_alarms- Retrieve alarms for a sitevrm_get_diagnostics- Get most recent diagnostic datapointsvrm_get_widget_graph- Widget graph data for specific device instances
Authentication & User Management (4 tools)
vrm_auth_login_as_demo- Login as demo accountvrm_auth_logout- Logout from current sessionvrm_search_user_installations- Search through user's installations
Data Export & Downloads (5 tools)
vrm_download_installation_data- Download data in CSV/Excel formats with optional parsingvrm_download_gps_data- Download GPS tracking datavrm_get_installation_tags- Get installation tags and labelsvrm_get_custom_widget- Get custom widget configurationvrm_get_dynamic_ess_settings- Get Dynamic ESS configuration
Widget State Monitoring (7 tools)
vrm_get_vebus_state- VE.Bus system statevrm_get_inverter_charger_state- Inverter/charger operational statevrm_get_charger_relay_state- Charger relay switching statusvrm_get_solar_charger_relay_state- Solar charger relay statevrm_get_gateway_relay_state- Gateway relay statevrm_get_gateway_relay_two_state- Secondary gateway relay statevrm_get_status_widget- General system status
Warnings & Alarms (2 tools)
vrm_get_vebus_warnings_alarms- VE.Bus system warnings and alarmsvrm_get_inverter_charger_warnings_alarms- Inverter/charger warnings
Device Summaries (9 tools)
vrm_get_battery_summary- Battery voltage, current, SoC, healthvrm_get_solar_charger_summary- MPPT performance and yieldvrm_get_ev_charger_summary- EV charging status and powervrm_get_global_link_summary- GlobalLink device summaryvrm_get_motor_summary- Motor drive RPM and powervrm_get_pv_inverter_status- PV inverter AC output statusvrm_get_tank_summary- Tank levels and capacityvrm_get_temp_summary_graph- Temperature sensors and graphsvrm_get_dc_meter- DC power meter readings
Advanced Diagnostics (4 tools)
vrm_get_bms_diagnostics- BMS cell voltages and balancingvrm_get_lithium_bms- Lithium battery BMS datavrm_get_historic_data- Historic data trendsvrm_get_io_extender- IO extender digital/analog signals
System-Wide Information (3 tools)
vrm_get_data_attributes- System-wide data attributesvrm_get_firmwares- Available firmware versionsvrm_get_reset_forecasts- Forecast reset timestamps
Example Usage in Claude
Once configured, you can ask Claude to:
"Show me my solar system's current status"
"What's my battery state of charge?"
"Download today's energy data as CSV"
"Check for any system alarms"
"Show me solar production for the last week"
"Get battery voltage trends"
"Export monthly energy totals"
Claude will use the appropriate VRM tools to fetch and analyze your Victron system data.
Development
# Run tests
npm test
# Run tests with UI
npm run test:ui
# Type checking
npm run typecheck
# Development mode with watch
npm run devTesting
The project includes comprehensive unit tests for:
Schema validation
VRM client functionality
MCP server integration
Error handling
Edge cases
Run tests with:
npm testSecurity
Never logs tokens or sensitive data
Strict path allowlisting
Input validation on all tools
Read-only operations only
License
ISC
Available Tools
41 toolsvrm_auth_login_as_demoB
Login as a demo account to explore VRM functionality.
Inputs: no named parameters.
vrm_auth_logoutA
Logout from the current VRM session.
Inputs: no named parameters.
vrm_download_gps_dataC
Download GPS tracking data for mobile installations.
Inputs: siteId (required), start, end.
vrm_download_installation_dataC
Download installation data in various formats (CSV, Excel) with optional parsing for CSV.
Inputs: siteId (required), start, end, datatype, +2 more.
vrm_get_alarmsB
Check for any system alarms or alerts from your solar/battery installation. Supports historical time ranges to retrieve past alarms and warnings.
Inputs: siteId (required), activeOnly, page, pageSize, +4 more.
vrm_get_battery_summaryB
Get comprehensive battery summary including voltage, current, SoC, and health status.
Inputs: siteId (required), instance.
vrm_get_bms_diagnosticsB
Get Battery Management System diagnostics with cell voltages and balancing data.
Inputs: siteId (required), instance.
vrm_get_charger_relay_stateC
Get charger relay state and switching status.
Inputs: siteId (required), instance.
vrm_get_custom_widgetC
Get custom widget configuration for an installation.
Inputs: siteId (required).
vrm_get_data_attributesC
Get system-wide data attributes with filtering and sorting options.
Inputs: filter, sort, limit, offset.
vrm_get_dc_meterB
Get DC power meter readings with voltage, current, and power measurements.
Inputs: siteId (required), instance.
vrm_get_diagnosticsC
Get detailed diagnostic data and technical readings from your energy system devices.
Inputs: siteId (required), count, offset.
vrm_get_dynamic_ess_settingsB
Get Dynamic ESS (Energy Storage System) configuration settings.
Inputs: siteId (required).
vrm_get_ev_charger_summaryA
Get EV charger summary with charging status and power delivery.
Inputs: siteId (required), instance.
vrm_get_firmwaresC
Get available firmware versions and information.
Inputs: type, version.
vrm_get_gateway_relay_stateC
Get gateway relay state for remote switching control.
Inputs: siteId (required), instance.
vrm_get_gateway_relay_two_stateA
Get secondary gateway relay state for dual relay control.
Inputs: siteId (required), instance.
vrm_get_global_link_summaryB
Get GlobalLink device summary for generator and tank monitoring.
Inputs: siteId (required), instance.
vrm_get_historic_dataC
Get historic data widget with time-series information and trends.
Inputs: siteId (required), instance.
vrm_get_installation_tagsB
Get tags and labels associated with an installation.
Inputs: siteId (required).
vrm_get_inverter_charger_stateB
Get inverter/charger state and operational status.
Inputs: siteId (required), instance.
vrm_get_inverter_charger_warnings_alarmsB
Get inverter/charger specific warnings and alarms.
Inputs: siteId (required), instance.
vrm_get_io_extenderC
Get IO extender input/output status for digital and analog signals.
Inputs: siteId (required), instance.
vrm_get_lithium_bmsB
Get Lithium battery BMS data with advanced cell monitoring and safety information.
Inputs: siteId (required), instance.
vrm_get_motor_summaryB
Get motor drive summary with RPM, power, and operational status.
Inputs: siteId (required), instance.
vrm_get_overall_statsA
Get aggregated energy totals (daily, monthly, yearly) for solar yield, consumption, battery performance, etc.
Inputs: siteId (required), attributeCodes (required), type, start, +1 more.
vrm_get_pv_inverter_statusA
Get PV inverter status with AC output and grid-tie information.
Inputs: siteId (required), instance.
vrm_get_reset_forecastsB
Get forecast reset timestamp for an installation.
Inputs: siteId (required).
vrm_get_solar_charger_relay_stateC
Get solar charger relay state and MPPT switching status.
Inputs: siteId (required), instance.
vrm_get_solar_charger_summaryB
Get solar charger summary with MPPT performance and yield data.
Inputs: siteId (required), instance.
vrm_get_statsC
Get time-series data for solar production, battery usage, consumption, energy yield, and forecasts over time.
Inputs: siteId (required), type (required), interval, start, +3 more.
vrm_get_status_widgetB
Get general system status information and operational state.
Inputs: siteId (required), instance.
vrm_get_system_overviewB
Get current status of your energy system including battery level, solar production, consumption, and grid usage.
Inputs: siteId (required).
vrm_get_tank_summaryB
Get tank sensor summary with fluid levels and capacity information.
Inputs: siteId (required), instance.
vrm_get_temp_summary_graphB
Get temperature sensor summary and historical graph data.
Inputs: siteId (required), instance.
vrm_get_user_meA
Get your VRM account information and user profile.
Inputs: no named parameters.
vrm_get_vebus_stateA
Get VE.Bus system state information including inverter and charger status.
Inputs: siteId (required), instance.
vrm_get_vebus_warnings_alarmsB
Get VE.Bus system warnings and alarms for troubleshooting. Supports historical time ranges to retrieve past warnings like overload events.
Inputs: siteId (required), instance, start, end.
vrm_get_widget_graphC
Get specific device performance graphs (battery voltage, inverter output, solar panel data, etc.).
Inputs: siteId (required), attributeCodes (required), instance (required).
vrm_list_installationsB
List all your Victron energy installations/sites (solar systems, batteries, etc.).
Inputs: idUser, extended.
vrm_search_user_installationsC
Search through user's installations with optional filters.
Inputs: idUser (required), query, limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 41 tools
Most tools target distinct subsystems (battery, solar charger, inverter, etc.), but a few like vrm_get_overall_stats, vrm_get_stats, vrm_get_system_overview, and vrm_get_status_widget have overlapping purposes that could cause confusion.
All tools follow a consistent vrm_verb_noun pattern (e.g., vrm_get_battery_summary, vrm_list_installations, vrm_auth_login_as_demo), making the naming predictable and clear.
With 41 tools, the server is on the heavy side for an MCP server, but the domain of energy system management justifies a larger surface. The count is borderline but still reasonable.
The tools are almost entirely read-only (get, list, search, download) with no write/control capabilities (e.g., update settings, control relays). This is a significant gap for a management server.
Maintenance
Related MCP Connectors
MCP server wrapping the Tesla Fleet API and TeslaMate API
MCP server for Withings health data — sleep, activity, heart, and body metrics.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
Related MCP Servers
- AlicenseCqualityDmaintenanceAn MCP server that enables natural language interaction with the MeteoControl VCOM API v2 for monitoring solar array installations. It allows users to retrieve real-time and historical energy data, system alerts, and detailed asset configuration metrics.4Apache 2.0
- AlicenseAqualityCmaintenanceA lean Model Context Protocol (MCP) server that gives AI assistants like Claude structured access to a SolarEdge PV installation via the official SolarEdge Monitoring API.4MIT
- AlicenseAqualityBmaintenanceMCP server that connects to Felicity Solar cloud battery data, allowing natural language queries about battery status, cell voltages, and charge state.1754 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that monitors a Nerdaxe Gamma solo miner over its local REST API, providing tools for miner status, pool and shares, hardware health, and device info.MIT