MCP Wyze Server
Provides comprehensive control of Wyze smart home devices including lights, switches, plugs, scales, locks, cameras, and thermostats. Supports device discovery, status monitoring, brightness control, color temperature adjustment, group management, and health data retrieval from Wyze scales.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Wyze Server turn on the living room lights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Wyze Server
An MCP (Model Context Protocol) server for controlling Wyze smart home devices using the wyze-sdk library.
Overview
This MCP server provides a comprehensive interface for interacting with Wyze devices through AI assistants like Claude. It supports authentication, device discovery, device control, and group management for various Wyze smart home products.
Related MCP server: WeMo MCP Server
Features
Authentication: Secure login using Wyze API credentials
Device Discovery: List and get information about all Wyze devices
Device Control: Turn devices on/off, adjust brightness, and more
Group Management: Control entire rooms or groups of devices at once
Live Resources: Real-time device and group status monitoring
Automatic Login: Uses environment variables for seamless authentication
Prerequisites
Python 3.13+
Wyze developer account with API credentials
uvpackage manager
Installation
Option 1: Install from PyPI (Recommended)
uv pip install mcp-wyze-serverOr with pip:
pip install mcp-wyze-serverOption 2: Install from Source
Clone the repository:
git clone https://github.com/aldilaff/mcp-wyze-server.git
cd mcp-wyze-serverInstall with uv:
uv pip install -e .Or build and install:
uv build
uv pip install dist/*.whlConfigure Environment Variables
After installation, configure environment variables:
cp .env.example .envEdit .env and add your Wyze credentials:
WYZE_EMAIL=your-email@example.com
WYZE_PASSWORD=your-password
WYZE_KEY_ID=your-key-id-here
WYZE_API_KEY=your-api-key-hereGetting Wyze API Credentials
To obtain your Wyze API credentials:
Visit the Wyze Developer Portal
Create a developer account if you don't have one
Create a new API key
Note down your
KEY_IDandAPI_KEY
Usage
Running the Server Standalone
If installed from PyPI:
mcp-wyze-serverIf running from source:
uv run python src/mcp_wyze_server/server.pyIntegrating with Claude Desktop
Add this configuration to your Claude Desktop MCP settings:
If installed globally via pip/uv:
{
"mcpServers": {
"wyze": {
"command": "/Users/{yourusername}/.local/bin/uv",
"args": ["tool", "run", "mcp-wyze-server"],
"env": {
"WYZE_EMAIL": "your-email@example.com",
"WYZE_PASSWORD": "your-password",
"WYZE_KEY_ID": "your-key-id",
"WYZE_API_KEY": "your-api-key"
}
}
}
}Note: Replace /Users/yourusername/.local/bin/uv with the actual path to your uv installation. You can find this by running which uv in your terminal.
If running from source (recommended for development):
{
"mcpServers": {
"wyze": {
"command": "/Users/yourusername/.local/bin/uv",
"args": [
"run",
"--directory",
"/path/to/mcp-wyze-server",
"python",
"src/mcp_wyze_server/server.py"
],
"env": {
"WYZE_EMAIL": "your-email@example.com",
"WYZE_PASSWORD": "your-password",
"WYZE_KEY_ID": "your-key-id",
"WYZE_API_KEY": "your-api-key"
}
}
}
}Note: Replace /Users/yourusername/.local/bin/uv with your actual uv path.
Configuration with Other MCP Clients
This server uses stdio transport and can be integrated with any MCP client that supports the protocol.
If installed via PyPI:
mcp-wyze-serverIf running from source:
uv run python /path/to/mcp-wyze-server/src/mcp_wyze_server/server.pyAvailable MCP Tools
Authentication
wyze_login()- Login to Wyze account (uses env vars)
Device Management
wyze_get_devices()- List all deviceswyze_device_info(device_mac)- Get device detailswyze_get_device_status(device_mac)- Get accurate current status (power state, brightness, etc.)
Basic Device Control
wyze_turn_on_device(device_mac)- Turn on a devicewyze_turn_off_device(device_mac)- Turn off a devicewyze_set_brightness(device_mac, brightness)- Set brightness (0-100)
Enhanced Light Control
wyze_set_color_temp(device_mac, color_temp)- Set color temperature (2700K-6500K)wyze_set_color(device_mac, color)- Set RGB color (hex format)wyze_set_light_effect(device_mac, effect)- Set visual effectswyze_set_light_sun_match(device_mac, enabled)- Enable/disable sun matchingwyze_clear_light_timer(device_mac)- Clear scheduled timers
Scale Management
wyze_get_scales()- List all Wyze scaleswyze_get_scale_info(device_mac)- Get detailed scale informationwyze_get_scale_records(device_mac, user_id, days_back)- Get weight/body composition records
Resources
wyze://devices- Live device list with statuswyze://scales- Live scale list with family members
Prompts
wyze_device_control_prompt(device_name, action)- Generate control promptswyze_scale_health_prompt(family_member_name, timeframe)- Generate health analysis prompts
Supported Devices
This server supports various Wyze device types including:
Lights (Bulbs, Light Strips)
Switches
Plugs
Scales
Locks
Cameras (basic control)
Thermostats
And more...
Development
This project uses:
FastMCP: A high-performance MCP server framework
wyze-sdk: Comprehensive Python interface for Wyze devices
uv: Fast Python package manager
Project Structure
mcp-wyze-server/
├── src/
│ └── mcp_wyze_server/
│ ├── __init__.py
│ └── server.py # MCP server implementation
├── test_device.py # Device testing utility
├── pyproject.toml # Project dependencies
├── .env.example # Environment variables template
├── CLAUDE.md # Development guidelines for Claude
├── LICENSE # MIT License
└── README.md # This fileTroubleshooting
Common Issues
Authentication Failed: Ensure your Wyze credentials are correct and API keys are valid
Device Not Found: Device MAC addresses are case-sensitive
Connection Timeout: Check your network connection and Wyze service status
Debug Mode
Enable debug logging by setting the environment variable:
export MCP_DEBUG=trueContributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Wyze SDK for the excellent Python library
MCP for the Model Context Protocol specification
FastMCP for the MCP server framework
Disclaimer
This project is not affiliated with, endorsed by, or sponsored by Wyze Labs, Inc. All product names, logos, and brands are property of their respective owners.
Available Tools
15 toolswyze_clear_light_timerB
Clear any scheduled timers for a Wyze light
Inputs: device_mac (required). Returns: result
wyze_device_infoB
Get detailed information about a specific Wyze device by MAC address
Inputs: device_mac (required). Returns: result
wyze_get_devicesB
Get list of all Wyze devices associated with the account
Inputs: no named parameters. Returns: result
wyze_get_device_statusB
Get accurate current status for a Wyze device (power state, brightness, etc.)
Inputs: device_mac (required). Returns: result
wyze_get_scale_infoB
Get detailed information about a specific Wyze scale
Inputs: device_mac (required). Returns: result
wyze_get_scale_recordsC
Get weight measurement records from a Wyze scale
Inputs: device_mac, user_id, days_back. Returns: result
wyze_get_scalesB
Get list of all Wyze scales associated with the account
Inputs: no named parameters. Returns: result
wyze_loginB
Login to Wyze account using environment variables
Inputs: no named parameters. Returns: result
wyze_set_brightnessC
Set brightness for a Wyze light (0-100)
Inputs: device_mac (required), brightness (required). Returns: result
wyze_set_colorB
Set RGB color for a Wyze light (hex format like 'ff0000' for red)
Inputs: device_mac (required), color (required). Returns: result
wyze_set_color_tempB
Set color temperature for a Wyze light (2700K-6500K)
Inputs: device_mac (required), color_temp (required). Returns: result
wyze_set_light_effectC
Set visual effect for a Wyze light strip or compatible bulb
Inputs: device_mac (required), effect (required). Returns: result
wyze_set_light_sun_matchA
Enable or disable sun matching for a Wyze light (adjusts color temperature based on time of day)
Inputs: device_mac (required), enabled. Returns: result
wyze_turn_off_deviceB
Turn off a Wyze light device
Inputs: device_mac (required). Returns: result
wyze_turn_on_deviceC
Turn on a Wyze light device
Inputs: device_mac (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Every tool has a clearly distinct purpose with no ambiguity. Tools are well-organized by device type (lights, scales, general devices) and specific actions (info, control, settings), making it easy for an agent to select the correct one without confusion.
All tools follow a consistent 'wyze_verb_noun' pattern with snake_case throughout. The naming is predictable and readable, using clear verbs like 'get', 'set', 'turn', and 'clear' paired with specific nouns.
With 15 tools, the count is well-scoped for managing Wyze devices. It covers authentication, device listing, status checks, and comprehensive light and scale controls, with each tool earning its place without being excessive or insufficient.
The tool set provides near-complete coverage for Wyze light and scale management, including CRUD-like operations (e.g., turn on/off, set properties, get info/records). Minor gaps include lack of tools for other device types (e.g., cameras, plugs) or advanced features like schedules beyond light timers, but core workflows are well-supported.
Related MCP Connectors
Yeelight device discovery, state, control, and scene execution.
Control your Tesla from your AI assistant - climate, charging, access, and security.
Control your existing Philips lights, Sonos speakers, Roborock vacuums and other supported devices through Port OS cloud. Give ChatGPT, Claude and other MCP-compatible assistants access to the devices you connect. Turn off the living room lights, play music on your speakers, adjust the thermostat, run a vacuum in a room, check a camera snapshot or find a connected tracker. Available actions depend on your linked provider accounts and each device’s supported capabilities. Port OS runs in the cloud; no local server is required. You choose the account, device and capability permissions each assistant receives. Device operations require user OAuth; public tool discovery does not grant device access. Port OS is in alpha. Setup: https://portoperatingsystem.com/docs/getting-started/ Support: https://portoperatingsystem.com/contact/
Yeelight home metadata and guarded management workflows.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Philips Hue smart lighting systems, including individual lights, groups, scenes, brightness, and color adjustments through natural language commands.-
- AlicenseAqualityDmaintenanceEnables natural language control of WeMo smart home devices for power, brightness, and device management through AI assistants. It features a high-reliability multi-phase discovery process to scan, monitor, and configure devices across a local network.1169 PyPI1MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to control Govee smart devices, including lights, via natural language. Supports turning on/off, changing colors, adjusting brightness, and activating scenes through the Govee API or local network.91MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control Philips Hue smart lighting systems using natural language, supporting light control, group management, scenes, and presets.MIT