Enables users to retrieve HomeKit setup codes from compatible WeMo devices to facilitate their integration with the Apple Home ecosystem.
Provides comprehensive tools for discovering, monitoring, and controlling WeMo smart home devices, including state management for switches and brightness control for dimmers.
Click on "Install 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., "@WeMo MCP Serverturn on the office lamp"
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.
WeMo MCP Server
Control WeMo smart home devices through AI assistants using natural language.
mcp-name: io.github.apiarya/wemo
Table of Contents
Overview
Seamlessly integrate WeMo smart home devices with AI assistants through the Model Context Protocol. Built on pywemo, this server enables natural language control of your WeMo devices with intelligent multi-phase discovery.
Example Usage

Control WeMo devices through Claude Desktop with natural language - just ask in plain English!
Key Features
π Smart Discovery - Multi-phase scanning (UPnP/SSDP + network ports) with 100% reliability
β‘ Fast Scanning - Parallel probes with 60 concurrent workers (~23-30s for full subnet)
ποΈ Full Control - On/off/toggle/brightness control for all device types
βοΈ Device Management - Rename devices and extract HomeKit setup codes
π Real-time Status - Query device state and brightness
πΎ Smart Caching - Automatic device caching for instant access
π Universal - Works with any MCP client (Claude, VS Code, Cursor, etc.)
Prerequisites
All configurations use uvx (from the uv Python package manager) to run the server. Install uv first:
After installation, restart your terminal and verify:
Quick Start
Get started in seconds with Claude Code CLI:
Connect
One-Click Installation
Click your client to install instantly:
Client | Install |
Claude Desktop | |
Claude Code CLI | Run: |
VS Code | |
Cursor | |
Cline | Manual config (VS Code extension) |
Windsurf | |
Zed | |
Continue | Manual config (VS Code extension) |
Manual Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Restart Claude Desktop after saving.
VS Code
Edit ~/.vscode/mcp.json:
Reload VS Code after saving.
Cursor
Edit ~/.cursor/mcp.json:
Restart Cursor after saving.
Cline
Cline is a VS Code extension. Add to VS Code's settings.json:
Reload VS Code after saving.
Windsurf
Edit ~/.windsurf/mcp.json:
Restart Windsurf after saving.
Zed
Edit ~/.config/zed/settings.json:
Restart Zed after saving.
Continue
Continue is a VS Code extension. Edit ~/.continue/config.json:
Reload VS Code after saving.
MCP Tools
1. scan_network
Discover WeMo devices on your network using intelligent multi-phase scanning.
Example Prompts:
"Scan for WeMo devices on my network"
"Find all WeMo devices"
"Discover devices on 192.168.1.0/24"
Example Response:
2. list_devices
List all devices cached from previous scans.
Example Prompts:
"List all my WeMo devices"
"Show me all devices"
"What devices do you know about?"
Example Response:
3. get_device_status
Get current state and information for a specific device.
Example Prompts:
"Is the office light on?"
"What's the status of the bedroom lamp?"
"Check the living room switch"
"What's the brightness of office light?"
Example Response:
4. control_device
Control a WeMo device (on/off/toggle/brightness).
Example Prompts:
"Turn on the office light"
"Turn off the living room"
"Toggle the bedroom lamp"
"Set office light to 75%"
"Dim the bedroom lamp to 50%"
Example Response:
5. rename_device
Rename a WeMo device (change its friendly name).
Example Prompts:
"Rename Office Dimmer to Office Light"
"Change the name of the bedroom device to Bedroom Lamp"
"Call the living room switch 'Main Light'"
Example Response:
6. get_homekit_code
Get the HomeKit setup code for a WeMo device.
Example Prompts:
"Get the HomeKit code for Office Light"
"What's the HomeKit setup code for the bedroom lamp?"
"Show me the HomeKit code for all devices"
Example Response:
Note: Not all WeMo devices support HomeKit. If a device doesn't support HomeKit, you'll get an error message.
How It Works
Multi-Phase Discovery
The server uses a three-phase discovery process optimized for reliability:
Phase 1 - UPnP/SSDP Discovery (Primary)
Multicast discovery finds all responsive devices (~12s)
Most reliable method, finds devices that don't respond to port probes
Uses pywemo's built-in discovery mechanism
Phase 2 - Network Port Scanning (Backup)
Parallel probing of WeMo ports (49152-49155) across subnet
60 concurrent workers for fast scanning (~10s for 254 IPs)
Catches devices missed by UPnP
Phase 3 - Device Verification (Backup)
HTTP verification of active IPs via /setup.xml
Parallel verification with 60 workers
Validates and extracts device information
This approach achieves 100% device discovery reliability while maintaining fast scan times (23-30 seconds for complete networks).
Feature Comparison
MCP Server vs wemo-ops-center
Comparison of features between this MCP server and the main wemo-ops-center project:
Feature | wemo-ops-center | MCP Server | Notes |
Device Discovery | β UPnP + Port Scan | β Implemented | Multi-phase discovery with 100% reliability |
Device Control | β On/Off/Toggle | β Implemented | Includes brightness control for dimmers |
Device Status | β Real-time | β Implemented | Query by name or IP address |
Device Rename | β Friendly names | β Implemented | Updates device cache automatically |
HomeKit Codes | β Extract codes | β Implemented | For HomeKit-compatible devices |
Multi-subnet | β VLAN support | β Planned | Currently single subnet per scan |
WiFi Provisioning | β Smart setup | β Not planned | Requires PC WiFi connection changes |
Scheduling | β Time + Solar | β Not planned | Requires persistent daemon (incompatible with MCP model) |
Maintenance Tools | β Resets | β Not planned | Factory reset, clear WiFi, clear data |
Profile Management | β Save/Load | β Not planned | WiFi credential profiles for bulk setup |
User Interface | β GUI + Web | β N/A | MCP uses AI assistant interface |
Legend:
β Implemented - Feature is available
β Not planned - Feature conflicts with MCP architecture or use case
β Planned - Feature could be added in future
Why some features aren't planned for MCP:
Scheduling: Requires 24/7 background daemon polling. MCP servers are typically invoked on-demand by AI assistants, not run as persistent services.
WiFi Provisioning: Requires changing the host PC's WiFi connection to device setup networks, which is disruptive and platform-specific.
Maintenance Tools: Destructive operations (factory reset, etc.) better suited for dedicated GUI with confirmation dialogs.
Current MCP Coverage: 5 of 11 core features (45%) - focused on device discovery, monitoring, and control use cases that fit the MCP model.
Development
Setup
Running Tests
Using Development Version
In your MCP client config, use:
Contributing
Contributions welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Make your changes with tests
Run the test suite (
python tests/test_e2e.py)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
MIT License - see LICENSE file for details.
Acknowledgments
Built with Model Context Protocol SDK
Uses pywemo for WeMo device communication
Related to the wemo-ops-center project (desktop and server applications)