Skip to main content
Glama
serafinsanchez

wiz-light-mcp

README.md
# wiz-light-mcp

MCP server for controlling [WiZ](https://www.wizconnected.com/) smart lights from [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and other MCP clients.

> "Turn my light blue" / "Set focus mode" / "Discover all my lights" — right from a Claude conversation.

## Features

- **Discover** WiZ bulbs on your local network automatically
- **Power** control — on, off, toggle
- **Color** — set any RGB color
- **Temperature** — warm white (2200K) to cool daylight (6500K)
- **Scenes** — 32 built-in scenes (Ocean, Focus, Party, Sunset, and more)
- **Multi-bulb** — control individual bulbs by name or all at once
- **Zero config** — auto-discovers bulbs, no IP addresses to configure
- **Zero dependencies** — just the MCP SDK and Node.js built-in UDP

## Quick Start

### Claude Code

```bash
claude mcp add wiz-light -- npx -y wiz-light-mcp
```

Or add manually to `~/.claude.json`:

```json
{
  "mcpServers": {
    "wiz-light": {
      "command": "npx",
      "args": ["-y", "wiz-light-mcp"]
    }
  }
}
```

Then in any Claude Code conversation:

```
You: discover my lights
You: turn the bedroom light to sunset mode
You: set all lights to 50% brightness
You: what color is the office light?
```

### Other MCP Clients

Any MCP-compatible client can use this server. Run with stdio transport:

```bash
npx wiz-light-mcp
```

## Tools

| Tool | Description |
|------|-------------|
| `discover_lights` | Scan the network for WiZ bulbs |
| `list_lights` | List previously discovered bulbs |
| `turn_on` | Turn on a light (optional brightness) |
| `turn_off` | Turn off a light |
| `toggle` | Toggle a light's power state |
| `set_color` | Set RGB color |
| `set_temperature` | Set white color temperature (2200-6500K) |
| `set_scene` | Activate a built-in scene by name or ID |
| `get_status` | Get current state of a light |
| `list_scenes` | List all 32 available scenes |

## Scenes

Ocean, Romance, Sunset, Party, Fireplace, Cozy, Forest, Pastel Colors, Wake Up, Bedtime, Warm White, Daylight, Cool White, Night Light, Focus, Relax, True Colors, TV Time, Plant Growth, Spring, Summer, Fall, Deep Dive, Jungle, Mojito, Club, Christmas, Halloween, Candlelight, Golden White, Pulse, Steampunk

## Requirements

- A [WiZ](https://www.wizconnected.com/) smart bulb on the same WiFi network
- Node.js 18+
- "Allow Local Communication" enabled in the WiZ app

## How It Works

WiZ bulbs run a local UDP server on port 38899 that accepts JSON commands — no cloud, no API keys, no authentication. This MCP server sends UDP packets directly to your bulbs on the local network.

## Troubleshooting

**No bulbs found:** Make sure bulbs are powered on, on the same WiFi, and "Allow Local Communication" is enabled in the WiZ app.

**Bulb IP changed:** Run `discover_lights` again. Consider setting a static IP in your router's DHCP settings.

**Timeout errors:** The bulb may be unresponsive. Try power-cycling it.

## License

MIT

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct purposes: power (turn_on/turn_off/toggle), color, temperature, scenes, and status are all separate concerns. The only mild overlap is discover_lights (network scan) vs list_lights (registry lookup), but descriptions distinguish them well.

Naming Consistency5/5

Every tool follows a consistent snake_case verb_noun pattern (discover_lights, set_color, get_status, turn_on), with predictable verbs for each operation type.

Tool Count5/5

10 tools is well-scoped for a smart bulb controller, with each tool earning its place across discovery, listing, power, color, scenes, and status.

Completeness4/5

Coverage is strong: discovery, power on/off/toggle, color, temperature, scenes, and status. The notable gap is a set_brightness tool — brightness is readable via get_status but not writable, which is a core lighting capability.

Maintenance

ActivityInactive
ResponsivenessNo issues