Govee MCP Server
by mathd
# Govee MCP Server
[](https://smithery.ai/server/@mathd/govee_mcp_server)
An MCP server for controlling Govee LED devices through the Govee API.
## Setup
### Environment Variables
Create a `.env` file in the root directory with the following variables:
```bash
GOVEE_API_KEY=your_api_key_here
GOVEE_DEVICE_ID=your_device_id_here
GOVEE_SKU=your_device_sku_here
```
To get these values:
1. Get your API key from the Govee Developer Portal
2. Use the Govee Home app to find your device ID and SKU
## Installation
### Installing via Smithery
To install Govee MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@mathd/govee_mcp_server):
```bash
npx -y @smithery/cli install @mathd/govee_mcp_server --client claude
```
### Manual Installation
```bash
# Install with pip
pip install .
# For development (includes test dependencies)
pip install -e ".[test]"
```
## Usage
### MCP Server
The MCP server provides tools for controlling Govee devices through the Model Context Protocol. It can be used with Cline or other MCP clients.
Available tools:
- `turn_on_off`: Turn the LED on or off
- `set_color`: Set the LED color using RGB values
- `set_brightness`: Set the LED brightness level
### Command Line Interface
A CLI is provided for direct control of Govee devices:
```bash
# Turn device on/off
govee-cli power on
govee-cli power off
# Set color using RGB values (0-255)
govee-cli color 255 0 0 # Red
govee-cli color 0 255 0 # Green
govee-cli color 0 0 255 # Blue
# Set brightness (0-100)
govee-cli brightness 50
```
Run `govee-cli --help` for full command documentation.
## Development
### Running Tests
To run the test suite:
```bash
# Install test dependencies
pip install -e ".[test]"
# Run all tests
pytest tests/
# Run specific test files
pytest tests/test_server.py # Server tests (mocked API calls)
pytest tests/test_cli.py # CLI tests (real API calls)
# Run tests with verbose output
pytest tests/ -v
```
Note: The CLI tests make real API calls to your Govee device and will actually control it. Make sure your device is powered and connected before running these tests.
### Project Structure
```
.
├── src/govee_mcp_server/
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ └── cli.py # Command-line interface
├── tests/
│ ├── test_server.py # Server tests (with mocked API)
│ └── test_cli.py # CLI tests (real API calls)
└── pyproject.toml # Project configuration
```
### Test Coverage
- Server tests cover:
- Environment initialization
- Govee API client methods
- Server tools and utilities
- Error handling
- CLI tests perform real-world integration testing by executing actual API calls to control your Govee device.