
Wemo
io.github.apiarya由 GitHub 帳號 apiarya 發布v1.4.1更新於 Oct 28, 2026
Control WeMo smart home devices - discover, toggle, adjust brightness, and manage HomeKit codes
概覽
讓 AI 助理控制 Belkin WeMo 智慧家庭裝置:在區域網路中探索裝置、讀取狀態,並開關或調整亮度。
- 可以做什麼
- 探索與列出裝置:掃描本機子網路尋找 WeMo 裝置,並列出已快取的裝置
- 查看裝置:讀取開關狀態、亮度、IP 與型號,查看或清除裝置快取
- 控制裝置:對開關與調光器執行開、關、切換或設定亮度
- 管理裝置:重新命名裝置並取得其 HomeKit 配對碼
- 查看設定:顯示伺服器目前的網路、快取與日誌設定
- 適用情境
- 適合擁有 WeMo 開關、插座或調光器,並希望用自然語言控制它們的使用者,例如睡前關閉全屋裝置或確認某盞燈是否亮著。
- 執行需求
- 以 Python 套件形式透過 uvx 在本機執行,需先安裝 uv 套件管理員。執行機器需與裝置位於同一個區域網路。子網路預設為 192.168.1.0/24,通常以 WEMO_MCP_DEFAULT_SUBNET 設定;其他設定透過 WEMO_MCP_ 前綴的環境變數或 YAML 設定檔調整。不需要帳號或 API 金鑰。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Wemo,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
WeMo MCP Server
Control WeMo smart home devices through AI assistants using natural language.
mcp-name: io.github.apiarya/wemo
[CI] [codecov] [Quality Gate] [Security Rating] [PyPI version] [Python 3.10+]
[MCP Registry] [MCP] [Transport]
Table of Contents
- Overview
- Prerequisites
- Quick Start
- Connect
- Configuration
- MCP Tools
- MCP Capabilities
- How It Works
- Feature Comparison
- Development
- Contributing
- License
- Acknowledgments
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
[Turning on lights with natural language]
Control WeMo devices through AI assistants with natural language - just ask in plain English!
[Goodnight scene turns off all devices]
"Goodnight" — one command turns off every device in the house
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 - Persistent device cache with 1-hour TTL survives restarts
- 🔧 Configurable - YAML config files + environment variables for all settings
- 🔄 Auto-Retry - Automatic retry with exponential backoff for network errors
- 🛡️ Error Handling - Detailed error messages with actionable suggestions
- 🔌 Universal - Works with any MCP client (Claude, VS Code, Cursor, etc.)
- 📡 MCP Resources - Live device state via
devices://anddevice://{id}URIs - 💬 MCP Prompts - Built-in guided prompts: discover, status report, scene control, troubleshoot
- 🗣️ MCP Elicitations - Interactive clarification when subnet or device name is ambiguous
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:
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.
Configuration
The WeMo MCP Server supports flexible configuration through YAML files and environment variables.
Quick Configuration
The most important setting is your network subnet — the server defaults to 192.168.1.0/24 but your devices may be on a different subnet (e.g. 192.168.86.0/24).
Set it directly in your MCP client config using env:
Or export it before starting the server:
Using Environment Variables (simplest):
Using YAML Config File:
Configuration Options
Example Configurations
Large Network (multiple subnets):
Debug Mode:
Disable Caching:
See config.example.yaml and .env.example for complete configuration templates.
For detailed configuration guide, see CONFIGURATION.md.
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.
[HomeKit code retrieval step 1]
[HomeKit code retrieval step 2]
7. get_cache_info
Get information about the persistent device cache.
Example Prompts:
- "Show me cache information"
- "Is the device cache expired?"
- "How many devices are cached?"
Example Response:
8. clear_cache
Clear the persistent device cache to force a fresh scan.
Example Prompts:
- "Clear the device cache"
- "Reset the cache and rescan"
- "Delete cached devices"
Example Response:
Note: This clears both the persistent cache file and in-memory cache. After clearing, run scan_network to rediscover devices.
9. get_configuration
View current server configuration settings.
Example Prompts:
- "Show me the server configuration"
- "What are the current settings?"
- "Display configuration"
Example Response:
Note: Shows all configuration including defaults and environment variable overrides. Use environment variables with WEMO_MCP_ prefix to customize.
MCP Capabilities
Beyond tools, this server exposes the full suite of MCP primitives.
Resources
Subscribe to live device data without calling a tool:
Clients that support MCP Resources (VS Code, MCP Inspector) can read these directly.
Prompts
Four built-in guided prompts available via / slash commands in supporting clients:
All four prompts surfaced as /mcp.wemo.* slash commands in VS Code
Elicitations
The server proactively asks for missing information rather than failing silently:
scan_network— if no custom subnet is configured (default192.168.1.0/24), asks which subnet to scan before proceedingcontrol_device— if a device name isn't found in cache, presents closest matches and asks which device was intended
[MCP elicitation prompting for subnet]
Elicitation in action — server asks for the subnet rather than scanning the wrong network silently
Client Support Matrix
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).
Local Control Signal Flow
All device commands travel exclusively over your local network — no cloud hop required at any stage.
Voice path (Google Home + WeMo):
MCP path (AI assistant + this server):
Both paths use local protocols only after the initial voice recognition (Google Cloud handles speech-to-text; Belkin's cloud is never involved).
Feature Comparison
MCP Server vs wemo-ops-center
Comparison of features between this MCP server and the main wemo-ops-center project:
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)
來源:README.md,提交 9f6e29e
工具
0版本歷史
1- v1.4.1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分