Zigbee2mqtt MCP Server
by alexpfauio.github.alexpfau/zigbee2mqtt-mcpv0.7.0
Administer Zigbee2MQTT via its MQTT bridge API: network health reports, mesh topology, pairing, binding, reporting intervals and device options.
context tax
queued
security
queued
cold start
queued
freshness
Active3d ago
Install Zigbee2mqtt MCP server
Install in Claude Code
claude mcp add zigbee2mqtt -e Z2M_MQTT_URL='<z2m-mqtt-url>' -e Z2M_MQTT_PASSWORD='<z2m-mqtt-password>' -- npx -y zigbee2mqtt-mcpInstall in Cursor
{
"mcpServers": {
"zigbee2mqtt": {
"command": "npx",
"args": [
"-y",
"zigbee2mqtt-mcp"
],
"env": {
"Z2M_MQTT_URL": "<z2m-mqtt-url>",
"Z2M_MQTT_PASSWORD": "<z2m-mqtt-password>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"zigbee2mqtt": {
"command": "npx",
"args": [
"-y",
"zigbee2mqtt-mcp"
],
"env": {
"Z2M_MQTT_URL": "<z2m-mqtt-url>",
"Z2M_MQTT_PASSWORD": "<z2m-mqtt-password>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"zigbee2mqtt": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"zigbee2mqtt-mcp"
],
"env": {
"Z2M_MQTT_URL": "<z2m-mqtt-url>",
"Z2M_MQTT_PASSWORD": "<z2m-mqtt-password>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"zigbee2mqtt": {
"command": "npx",
"args": [
"-y",
"zigbee2mqtt-mcp"
],
"env": {
"Z2M_MQTT_URL": "<z2m-mqtt-url>",
"Z2M_MQTT_PASSWORD": "<z2m-mqtt-password>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| Z2M_MQTT_URL | yes | yes | MQTT broker URL used by Zigbee2MQTT, e.g. mqtt://192.168.1.10:1883. Supports mqtt://, mqtts://, ws:// and wss://. This is the broker, not the Zigbee2MQTT frontend port. |
| Z2M_MQTT_USERNAME | — | — | MQTT broker username, if the broker requires authentication. |
| Z2M_MQTT_PASSWORD | — | yes | MQTT broker password, if the broker requires authentication. |
| Z2M_BASE_TOPIC | — | — | Zigbee2MQTT base topic. Must match mqtt.base_topic in configuration.yaml. Defaults to zigbee2mqtt. |
| Z2M_WRITE_MODE | — | — | Tool exposure tier: off (read-only), safe (default; adds non-destructive writes such as pairing, options, rename and binding) or full (adds device removal, OTA flashing, Touchlink and bridge restart). |
Freshness
Active — last maintenance signal 3d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-07 · 3d ago · GitHub
Latest release
2026-08-07 · 2mo ago · GitHub · v0.7.0
Package published
no data · npm/PyPI
Registry entry updated
2026-08-07 · 2mo ago · official registry · v0.7.0
FAQ
›How do I install the Zigbee2mqtt MCP server in Claude Code?
Run: claude mcp add zigbee2mqtt -e Z2M_MQTT_URL='<z2m-mqtt-url>' -e Z2M_MQTT_PASSWORD='<z2m-mqtt-password>' -- npx -y zigbee2mqtt-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Zigbee2mqtt require an API key?
Yes. It expects Z2M_MQTT_URL, Z2M_MQTT_PASSWORD, of which 2 are secrets.
›Can I use Zigbee2mqtt as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Zigbee2mqtt in the official MCP registry?
Yes, as io.github.alexpfau/zigbee2mqtt-mcp.
Alternatives to Zigbee2mqtt
Other science & research MCP servers.