Wemo MCP Server logo

Wemo MCP Server

by apiarya

Control, inspect, discover, rename, and configure WeMo devices locally through MCP-compatible AI clients.

Install Wemo MCP Server

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "apiarya-wemo-mcp-server": {
      "command": "uvx",
      "args": [
        "wemo-mcp-server"
      ],
      "env": {
        "WEMO_MCP_DEFAULT_SUBNET": "YOUR_VALUE_HERE",
        "WEMO_MCP_SCAN_TIMEOUT": "YOUR_VALUE_HERE",
        "WEMO_MCP_MAX_WORKERS": "YOUR_VALUE_HERE",
        "WEMO_MCP_CACHE_ENABLED": "YOUR_VALUE_HERE",
        "WEMO_MCP_CACHE_TTL": "YOUR_VALUE_HERE",
        "WEMO_MCP_LOG_LEVEL": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

uvx wemo-mcp-server

Downloading lxml (5.0MiB) Downloading cryptography (4.5MiB) Downloading pydantic-core (2.1MiB) Downloaded pydantic-core Downloaded cryptography Downloaded lxml Installed 38 packages in 14ms Traceback (most recent call last): File "/home/user/.cache/uv/archive-v0/Ux4U3gZy8SnTteSE/bin/wemo-mcp-server", line 6, in <module> from wemo_mcp_server import main File "/home/user/.cache/uv/archive-v0/Ux4U3gZy8SnTteSE/lib/python3.11/site-packages/wemo_mcp_server/__init__.py", line 5, in <module>

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 20d ago.

Overview

The apiarya/wemo-mcp-server MCP server connects AI assistants to WeMo smart home devices over the local network using pywemo. It supports discovery, status checks, on/off/toggle controls, dimmer brightness, renaming, HomeKit code retrieval, caching, resources, prompts, and interactive clarifications. It uses stdio transport and runs through uvx, making it suitable for local home automation without a cloud dependency.

Use cases

  • Discover WeMo devices on a local subnet
  • Control power and dimmer brightness with natural language
  • Check current device state
  • Rename devices and retrieve HomeKit codes
  • Inspect or clear the device cache

Key features

  • Multi-phase local network discovery
  • On/off, toggle, and brightness control
  • Device status and brightness reporting
  • Persistent device caching
  • HomeKit code retrieval and device renaming
  • MCP resources, prompts, and elicitations

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

19/19 checks healthy over the last 80d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · wemo-mcp-server (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars1Stargazers on the source repository.
Last commit4mo agoMost recent push to the default branch.
Install checkInconclusiveInstall command did not finish in our automated test.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How Wemo MCP Server works

What apiarya/wemo-mcp-server MCP server does

The apiarya/wemo-mcp-server MCP server exposes local WeMo device management to MCP-compatible AI assistants. It is designed for asking an assistant to find devices, inspect their state, change power or brightness, rename them, or retrieve HomeKit setup codes.

The server is built on pywemo and communicates with WeMo devices on the local network. Its documented feature set includes support for on/off, toggle, and brightness operations, along with device status reporting. It also provides persistent device caching, configurable retry behavior, and detailed network error messages.

How it works

The server runs as a stdio MCP process. Device discovery uses multiple phases, including UPnP/SSDP and network port probing. Scans can use parallel workers, and the discovered device cache persists across restarts with a configurable time-to-live.

MCP resources expose live state through devices:// and device://{id} URIs. Built-in prompts cover discovery, status reports, scene control, and troubleshooting. Elicitations can ask for clarification when a subnet or device name is ambiguous.

All device communication is local according to the project documentation; the server does not require a cloud service for WeMo control.

Setup and configuration

The apiarya/wemo-mcp-server MCP server requires Python 3.10 or newer and uses uvx to launch the package. Install uv, then add a stdio server entry to the chosen MCP client. The quick-start command for Claude Code is:

Terminal
claude mcp add wemo -- uvx wemo-mcp-server

The default scan range is 192.168.1.0/24. Set WEMO_MCP_DEFAULT_SUBNET when devices use another subnet, such as 192.168.86.0/24. Other documented settings control scan timeout, concurrent workers, cache behavior, cache lifetime, and log level. Configuration can be supplied through environment variables or a YAML file based on the example configuration.

After editing a client configuration, restart or reload that client as appropriate. The repository documents setup examples for Claude Desktop, Claude Code, VS Code, Cursor, Cline, Windsurf, Zed, and Continue.

Tools and capabilities

The documented MCP tools are:

  • scan_network: search the configured network for WeMo devices.
  • list_devices: list devices known to the server.
  • get_device_status: retrieve current device state and brightness information.
  • control_device: change power state, toggle a device, or set brightness.
  • rename_device: change a device's name.
  • get_homekit_code: retrieve a HomeKit setup code.
  • get_cache_info: inspect device cache information.
  • clear_cache: remove cached device data.
  • get_configuration: inspect the active server configuration.

The server also supplies device-state resources, guided prompts, and clarification elicitations in addition to tools.

Limitations and notes

Discovery depends on local network reachability and the configured subnet. If the WeMo devices are on a different subnet, update the default subnet setting before scanning. Full-subnet scans can take roughly 23–30 seconds using the documented parallel scan configuration, so discovery may not be immediate.

The repository documents stdio transport; no cloud API or remote-control service is described.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Wemo MCP Server

apiarya/wemo-mcp-server is an MCP server that connects AI assistants to WeMo smart home devices over the local network using pywemo. Its main tools discover devices, list them, read status, control power or brightness, rename devices, retrieve HomeKit codes, and manage the device cache.

Install uv, then run the server with uvx using `uvx wemo-mcp-server`. For Claude Code, use `claude mcp add wemo -- uvx wemo-mcp-server`; other clients require a stdio configuration entry with the same command and argument.

Set `WEMO_MCP_DEFAULT_SUBNET` to the subnet containing the WeMo devices. The default is `192.168.1.0/24`; configure another CIDR range in the MCP client's environment settings or through the server's YAML configuration.

Yes, apiarya/wemo-mcp-server works with Cursor through a stdio MCP configuration. Add `uvx` as the command and `wemo-mcp-server` as its argument in Cursor's MCP configuration, then restart Cursor.

Yes, it can set brightness as well as turn devices on, turn them off, or toggle them. The server also reports device state and brightness through its status functionality.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewWemo MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/apiarya-wemo-mcp-server?style=directory)](https://allmcps.com/mcp/apiarya-wemo-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/apiarya-wemo-mcp-server"><img src="https://allmcps.com/api/badge/apiarya-wemo-mcp-server?style=directory" alt="Wemo MCP Server on AllMCPs" /></a>