mcp-venus-os
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MQTT_HOST | No | MQTT broker host | |
| MQTT_PORT | No | MQTT broker port | |
| DBUS_BUS_TYPE | No | D-Bus bus type (e.g., system) | |
| MQTT_BASE_TOPIC | No | Base topic for MQTT subscriptions | |
| DBUS_SERVICE_NAME | No | D-Bus service name (e.g., com.victronenergy) | |
| SAFETY_ALLOWED_MODES | No | Comma-separated list of allowed inverter modes (default: on,off,charger_only,inverter_only,eco) | on,off,charger_only,inverter_only,eco |
| SAFETY_MAX_SOC_LIMIT | No | Maximum allowed SoC limit % (default: 100) | 100 |
| SAFETY_MIN_SOC_LIMIT | No | Minimum allowed SoC limit % (default: 10) | 10 |
| SAFETY_MAX_CHARGE_CURRENT | No | Maximum allowed charge current in Amps (default: 100) | 100 |
| SAFETY_REQUIRE_CONFIRMATION | No | Require confirmation for write operations (default: true) | true |
| SAFETY_MAX_DISCHARGE_CURRENT | No | Maximum allowed discharge current in Amps (default: 100) | 100 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_battery_socA | Get battery state of charge. instance=0 returns every discovered battery as |
| get_pv_powerA | Get PV/solar charger power data. instance=0 returns every discovered solarcharger/pvinverter as
|
| get_grid_statusA | Get grid/AC status. instance=0 returns every discovered grid meter as |
| get_inverter_statusA | Get inverter mode and state. instance=0 returns every discovered vebus unit as |
| list_devicesA | List all Victron devices visible to the server. |
| set_inverter_modeB | Set inverter mode (on, off, charger_only, inverter_only, eco). Requires confirmation for write operations. |
| set_charge_current_limitA | Set maximum charge current limit in Amps. Requires confirmation for write operations. |
| set_soc_limitB | Set battery SoC limit percentage. Requires confirmation for write operations. |
| mqtt_connectB | Connect to MQTT broker for real-time data. |
| mqtt_disconnectA | Disconnect from MQTT broker. |
| mqtt_subscribeA | Subscribe to MQTT topic pattern. Not yet implemented - returns an error. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| capabilities_resource | Live capability map: which tool groups are active on this install. |
TDQS
Scored across 11 tools
Each tool targets a distinct device metric, setting, or MQTT lifecycle action. Read, write, and connection verbs create clear boundaries, and no two tools appear to perform the same operation.
Tool names follow a consistent snake_case verb_noun pattern: get_* for reads, set_* for writes, and mqtt_* for connection controls. list_devices is the only slight deviation but remains conventional and predictable.
With 11 tools, the server is well-scoped for a Victron monitoring and control interface. The count is substantial enough to cover core operations without feeling bloated or redundant.
The main monitoring and control surface is solid, but there is no direct load/consumption tool, which is a notable gap for energy management. Additionally, mqtt_subscribe is explicitly unimplemented, creating a dead end for real-time streaming workflows.