apiarya/wemo-mcp-server

apiarya/wemo-mcp-server

от apiarya
MCP сервер для управления устройствами WeMo через естественный язык. AI-ассистенты сканируют сеть, управляют питанием и яркостью, получают статус. Автоматизация умного дома без программирования.

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

License: MIT

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

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:// and device://{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
Инструменты были проиндексированы:
clear_cache

Очистить постоянный кеш устройств. Удаляет файл кеша и очищает кеш в памяти. Полезно, когда устройства изменились или кеш поврежден. После очистки запустите scan_network, чтобы перестроить кеш. Возвращает ---------- Словарь, содержащий: - success: успешно ли очищен кеш - message: описательное сообщение

Параметры

Без параметров.

control_device

Управляет устройством WeMo (включение, выключение, переключение или установка яркости). Управляет устройством, отправляя команды включения, выключения или переключения. Для устройств с регулировкой яркости также устанавливает уровень яркости (1-100). Устройство должно быть предварительно обнаружено через scan_network. Аргументы: ---- device_identifier: Имя устройства (например, "Office Light") или IP-адрес (например, "192.168.1.100") action: Выполняемое действие — должно быть одним из: "on", "off", "toggle", "brightness" brightness: Уровень яркости (1-100) — используется только для действия "brightness" или "on" для устройств с регулировкой яркости ctx: Контекст MCP, внедряемый FastMCP; используется для определения правильного устройства, когда идентификатор неоднозначен Возвращает: ------- Словарь, содержащий: - success: Булево значение, указывающее, успешно ли выполнено действие - device_name: Имя устройства - action_performed: Выполненное действие - new_state: Состояние после выполнения действия - brightness: Текущий уровень яркости (для диммеров)

Параметры
  • actionstringобязательный
  • brightnessinteger | null
  • device_identifierstringобязательный
get_cache_info

Получить информацию о постоянном кеше устройств. Возвращает информацию о файле кеша: возраст, статус истечения срока действия и количество устройств. Полезно для проверки, нужен ли повторный скан. Возвращает -------- Словарь, содержащий: - exists: Существует ли файл кеша - path: Путь к файлу кеша - age_seconds: Возраст кеша в секундах - expired: Истек ли срок кеша - device_count: Количество устройств в кеше - ttl_seconds: Время жизни записей кеша

Параметры

Без параметров.

get_configuration

Возвращает текущую конфигурацию сервера. Возвращает все настройки конфигурации, включая сетевые параметры, настройки кэша и уровни журналирования. Полезно для отладки или проверки переопределений переменных окружения. Возвращает ------- Словарь, содержащий: - configuration: все разделы конфигурации - source: информация об источниках конфигурации (переменные окружения, файл конфигурации)

Параметры

Без параметров.

get_device_status

Получить текущий статус устройства WeMo. Извлекает текущее состояние и информацию об устройстве по имени или IP-адресу. Устройство должно быть предварительно обнаружено через scan_network. Аргументы: ---- device_identifier: имя устройства (например, "Office Light") или IP-адрес (например, "192.168.1.100") Возвращает: ------- Словарь, содержащий: - device_name: имя устройства - state: текущее состояние ("on" или "off") - дополнительную информацию об устройстве

Параметры
  • device_identifierstringобязательный
get_homekit_code

Получить код настройки HomeKit для устройства WeMo. Извлекает код настройки HomeKit (HKSetupCode) для устройств, которые поддерживают интеграцию с HomeKit. Этот код можно использовать, чтобы добавить устройство в Apple Home. Устройство должно быть сначала обнаружено через scan_network. Примечание: не все устройства WeMo поддерживают HomeKit. Если устройство не поддерживает HomeKit или не имеет кода настройки, будет возвращена ошибка. Аргументы: ---- device_identifier: Имя устройства (например, "Office Light") или IP-адрес (например, "192.168.1.100") Возвращает: ------- Словарь, содержащий: - success: Булево значение — получен ли код - device_name: Имя устройства - homekit_code: Код настройки HomeKit (формат: XXX-XX-XXX) - device_ip: IP-адрес устройства

Параметры
  • device_identifierstringобязательный
list_devices

Выводит список всех обнаруженных устройств WeMo из кэша. Возвращает список устройств, найденных при предыдущих сканированиях сети. Сначала запустите scan_network, чтобы заполнить кэш устройств. Возвращает ------- Словарь, содержащий: - device_count: количество кэшированных устройств - devices: список имен устройств и IP-адресов

Параметры

Без параметров.

rename_device

Переименовать устройство WeMo (изменить его понятное имя). Изменяет понятное имя устройства WeMo. Это имя отображается в приложении WeMo и используется для идентификации устройства. Устройство должно быть предварительно обнаружено через scan_network. После переименования кеш устройства обновится с новым именем. Возможно, вы захотите снова запустить scan_network, чтобы обновить список устройств. Аргументы: ---- device_identifier: Текущее имя устройства (например, "Office Dimmer") или IP-адрес (например, "192.168.1.100") new_name: Новое понятное имя устройства (например, "Office Light") Возвращает: ------- Словарь, содержащий: - success: Логическое значение, указывающее, успешно ли прошло переименование - old_name: Предыдущее имя устройства - new_name: Новое имя устройства - device_ip: IP-адрес устройства

Параметры
  • device_identifierstringобязательный
  • new_namestringобязательный
scan_network

Сканирует сеть на устройства WeMo с помощью обнаружения pywemo. Этот инструмент сканирует указанную подсеть на предмет устройств WeMo: 1. Проверяет все IP-адреса в подсети на типичных портах WeMo (49152-49155) 2. Проверяет откликнувшиеся IP, пытаясь прочитать описания устройств 3. Использует библиотеку pywemo для точной идентификации и разбора устройств WeMo Аргументы: ---- subnet: Сетевая подсеть в нотации CIDR (по умолчанию из конфигурации или "192.168.1.0/24") timeout: Таймаут подключения в секундах при проверке портов (по умолчанию из конфигурации или 0.6) max_workers: Максимальное количество параллельных потоков для сканирования сети (по умолчанию из конфигурации или 60) ctx: Контекст MCP, внедряемый FastMCP; используется для уточнения подсети, если она не задана в конфигурации Возвращает: ------- Словарь со следующими полями: - scan_parameters: Параметры, использованные при сканировании - results: Сводка с количеством устройств - devices: Список обнаруженных устройств WeMo с полным описанием

Параметры
  • max_workersinteger | null
  • subnetstring | null
  • timeoutnumber | null
1.4.1основная
1.4.0
1.3.1
1.3.0
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
0.1.0

Выберите клиент, чтобы установить apiarya/wemo-mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "apiarya-wemo-mcp-server-5z8ep0a55r": {
      "args": [
        "wemo-mcp-server"
      ],
      "command": "uvx"
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "apiarya-wemo-mcp-server-5z8ep0a55r": {
      "args": [
        "wemo-mcp-server"
      ],
      "command": "uvx"
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "apiarya-wemo-mcp-server-5z8ep0a55r": {
      "type": "stdio",
      "args": [
        "wemo-mcp-server"
      ],
      "command": "uvx"
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"apiarya-wemo-mcp-server-5z8ep0a55r\",\"type\":\"stdio\",\"args\":[\"wemo-mcp-server\"],\"command\":\"uvx\"}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "apiarya-wemo-mcp-server-5z8ep0a55r": {
      "args": [
        "wemo-mcp-server"
      ],
      "command": "uvx"
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add apiarya-wemo-mcp-server-5z8ep0a55r -- uvx wemo-mcp-server

Либо через JSON-конфиг:

claude mcp add-json apiarya-wemo-mcp-server-5z8ep0a55r "{\"args\":[\"wemo-mcp-server\"],\"command\":\"uvx\"}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add apiarya-wemo-mcp-server-5z8ep0a55r -- uvx wemo-mcp-server

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.apiarya-wemo-mcp-server-5z8ep0a55r]
command = "uvx"
args = ["wemo-mcp-server"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите apiarya/wemo-mcp-server, а в поле команды запуска — строку ниже:
uvx wemo-mcp-server

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "apiarya-wemo-mcp-server-5z8ep0a55r": {
      "args": [
        "wemo-mcp-server"
      ],
      "command": "uvx"
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "apiarya-wemo-mcp-server-5z8ep0a55r": {
      "args": [
        "wemo-mcp-server"
      ],
      "command": "uvx",
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например apiarya-wemo-mcp-server-5z8ep0a55r.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: apiarya-wemo-mcp-server-5z8ep0a55r
    command: uvx
    args:
      - "wemo-mcp-server"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "apiarya-wemo-mcp-server-5z8ep0a55r": {
      "args": [
        "wemo-mcp-server"
      ],
      "command": "uvx"
    }
  }
}

Похожие MCP-сервера

voska/hass-mcp

voska/hass-mcp

от voska

Управляет умным домом через Home Assistant: включает свет, опрашивает датчики, ищет устройства и автоматизации. Экономно расходует токены.

Python⭐ 348
Tommertom/sonos-ts-mcp

Tommertom/sonos-ts-mcp

от tommertom

MCP сервер для управления устройствами Sonos через UPnP/SOAP. Контролируйте воспроизведение, громкость, очереди, зоны и будильники прямо из AI-ассистента. Идеально для автоматизации умного дома и н...

TypeScript⭐ 15
allenporter/mcp-server-home-assistant

allenporter/mcp-server-home-assistant

от allenporter

MCP инструмент для Home Assistant: управляй умным домом через ИИ-ассистентов. Настройка через long-lived токен и конфиг-файл. Автоматизируй сценарии, управляй устройствами и следи за событиями.

Python⭐ 68
Tommertom/plugwise-mcp

Tommertom/plugwise-mcp

от tommertom

MCP-сервер для управления умным домом Plugwise: автоматически находит хабы в сети, управляет термостатами, розетками и мониторит энергопотребление. Поддерживает несколько шлюзов одновременно и инте...

TypeScript⭐ 2
0x1abin/matter-controller-mcp

0x1abin/matter-controller-mcp

от 0x1abin

MCP-сервер для управления умным домом по протоколу Matter. Помогает находить, подключать и управлять светом, выключателями и датчиками. Поддерживает диммирование, цвет, а также чтение и запись атри...

JavaScript⭐ 8
espressif/esp-rainmaker-mcp

espressif/esp-rainmaker-mcp

от espressif

MCP-сервер для управления IoT-устройствами ESP RainMaker через ИИ-клиенты (Claude, Cursor). Позволяет получать статус узлов, менять параметры, управлять расписаниями и группами устройств, используя...

Python⭐ 18
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин