mcp-server-zwave-js-ui
This server provides read-only introspection of a Z-Wave network through Z-Wave JS UI, allowing you to monitor and inspect your Z-Wave mesh, controller, and connected devices.
Get controller/network summary (
zwave_controller_info): Retrieve the controller's home ID, type, SDK/API/firmware versions, RF region, primary/inclusion state, and node counts — useful for a quick health snapshot of the mesh.List all Z-Wave nodes (
zwave_list_nodes): Get a one-line summary of every node on the network, including node ID, name, location, status (alive/asleep/dead), readiness, security class, manufacturer, device label, firmware version, and interview stage.Get full node details (
zwave_node_info): Retrieve comprehensive information about a specific node, including device class, supported command classes, endpoint count, security class, protocol version, last-seen time, and signal statistics.List node values (
zwave_node_values): View a specific node's current sensor/actuator readings and state values (excluding configuration parameters), along with metadata such as labels, units, types, ranges, and writeability.List node configuration parameters (
zwave_node_config): View a specific node's manufacturer-defined configuration parameters (e.g., LED behavior, report intervals, motion sensitivity) with current values, defaults, allowed ranges/states, units, and sizes. Note: setting parameters is a planned future feature.
Integrates with Z-Wave JS UI to manage a Z-Wave network, providing tools for controller info, node listing, node details, values, and configuration parameters.
Click on "Install 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., "@mcp-server-zwave-js-uilist all Z-Wave nodes"
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.
mcp-server-zwave-js-ui
An MCP server for managing a Z-Wave network
through Z-Wave JS UI. It connects to
the zwave-js-server WebSocket that Z-Wave JS UI exposes and surfaces the mesh
— controller, nodes, values, and configuration parameters — as tools an MCP
client (e.g. Claude) can call.
Status: early / read + write + lifecycle. Read-only introspection, write control (values, config parameters, node name/location, associations), and admin/lifecycle operations (re-interview, route rebuild, inclusion/exclusion, remove failed node) are available. Set
ZWAVE_JS_READ_ONLYto hide every mutating tool and expose only the read tools. Triggering an OTA firmware update is still on the roadmap.
Quickstart
In Z-Wave JS UI, make sure the Z-Wave JS Server WebSocket is enabled (Settings → Home Assistant → WS Server; default port
3000). See What it connects to.Add the server to Claude Code, pointing
ZWAVE_JS_URLat that WebSocket. No manual install needed —uvxfetches and runs the published package:claude mcp add zwave-js-ui \ --env ZWAVE_JS_URL=ws://<host>:3000 \ -- uvx mcp-server-zwave-js-uiAsk Claude about your mesh — it calls the read-only tools to answer:
"Which Z-Wave controller am I running, and how many nodes are on the network?"
"List my Z-Wave nodes and flag any that are dead or asleep."
For other MCP clients, isolated installs, and configuration details, see the sections below.
Related MCP server: openhab
What it connects to
Z-Wave JS UI runs two servers: the web UI (default port 8091) and the
Z-Wave JS Server WebSocket (default port 3000) that Home Assistant and
this MCP server talk to. Point ZWAVE_JS_URL at the WebSocket, not the UI.
Install
Requires Python 3.12+.
pip install mcp-server-zwave-js-ui
# or, isolated:
pipx install mcp-server-zwave-js-ui
# or, no install:
uvx mcp-server-zwave-js-uiConfigure
Variable | Default | Description |
|
| WebSocket URL of the Z-Wave JS Server. |
| (unset) | Set to |
Use with Claude Code
claude mcp add zwave-js-ui \
--env ZWAVE_JS_URL=ws://<host>:3000 \
-- uvx mcp-server-zwave-js-uiOr add it to an MCP client config directly:
{
"mcpServers": {
"zwave-js-ui": {
"command": "uvx",
"args": ["mcp-server-zwave-js-ui"],
"env": { "ZWAVE_JS_URL": "ws://<host>:3000" }
}
}
}Tools
Write and admin tools (everything below the read-only rows) are hidden from the
registry when ZWAVE_JS_READ_ONLY is set.
Read-only
Tool | Description |
| Controller and network summary (home id, versions, RF region, node counts). |
| One-line summary of every node (status, readiness, security, device). |
| Full detail for a node (device class, command classes, endpoints, signal). |
| A node's current values, excluding configuration parameters. |
| A node's configuration parameters with current values and metadata. |
| A node's association groups and their capabilities. |
| A node's current associations, keyed by group. |
| Whether a network-wide route rebuild (heal) is in progress. |
| Whether an OTA firmware update is in progress. |
Write control (level 2)
Tool | Description |
| Set a value by id (on/off/dim/etc.); validated against live metadata. |
| Set a manufacturer configuration parameter (optional bit mask). |
| Set a node's friendly name. |
| Set a node's location label. |
| Associate a target node into a source node's group. |
| Remove a target node from a source node's group. |
Admin / lifecycle (level 3)
Tool | Description |
| Re-run a node's interview to refresh capabilities and values. |
| Rebuild mesh routes for a single node. |
| Start/stop a network-wide route rebuild (heal). |
| Remove a controller-flagged failed node from the network. |
| Enter/leave inclusion mode to add a node. |
| Enter/leave exclusion mode to remove a node. |
Note on secure inclusion: interactive S2 security bootstrap (DSK/PIN grant) can't complete through this stateless server — use the Z-Wave JS UI for secure inclusion.
Roadmap
Trigger OTA firmware updates. Reporting update status is available (
zwave_firmware_update_status), but starting a flash streams progress events over minutes, which the per-call connection model can't observe within a single tool call; delivering it needs a persistent-connection design.
Development
git clone https://github.com/cacack/mcp-server-zwave-js-ui
cd mcp-server-zwave-js-ui
uv sync --extra dev # create .venv from the checked-in uv.lock
uv run pytest
uv run ruff check . && uv run ruff format --check .See CLAUDE.md for architecture and design notes.
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for full Home Assistant control, enabling AI agents to manage dashboards, automations, files, apps, entities, and more via REST API, WebSocket, and SSH.Last updated66135MIT
- AlicenseCqualityAmaintenanceMCP server for OpenHAB v5+ that exposes the entire REST API as tools for AI models, enabling complete control over items, things, rules, persistence, and semantic model.Last updated257MIT
- Alicense-qualityCmaintenanceAn MCP server that enables AI assistants to control Home Assistant via natural language, including device control, automation management, and system configuration.Last updatedMIT
- Alicense-qualityFmaintenanceAn MCP server that gives AI assistants real-time access to your homelab infrastructure. It enables querying node status, managing Docker containers, controlling Proxmox VMs, and inspecting OPNsense firewall state through natural conversation.Last updated2MIT
Related MCP Connectors
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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