Skip to main content
Glama
cacack

mcp-server-zwave-js-ui

by cacack

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ZWAVE_JS_URLNoWebSocket URL of the Z-Wave JS Server.ws://localhost:3000

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
zwave_controller_infoA

Get Z-Wave controller and network summary.

Returns the controller's home id, type, SDK/API/firmware versions, RF region, primary/inclusion state, and node counts. Use this first for a quick health snapshot of the mesh. controller_type is a {"value": int, "label": str} object (label is null for an unmapped code).

zwave_list_nodesA

List all Z-Wave nodes with a one-line summary each.

Each entry has node id, name, location, status (alive/asleep/dead/etc.), readiness, listening/routing/sleep capability, security, manufacturer, device label, firmware version, and interview stage. Use zwave_node_info for full detail on a single node.

zwave_node_infoA

Get full detail for a single Z-Wave node.

Includes device class, supported command classes, endpoint count, security class, protocol version, last-seen time, and signal statistics, on top of the summary fields. protocol_version is a {"value": int, "label": str} object (label is null for an unmapped code). Raises ValueError if the node id is unknown.

Args: node_id: The Z-Wave node id, e.g. 5

zwave_node_valuesA

List a node's current values (excluding configuration parameters).

Returns each value's id, command class, endpoint, property, current reading, and metadata (label, unit, type, range, states, writeability). Configuration parameters are reported separately by zwave_node_config. Raises ValueError if the node id is unknown.

Args: node_id: The Z-Wave node id, e.g. 5

zwave_node_configA

List a node's configuration parameters and their current values.

Returns each manufacturer-defined parameter with its current value, default, allowed range or named states, unit, size, and writeability — the device-specific tuning knobs (LED behavior, report intervals, motion sensitivity, etc.). Set a parameter with zwave_set_config_parameter. Raises ValueError if the node id is unknown.

Args: node_id: The Z-Wave node id, e.g. 5

zwave_rebuild_routes_statusA

Report whether a network-wide route rebuild (heal) is in progress.

Returns {"is_rebuilding": bool | null} from the controller state. Poll this after zwave_begin_rebuilding_routes to track a heal to completion.

zwave_firmware_update_statusA

Report whether an OTA firmware update is currently in progress.

Returns {"in_progress": bool}. (Triggering an update is not yet supported; see the project roadmap.)

zwave_set_valueA

Set a Z-Wave value and report the command outcome.

value_id is the id from zwave_node_values (e.g. "5-38-0-targetValue"). value must match the value's type (a number, bool, or string as its metadata describes). Returns the command status (SUCCESS, WORKING, FAIL, QUEUED for a sleeping node, etc.) with any message. Raises ValueError for an unknown node id; the value must exist on the node and be writeable.

Args: node_id: The Z-Wave node id, e.g. 5 value_id: The value id from zwave_node_values value: The new value to set

zwave_set_config_parameterA

Set a node's manufacturer configuration parameter.

parameter is the parameter number (the property field from zwave_node_config). bitmask is the optional partial-parameter bit mask (its property_key); omit it for whole-parameter writes. Returns the command status (ACCEPTED or QUEUED). Raises ValueError for an unknown node.

Args: node_id: The Z-Wave node id, e.g. 5 parameter: The configuration parameter number value: The new integer value bitmask: Optional partial-parameter bit mask

zwave_set_node_nameA

Set a node's friendly name.

Raises ValueError for an unknown node id.

Args: node_id: The Z-Wave node id, e.g. 5 name: The new name for the node

zwave_set_node_locationA

Set a node's location label.

Raises ValueError for an unknown node id.

Args: node_id: The Z-Wave node id, e.g. 5 location: The new location for the node

zwave_association_groupsA

List a node's association groups and their capabilities.

Returns each group id mapped to its max node count, lifeline flag, multi-channel flag, and label. Use this to find the group to pass to zwave_add_association. Raises ValueError for an unknown node id.

Args: node_id: The source Z-Wave node id, e.g. 5 endpoint: Optional endpoint index (defaults to the root device)

zwave_associationsA

List a node's current associations, keyed by group id.

Each group maps to a list of association targets ({node_id, endpoint}). Raises ValueError for an unknown node id.

Args: node_id: The source Z-Wave node id, e.g. 5 endpoint: Optional endpoint index (defaults to the root device)

zwave_add_associationA

Add an association from a source node's group to a target node.

Associations let a device control another directly (e.g. a switch driving a light). Use zwave_association_groups to pick a valid group. Raises ValueError for an unknown source node id.

Args: node_id: The source Z-Wave node id, e.g. 5 group: The association group id on the source node target_node_id: The node id to associate into the group source_endpoint: Optional source endpoint (defaults to the root device) target_endpoint: Optional target endpoint (defaults to the root device)

zwave_remove_associationB

Remove an association from a source node's group to a target node.

Raises ValueError for an unknown source node id.

Args: node_id: The source Z-Wave node id, e.g. 5 group: The association group id on the source node target_node_id: The associated node id to remove from the group source_endpoint: Optional source endpoint (defaults to the root device) target_endpoint: Optional target endpoint (defaults to the root device)

zwave_reinterview_nodeA

Re-run a node's interview to refresh its capabilities and values.

Fire-and-forget: returns once the interview is requested; the interview itself runs in the background and can take a while for battery devices. Raises ValueError for an unknown node id.

Args: node_id: The Z-Wave node id, e.g. 5

zwave_rebuild_node_routesB

Rebuild mesh network routes for a single node.

Returns {node_id, success}. Raises ValueError for an unknown node id.

Args: node_id: The Z-Wave node id, e.g. 5

zwave_begin_rebuilding_routesA

Start a network-wide route rebuild (network heal).

Returns once the rebuild is started; it proceeds in the background across the whole mesh. Use zwave_stop_rebuilding_routes to cancel.

zwave_stop_rebuilding_routesA

Stop an in-progress network-wide route rebuild.

zwave_remove_failed_nodeA

Remove a node the controller has marked failed from the network.

Only works on nodes the controller considers failed (dead/unreachable). Raises ValueError for an unknown node id.

Args: node_id: The Z-Wave node id, e.g. 5

zwave_begin_inclusionA

Put the controller into inclusion mode to add a new node.

Returns as soon as inclusion mode is entered; put the device into pairing mode to complete the add. strategy is one of "default", "s2", "s0", or "insecure". Note: interactive S2 security bootstrap (DSK/PIN grant) cannot complete through this stateless server — use the Z-Wave JS UI for secure inclusion. Use zwave_stop_inclusion to cancel.

Args: strategy: Inclusion strategy — "default", "s2", "s0", or "insecure"

zwave_stop_inclusionA

Take the controller out of inclusion mode.

zwave_begin_exclusionA

Put the controller into exclusion mode to remove a node.

Returns as soon as exclusion mode is entered; put the device into its exclusion/unpair mode to complete removal. Use zwave_stop_exclusion to cancel.

zwave_stop_exclusionA

Take the controller out of exclusion mode.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cacack/mcp-server-zwave-js-ui'

If you have feedback or need assistance with the MCP directory API, please join our Discord server