An MCP server for controlling Govee smart devices on a home network. It discovers devices, prefers LAN control for supported lights, and falls back to Govee's cloud API for plugs, appliances, scenes, and unreachable devices.
From the registry: LAN-first, cloud-fallback MCP server for Govee smart lights and devices.
$ git clone https://github.com/evefromwayback/govee-mcp.git && cd govee-mcp && pip install -e .https://github.com/evefromwayback/govee-mcpPlease install the `govee-mcp` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install Python 3.10 or newer** — Python 3.10+ is required to run the server.
- **Install the server from source** — Clone the repository and install it so the `govee-mcp` command is available. Run: `git clone https://github.com/evefromwayback/govee-mcp.git && cd govee-mcp && pip install -e .` (https://github.com/evefromwayback/govee-mcp)
Optional prerequisites:
- Create a Govee API key — Optional for LAN-only use, but required for cloud control, scenes, plugs, appliances, non-LAN devices, and cloud fallback. Get it in the Govee Home app: Profile > About Us > Apply for API Key.
- Enable LAN Control on devices — For LAN control, enable "LAN Control" on each supported device in the Govee Home app.
- Allow local UDP traffic — For LAN discovery/control, ensure UDP ports 4001, 4002, and 4003 can pass on your network.
Canonical MCP server config (stdio transport):
- command: `govee-mcp`
- args: []
- optional environment variables:
- `GOVEE_API_KEY`: Govee cloud API key. Required for cloud control, scenes, plugs, appliances, non-LAN devices, and cloud fallback; omit for LAN-only operation. (example: `<your-govee-api-key>`)
- `GOVEE_PREFER_LAN`: Whether to prefer LAN over cloud when both are available. (example: `<true-or-false>`)
- `GOVEE_LAN_ENABLED`: Enable the LAN transport. (example: `<true-or-false>`)
- `GOVEE_CLOUD_ENABLED`: Enable the cloud transport. If set to true in practice, a Govee API key is also needed for cloud features. (example: `<true-or-false>`)
- `GOVEE_LAN_SCAN_IPS`: Comma-separated device IPs to scan directly when multicast discovery is unreliable. (example: `<device-ip-1,device-ip-2>`)
- `GOVEE_LAN_DISCOVERY_TIMEOUT`: Seconds to wait for LAN discovery replies. (example: `<seconds>`)
- `GOVEE_REQUEST_TIMEOUT`: Cloud HTTP timeout in seconds. (example: `<seconds>`)
- `GOVEE_DEVICE_CACHE_TTL`: Seconds to cache the device list before re-discovering. (example: `<seconds>`)
- `GOVEE_CACHE_ENABLED`: Whether to cache the device list on disk. (example: `<true-or-false>`)
- `GOVEE_CACHE_PATH`: Path to the on-disk device cache file. (example: `<path-to-cache-file>`)
- `GOVEE_GROUPS_PATH`: Path to the groups file used for storing device groups. (example: `<path-to-groups-file>`)
Note: Preferred canonical config uses the installed `govee-mcp` command. The README also documents a source-run alternative using `python3 -m govee_mcp` with `PYTHONPATH` set, but the installed command is the simpler portable choice. The server can run LAN-only without `GOVEE_API_KEY`; in that mode you may want `GOVEE_CLOUD_ENABLED=false`.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.GOVEE_API_KEYrequiredCloud API key used for cloud control, non-LAN devices, and scenes.Manage UniFi Protect cameras, events, recordings, and smart detections via MCP.