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
  • Prerequisites
  • Quick Start
  • Connect
  • Configuration
  • MCP Tools
    • scan_network
    • list_devices
    • get_device_status
    • control_device
    • rename_device
    • get_homekit_code
    • get_cache_info
    • clear_cache
    • get_configuration
  • MCP Capabilities
    • Resources
    • Prompts
    • Elicitations
  • How It Works
    • Local Control Signal Flow
  • 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:// 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

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

voska/hass-mcp

voska/hass-mcp

MCP сервер для Home Assistant подключает Claude и другие LLM к вашему умному дому: управляйте устройствами, проверяйте датчики, запускайте автоматизации через текстовые команды.

Python340
allenporter/mcp-server-home-assistant

allenporter/mcp-server-home-assistant

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

Python68
Tommertom/sonos-ts-mcp

Tommertom/sonos-ts-mcp

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

TypeScript15
0x1abin/matter-controller-mcp

0x1abin/matter-controller-mcp

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

JavaScript8
espressif/esp-rainmaker-mcp

espressif/esp-rainmaker-mcp

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

Python18
Tommertom/plugwise-mcp

Tommertom/plugwise-mcp

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

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

Лука Никитин