Wemo MCP Server

Control WeMo smart home devices - discover, toggle, adjust brightness, and manage HomeKit codes

Local serverstdioPython

What is the Wemo MCP server?

Control WeMo smart home devices - discover, toggle, adjust brightness, and manage HomeKit codes. That is what the wemo mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

The short version

Control WeMo smart home devices through AI assistants using natural language.

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.

  • 🔍 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

Getting it running

Installation goes through your MCP client rather than a global install: point it at wemo-mcp-server on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

The tools it exposes

The server publishes 8 tools. What each one is for:

  • Cursor — The Cursor tool exposed by this server
  • Cline — Cline is a VS Code extension. Add to VS Code's settings.json:
  • Windsurf — The Windsurf tool exposed by this server
  • Continue — Continue is a VS Code extension. Edit ~/.continue/config.json:
  • Resources — 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:
  • Elicitations — The server proactively asks for missing information rather than failing silently:
  • Setup — The Setup tool exposed by this server

What it needs from you

Configuration is passed through the environment: WEMO_MCP_DEFAULT_SUBNET, PYTHONPATH, WEMO_MCP_CACHE_TTL, WEMO_MCP_LOG_LEVEL, WEMO_MCP_SCAN_TIMEOUT, WEMO_MCP_MAX_WORKERS, WEMO_MCP_CACHE_ENABLED. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

All configurations use uvx (from the uv Python package manager) to run the server. Install uv first: ```bash

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Wemo's toolset — Cursor, Cline, Windsurf and 5 more — is a fair guide to whether it matches your workflow. It is maintained by apiarya; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
CursorThe Cursor tool exposed by this server.
ClineCline is a VS Code extension. Add to VS Code's settings.json:
WindsurfThe Windsurf tool exposed by this server.
ContinueContinue is a VS Code extension. Edit ~/.continue/config.json:
ResourcesClients that support MCP Resources (VS Code, MCP Inspector) can read these directly.
PromptsFour built-in guided prompts available via / slash commands in supporting clients:
ElicitationsThe server proactively asks for missing information rather than failing silently:
SetupThe Setup tool exposed by this server.

How to install the Wemo MCP server

{
  "mcpServers": {
    "wemo": {
      "command": "uvx",
      "args": ["wemo-mcp-server"],
      "env": {
        "WEMO_MCP_DEFAULT_SUBNET": "your-value",
        "PYTHONPATH": "your-value",
        "WEMO_MCP_CACHE_TTL": "your-value",
        "WEMO_MCP_LOG_LEVEL": "your-value",
        "WEMO_MCP_SCAN_TIMEOUT": "your-value",
        "WEMO_MCP_MAX_WORKERS": "your-value",
        "WEMO_MCP_CACHE_ENABLED": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

All configurations use uvx (from the uv Python package manager) to run the server. Install uv first: ```bash

VariableDescriptionRequired
WEMO_MCP_DEFAULT_SUBNETConfiguration value read at startup.Optional
PYTHONPATHFilesystem location the server is allowed to use.Optional
WEMO_MCP_CACHE_TTLConfiguration value read at startup.Optional
WEMO_MCP_LOG_LEVELConfiguration value read at startup.Optional
WEMO_MCP_SCAN_TIMEOUTConfiguration value read at startup.Optional
WEMO_MCP_MAX_WORKERSConfiguration value read at startup.Optional
WEMO_MCP_CACHE_ENABLEDConfiguration value read at startup.Optional

Example prompts to try

  • Use Wemo to Cursor.
  • Use Wemo to Cline.
  • Use Wemo to Windsurf.

Frequently asked questions

It connects Wemo to MCP-compatible AI assistants such as Claude and Cursor, exposing 8 tools (Cursor, Cline, Windsurf, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Wemo directly.