P

govee_mcp_server

...
Created 1/27/2025bymathd

Language:

Python

Stars:

2

Forks:

0

Govee MCP Server

smithery badge

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:

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:

npx -y @smithery/cli install @mathd/govee_mcp_server --client claude

Manual Installation

# 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:

# 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:

# 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.

Last updated: 3/7/2025

Publisher info

mathd's avatar

Mathieu Dupuis

MoovAI
Montréal, Québec, Canada
8
followers
9
following
12
repos

More MCP servers built with Python

mcp-logo-gen

By sshtunnelvision137
ledger-mcp-server

MCP Server for my ledger

By mprokopov1
clickhouse_mcp_server

A MCP server for ClickHouse

By ThomAub1