{"_id":"zigbee2mqtt-mcp","_rev":"11-8cb01dfe44c67b7453ef45b79823919c","name":"zigbee2mqtt-mcp","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"zigbee2mqtt-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.1.0","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"dca468318d57771865cf2fc93bd80599a6e4e64d","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.1.0.tgz","fileCount":8,"integrity":"sha512-2D0Z0oQJp8OsBJm+HLFkIHgBFfxYfBCKRMOWKAd0BmuujQu5wTiF8IeS8k5kIslTwCEQHmDY6vzjFIDzskD0Cg==","signatures":[{"sig":"MEQCIHOMEUewgUGcQNRLzY7v47FWAYFlnsJlWi9h0dCI+tnXAiBPoP9mwjuDvjxjFabH1WqxBjS0RUgwTktbNf7d9DG3gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73882},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"8f05511c4acec6e4fd3ad39de1451d27ff4df012","scripts":{"build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexpfau","email":"alexander.pfau@me.com"},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.1.0_1786051759504_0.4474614063124742","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"zigbee2mqtt-mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.2.0","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"0a253d34ecbe3e7f91a01513ee75d596fa7315b2","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.2.0.tgz","fileCount":8,"integrity":"sha512-RX3VtgL4KhSzpVaw6ehmTZLl0H78ru4vXFuSGw0y9ajBGiDh9qFi89/Ho/CcwB14LMX26Ix06pbdUrutypcBwQ==","signatures":[{"sig":"MEUCIHdkMxBo0lGNb9DRizHDlC+mBg6O98eB4eis350Wlv+LAiEAqoJb7K/4priCWMqQw4Rs2oIqIYGZeZbKPVUaymXJvL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75957},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"6b0503fd79f9b270437797d4af085f7e4684dd67","scripts":{"build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexpfau","email":"alexander.pfau@me.com"},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.2.0_1786088608009_0.5517864302236892","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"zigbee2mqtt-mcp","version":"0.2.1","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.2.1","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"6e684c6c268f6cdbdf81101f6a5af00bbe73d8f2","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.2.1.tgz","fileCount":8,"integrity":"sha512-w2IQ3j2xgJEFkXcy8aP5p47Retsxa8PWl9/NL8xsb5jnjC8QW544qkKsz/oATA3x9ZRlwSScMtOffW1GMJIj3A==","signatures":[{"sig":"MEUCICeOEWqa9prfjpMkR6oG2ZwKaU8jebA/rmZQeSp7iz5QAiEA2OqEUe8baw59oHxz3KZbIEJ0KbtIVtsGaVrOPJmtDmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76545},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"acaee9053340f0563920e500559715fce07677d9","scripts":{"build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.2.1_1786090253643_0.4005959784425823","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"zigbee2mqtt-mcp","version":"0.2.2","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.2.2","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"607406416faa4fc198da8d01d7cb46d4e565b1d9","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.2.2.tgz","fileCount":8,"integrity":"sha512-BSB87ktIn/5E9L5yjOzIvixu2gIhN3RydFk1EN/ZaRurJjxnQFGXMuVFAkS+n4FuhOPFh+9caTv4+KvNtgaA8w==","signatures":[{"sig":"MEYCIQDMMpLKmBRgxO79Oyq6+GfjL5Avyl/Ck71KL9AN7sjyDwIhAJDulFdsVLa8VM5ennPw6Z2n1K/0m8+/rKAd0vrjBiZO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76596},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"ba8bc3c35ca49fc48742fdcca896c39d746e6e3a","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","scripts":{"build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.2.2_1786090638206_0.26130160685670534","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"zigbee2mqtt-mcp","version":"0.2.3","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.2.3","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"5cb4c974172870f892171cce014e77963723bddf","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.2.3.tgz","fileCount":8,"integrity":"sha512-gQ1Z4XksnkDZnvix5dHm8TciKA+f6jdgZ1D2cj4on9ZUHG3cSJvHkeBS3MYTt3x3IBvj+0YdVNXohemaqI+c8A==","signatures":[{"sig":"MEQCIF/O35Dws1//iIK3IG/64u9+AhJm9N3xtzWLuw4c5/EqAiAK6LyP/oGjUbVu4pu2nHH9mUJ3ZfmJohOuHDu9CSk3yA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":77430},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"eebe083d6aefff4878941a9d22b69e92f3fd7acf","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","scripts":{"build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.2.3_1786091450501_0.27941759774511254","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"zigbee2mqtt-mcp","version":"0.3.0","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.3.0","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"f5ded0d045a648bc9da2cf183a93c408c10edf6c","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.3.0.tgz","fileCount":8,"integrity":"sha512-ALdOZHm5YlRiSFGDcoJa2xQRfXTXBrQNLKS9Vc0Znv4pnyFxmdaidu5g+mwb2SRxYH8lt6eHOZ/rjjcd9Ge6rQ==","signatures":[{"sig":"MEUCIQC3+czhByyoM3N5yB/rZgttlW12V31z43WDWttslSxFEAIgapj7xT8aQws0vSVTIlqXT4u2pOnjbnSwEdvdCkG4eOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86248},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"335da2dd9284b3f14e7e4e3f664d6ab1327d4f38","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","scripts":{"build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.3.0_1786093223243_0.037596387131716424","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"zigbee2mqtt-mcp","version":"0.3.1","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.3.1","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"4131808ce77fcfa2f25fefd164852f6c1eeb9216","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.3.1.tgz","fileCount":8,"integrity":"sha512-/4DwQtA1qcB86MeFTU1WsoYagpbQ97ImjJlyDuln6vKCu5iMMJit265n6Fd6Z4/fzn8nE+XzxHqkH8nSXx6zSg==","signatures":[{"sig":"MEQCIFYvX/HLXEBv8nrbvuX/UT77fgrOk/66xOcG0wGYyGmWAiAbUbTYCk2LQE9mCycPJ9PR+RwMMN3vDva184mG1V8ZMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86248},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"400b0009fced2e38380a057d693770d4cfb2a29b","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","scripts":{"build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.3.1_1786093338837_0.7491319364871383","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"zigbee2mqtt-mcp","version":"0.4.0","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.4.0","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"495b235acadcebaff22abd5dacf96e69688eafec","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.4.0.tgz","fileCount":10,"integrity":"sha512-/mQVdiE8Y+X3iHD6ZXeDEXDOaE2tkWAVy1sQItm6+xjs/Wno0Ic4QSgFwkINLv0iEE693FCK4MuYmedgxDALwA==","signatures":[{"sig":"MEQCIFzILzrLNd1E1If7lE8QOOood1iGx5GwjMrieqpJmjKwAiBC54Urz0HvlGpoGnwLUD7oDrkyWFrYvCofq55t4ePNqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97160},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"55dfc9930baf47e0082eff8788ca2d6838b5f857","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","scripts":{"test":"tsc -p tsconfig.test.json && cd dist-test && node --test","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.18.9"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.4.0_1786105796289_0.4346955206440579","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"zigbee2mqtt-mcp","version":"0.5.0","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.5.0","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"8253d8370a139dfd16f231c5261fba521aa8e180","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.5.0.tgz","fileCount":10,"integrity":"sha512-icP//nCvpMWUcEQxZUV97Irg6Krxyp2gh3SOe1kPRDogfUS5lMjQnC0OIvRHH1MsgmZg2jHMW741dsuAn6rDXg==","signatures":[{"sig":"MEQCIAIYyyXJ4inXYoxnAHhd+gM+j1BHB5m35IdUEfPILKFJAiBsfxNAyHhcwZeXgiozSoyWVKJY9QPIDNvkZ/vEzXlbpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97156},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"gitHead":"a8018096911a5fde4df5da53a44b0ca21f331087","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","scripts":{"test":"tsc -p tsconfig.test.json && cd dist-test && node --test","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.5.0_1786107114674_0.6152219921532165","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"zigbee2mqtt-mcp","version":"0.6.0","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"author":{"name":"Alex Pfau"},"license":"MIT","_id":"zigbee2mqtt-mcp@0.6.0","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"bin":{"zigbee2mqtt-mcp":"dist/index.js"},"dist":{"shasum":"de07491d177def241fa83b89ba81a811bbcc34ea","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.6.0.tgz","fileCount":10,"integrity":"sha512-L83irz9MYuk7vLW1AXk799QZEeftZuvoy6mCCqcaY7iJhwJuyCQs4WRHT0RqMlLPqwMJfz718HUtgjdmSAVY1Q==","signatures":[{"sig":"MEYCIQD6TeDmmb4WWiH/8dU8B+nc09rn+J76npUK8WQo7pStHQIhAIIFjbYfadI5dYBCJ+UtLyAk60CU+LYjSw/ijNddFo1a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99075},"main":"dist/index.js","type":"module","engines":{"node":">=22"},"gitHead":"7b4074021737b989b428bd91067f5b3c4e9a05af","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","scripts":{"test":"tsc -p tsconfig.test.json && cd dist-test && node --test","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"repository":{"url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"mqtt":"^5.14.1","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/zigbee2mqtt-mcp_0.6.0_1786108469393_0.15703650144505255","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"zigbee2mqtt-mcp","version":"0.7.0","mcpName":"io.github.alexpfau/zigbee2mqtt-mcp","description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"license":"MIT","author":{"name":"Alex Pfau"},"repository":{"type":"git","url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git"},"bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","type":"module","bin":{"zigbee2mqtt-mcp":"dist/index.js"},"main":"dist/index.js","engines":{"node":">=22"},"scripts":{"build":"tsc","watch":"tsc --watch","start":"node dist/index.js","test":"tsc -p tsconfig.test.json && cd dist-test && node --test","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.20.2","mqtt":"^5.14.1"},"devDependencies":{"@types/node":"^22.20.1","typescript":"^7.0.2"},"gitHead":"e697b0ae0297da9b13c045007019b8cc564911a3","_id":"zigbee2mqtt-mcp@0.7.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-ZfurxaF65ZrIQ80aD/Rlriu2r7jGHyrJYvP7M/06Z66ZO7HokUoUj59cMp6ge1BHIPCy2KMzLDTtajYmztAsMQ==","shasum":"a825d069fd8a2cc5c92972de3286611959b0e1ec","tarball":"https://registry.npmjs.org/zigbee2mqtt-mcp/-/zigbee2mqtt-mcp-0.7.0.tgz","fileCount":11,"unpackedSize":109963,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zigbee2mqtt-mcp@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCaCfjbXswkTIC3oD9T2BMbzbT3G4nddkSYeCDgJfgD0wIgc7S3xUS/6ZpnAQudeXgtwcwrQYZa2vqdlL0bMqOqWDo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c7c0846-97b2-4546-af48-1ffe3e6792b7"}},"directories":{},"maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zigbee2mqtt-mcp_0.7.0_1786112262751_0.1100707243210397"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-06T21:29:19.408Z","modified":"2026-08-07T14:17:43.225Z","0.1.0":"2026-08-06T21:29:19.628Z","0.2.0":"2026-08-07T07:43:28.142Z","0.2.1":"2026-08-07T08:10:53.787Z","0.2.2":"2026-08-07T08:17:18.355Z","0.2.3":"2026-08-07T08:30:50.649Z","0.3.0":"2026-08-07T09:00:23.393Z","0.3.1":"2026-08-07T09:02:18.971Z","0.4.0":"2026-08-07T12:29:56.431Z","0.5.0":"2026-08-07T12:51:54.819Z","0.6.0":"2026-08-07T13:14:29.516Z","0.7.0":"2026-08-07T14:17:42.924Z"},"bugs":{"url":"https://github.com/alexpfau/zigbee2mqtt-mcp/issues"},"author":{"name":"Alex Pfau"},"license":"MIT","homepage":"https://github.com/alexpfau/zigbee2mqtt-mcp#readme","keywords":["mcp","model-context-protocol","zigbee2mqtt","zigbee","mqtt","smart-home","home-automation","iot"],"repository":{"type":"git","url":"git+https://github.com/alexpfau/zigbee2mqtt-mcp.git"},"description":"Model Context Protocol server for administering a Zigbee2MQTT estate: health reporting, network diagnostics, OTA updates, pairing and device management over the MQTT bridge API.","maintainers":[{"name":"alexpfau","email":"alexander.pfau@me.com"}],"readme":"# zigbee2mqtt-mcp\n\n[![CI](https://github.com/alexpfau/zigbee2mqtt-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/alexpfau/zigbee2mqtt-mcp/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/zigbee2mqtt-mcp.svg)](https://www.npmjs.com/package/zigbee2mqtt-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![zigbee2mqtt-mcp MCP server](https://glama.ai/mcp/servers/alexpfau/zigbee2mqtt-mcp/badges/score.svg)](https://glama.ai/mcp/servers/alexpfau/zigbee2mqtt-mcp)\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for **administering** a Zigbee2MQTT estate.\n\nMost Zigbee integrations already let an assistant turn a light on. This one is for the layer underneath: mesh health, weak links, devices that keep rejoining, stale batteries, firmware updates, pairing, binding, reporting intervals and device options — the things you normally open the Zigbee2MQTT frontend for.\n\nIt talks directly to the Zigbee2MQTT [MQTT bridge API](https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html), so it works regardless of whether you use Home Assistant, Node-RED, openHAB or nothing at all. Tested against Zigbee2MQTT 2.x; several tools depend on bridge endpoints that only exist there, including `bridge/health`, `device/binds/clear` and the OTA scheduling topics.\n\n## Why this exists\n\nIf you already run Home Assistant, your Zigbee devices are exposed there and an assistant can control them. What Home Assistant does *not* expose is the bridge itself: link quality, mesh topology, interview state, OTA availability, `permit_join`, device options, bindings and reporting configuration. This server fills exactly that gap.\n\n## Design\n\n- **No database.** Zigbee2MQTT publishes its bridge topics as retained messages, so a fresh subscription yields a complete picture in a few hundred milliseconds. The server keeps only the latest payload per topic in memory.\n- **No daemon.** Pure stdio. It starts and dies with the MCP session.\n- **Correlated requests.** Every `bridge/request/*` carries a `transaction` id and is matched to its `bridge/response/*`, so concurrent calls cannot cross wires.\n- **Tiered writes.** Destructive operations are gated behind a write mode *and* an explicit `confirm` argument.\n\n## Install\n\nRequires Node.js 22 or newer and network access to the MQTT broker that Zigbee2MQTT uses.\n\n```bash\nnpx zigbee2mqtt-mcp\n```\n\n### VS Code / GitHub Copilot\n\nAdd to your MCP configuration:\n\n```jsonc\n{\n  \"servers\": {\n    \"zigbee2mqtt\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"zigbee2mqtt-mcp\"],\n      \"env\": {\n        \"Z2M_MQTT_URL\": \"mqtt://192.168.1.10:1883\",\n        \"Z2M_MQTT_USERNAME\": \"mqtt\",\n        \"Z2M_MQTT_PASSWORD\": \"${input:z2mPassword}\"\n      }\n    }\n  }\n}\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"zigbee2mqtt\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"zigbee2mqtt-mcp\"],\n      \"env\": {\n        \"Z2M_MQTT_URL\": \"mqtt://192.168.1.10:1883\"\n      }\n    }\n  }\n}\n```\n\n> Point `Z2M_MQTT_URL` at your **MQTT broker**, not at the Zigbee2MQTT frontend port. If Zigbee2MQTT's `configuration.yaml` says `mqtt.server: mqtt://192.168.1.10:1883`, use that value verbatim.\n\n> Behind a corporate npm proxy? If `npm config get registry` is not `https://registry.npmjs.org/`, your proxy's upstream feed may not carry this package. Add an explicit override to the args rather than changing your global registry:\n> `\"args\": [\"-y\", \"--registry\", \"https://registry.npmjs.org/\", \"zigbee2mqtt-mcp\"]`\n\n## Configuration\n\n| Variable | Default | Purpose |\n| --- | --- | --- |\n| `Z2M_MQTT_URL` | *required* | Broker URL. `mqtt://`, `mqtts://`, `ws://`, `wss://` |\n| `Z2M_MQTT_USERNAME` / `Z2M_MQTT_PASSWORD` | – | Broker credentials |\n| `Z2M_BASE_TOPIC` | `zigbee2mqtt` | Must match `mqtt.base_topic` |\n| `Z2M_MQTT_CLIENT_ID` | `zigbee2mqtt-mcp-<pid>` | Override if your broker requires a fixed client ID |\n| `Z2M_WRITE_MODE` | `safe` | `off`, `safe` or `full` |\n| `Z2M_LOG_LEVEL` | `error` | Diagnostics on stderr |\n| `Z2M_WEAK_LINK_THRESHOLD` | `30` | Link quality below this is flagged |\n| `Z2M_LOW_BATTERY_THRESHOLD` | `20` | Battery percentage below this is flagged |\n| `Z2M_STALE_HOURS` | `24` | Hours of silence before a device is stale |\n| `Z2M_CONNECT_TIMEOUT_MS` | `10000` | Broker connect timeout |\n| `Z2M_REQUEST_TIMEOUT_MS` | `15000` | Default bridge request timeout |\n| `Z2M_MQTT_REJECT_UNAUTHORIZED` | `true` | Set `false` for self-signed TLS |\n| `Z2M_MQTT_CA` / `_CERT` / `_KEY` | – | Paths to TLS material |\n\n## Write modes\n\nTools above the active tier are not registered at all, so a model cannot reach for them.\n\n| Mode | Exposes |\n| --- | --- |\n| `off` | Read-only tools |\n| `safe` | **Default.** Read plus non-destructive writes: pairing, options, rename, configure, interview, binding, reporting, groups, state |\n| `full` | Everything, including device removal, OTA flashing, Touchlink and bridge restart |\n\nIrreversible tools (`z2m_remove_device`, `z2m_ota_update`, `z2m_touchlink`, `z2m_restart_bridge`, `z2m_set_bridge_options`) additionally require `confirm: true` on every call. Three `safe` tools reduce state rather than only adding to it, so they are annotated destructive: `z2m_rename_device`, `z2m_manage_group` and `z2m_bind`. Their reducing actions also require `confirm: true` — `z2m_manage_group` (`remove`, `remove_all_members`) and `z2m_bind` (`clear`). `z2m_rename_device` is annotated destructive because it breaks anything referencing the old name, but stays unconfirmed since renaming back restores it.\n\nEvery tool also advertises MCP [tool annotations](https://modelcontextprotocol.io/specification/server/tools) so a client can decide what may run without prompting:\n\n| Annotation | Meaning here |\n| --- | --- |\n| `readOnlyHint: true` | The nine read tools. They never change the network. |\n| `destructiveHint: true` | `z2m_remove_device`, `z2m_ota_update`, `z2m_touchlink`, `z2m_restart_bridge`, `z2m_set_bridge_options`, plus `z2m_rename_device`, `z2m_manage_group` and `z2m_bind` |\n| `idempotentHint` | True where repeating the call has no additional effect |\n| `openWorldHint: true` | Always — every tool reaches a live Zigbee network |\n\nAnnotations describe the tool, not the tier: a `safe` tool can still be destructive. The tier decides what is registered, the annotation tells the client what to ask about.\n\nOpt in to the destructive tier only when you want it:\n\n```jsonc\n\"env\": { \"Z2M_WRITE_MODE\": \"full\" }\n```\n\n## Tools\n\n### Read\n\n| Tool | Purpose |\n| --- | --- |\n| `z2m_connection_status` | Broker reachability, TLS posture and cached message counts — reports instead of throwing, even when nothing is configured yet |\n| `z2m_bridge_info` | Version, coordinator, channel, PAN ID, permit_join, restart_required, runtime stats |\n| `z2m_list_devices` | Filter and sort devices by type, availability, link quality, battery, pending update |\n| `z2m_get_device` | Exposes, settable options, endpoints, bindings, configured reportings, current state |\n| `z2m_health_report` | Whole-estate audit in one call |\n| `z2m_network_map` | Mesh topology with parent, depth, link quality, orphan detection |\n| `z2m_list_groups` | Groups, members and scenes |\n| `z2m_get_logs` | Bridge logs and lifecycle events, buffered or watched live |\n| `z2m_coordinator_check` | Routers missing from the coordinator's memory (Texas Instruments adapters only) |\n\n### Safe writes\n\n`z2m_check_updates`, `z2m_permit_join`, `z2m_set_device_options`, `z2m_rename_device`, `z2m_configure_device`, `z2m_interview_device`, `z2m_set_state`, `z2m_manage_group`, `z2m_bind`, `z2m_configure_reporting`\n\n### Full writes\n\n`z2m_remove_device`, `z2m_ota_update`, `z2m_restart_bridge`, `z2m_set_bridge_options`, `z2m_touchlink`\n\n## Data availability caveats\n\nSome fields depend on your Zigbee2MQTT configuration. The server detects what is available and tells you rather than silently returning nothing.\n\n| Field | Requires | If missing |\n| --- | --- | --- |\n| `last_seen` | `advanced.last_seen` set to e.g. `ISO_8601` (default is `disable`) | Staleness checks are skipped and a hint is returned |\n| `availability` | `availability.enabled: true` | Offline detection is skipped and a hint is returned |\n| `linkquality`, `battery`, `update` | Live device traffic — Zigbee2MQTT does not retain device state topics | Pass `collect_seconds` to listen briefly, or use `z2m_network_map` for authoritative link quality |\n| `z2m_coordinator_check` | An adapter that supports coordinator backups (TI zStack, Silicon Labs EmberZNet; not deCONZ or ZiGate) | Returns an error on unsupported adapters; `z2m_bridge_info` reports the expectation |\n\n## Security notes\n\n- The broker URL may carry credentials (`mqtt://user:pass@host`). They are redacted everywhere the URL is echoed back to a model or written to a log, and error text from the MQTT client is scrubbed before it leaves the process. Zigbee2MQTT logs its own broker URL at startup, so lines relayed by `z2m_get_logs` are scrubbed too.\n- `safe` mode can actuate anything on the mesh via `z2m_set_state`, including locks, valves and sirens. Use `off` if that matters.\n- `z2m_permit_join` opens the network to any nearby Zigbee device for the duration of the window. It is in `safe` because it is routine and reversible, but it is a security boundary.\n\n## Example prompts\n\n- \"Is my Zigbee network healthy?\"\n- \"Which devices have the weakest signal?\"\n- \"Which batteries need replacing?\"\n- \"Any firmware updates available?\"\n- \"Open the network for pairing via the kitchen router for two minutes.\"\n- \"This sensor stopped reporting temperature — fix it.\"\n- \"Bind the hallway remote to the hallway light so it works if the bridge is down.\"\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm run watch\n\n# Unit tests. No broker required; they run on every push across Node 22 and 24.\nnpm test\n\n# Manual smoke test against a real instance\nZ2M_MQTT_URL=mqtt://192.168.1.10:1883 node scripts/smoke.mjs\nZ2M_MQTT_URL=mqtt://192.168.1.10:1883 node scripts/smoke.mjs z2m_list_devices '{\"only_problems\":true}'\n\n# Sequential read-after-write test. Renames a device and creates a group, then\n# restores both, including on failure. Set Z2M_TEST_DEVICE to pick the device,\n# or ROUNDTRIP_GROUPS_ONLY=1 to skip the rename.\nZ2M_MQTT_URL=mqtt://192.168.1.10:1883 node scripts/roundtrip.mjs\n```\n\nNote that an MCP server may receive requests concurrently. When testing ordering,\nawait each response before sending the next, as `roundtrip.mjs` does — piping\nseveral requests at once will produce misleading results.\n\nThe unit tests cover health classification, capability detection, topic routing,\nwrite-mode gating and configuration parsing. They are broker-free by design, so\nanything that needs a live mesh belongs in `scripts/` instead.\n\nA passing suite only proves the tests ran, so `scripts/mutate.mjs` breaks the\nsource one change at a time and checks the suite notices each one:\n\n```bash\nnode scripts/mutate.mjs          # every mutant\nnode scripts/mutate.mjs redact   # only mutants whose name matches\n```\n\nA surviving mutant marks behaviour nothing actually tests, and exits non-zero.\nAdd a mutant alongside any fix worth keeping fixed.\n\nReleases are tag-driven: `npm version <patch|minor|major>` then\n`git push --follow-tags`. CI publishes to npm with provenance, rewrites\n`server.json`'s version from the tag and publishes to the MCP Registry, then\ncreates the GitHub release. The `version` committed in `server.json` is therefore\nnot authoritative — the tag is.\n\n## Safety\n\nThis server can remove devices from your network and flash firmware. Both are irreversible and OTA failures can brick hardware. Those tools live in the `full` tier, which is **not** enabled by default — you must opt in with `Z2M_WRITE_MODE=full`. Broker credentials are read from the environment and never logged.\n\n## Status\n\nEarly release. Developed and tested against a 50-device EmberZNet estate on Zigbee2MQTT 2.12.x. Other adapters (Texas Instruments, deCONZ/ConBee, zStack), TLS and WebSocket brokers, and large estates are unverified. Bug reports and pull requests are very welcome — please include your adapter type and Zigbee2MQTT version from `z2m_bridge_info`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}