SprutHub MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SprutHub MCP Serverturn off the lights in the living room"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SprutHub MCP Server
Высокоуровневый Model Context Protocol (MCP) сервер для управления умным домом SprutHub с помощью LLM-ассистентов (Antigravity, Claude Desktop, Cursor, Cline и др.).
Ключевые особенности
⚡ Прямой локальный WebSocket: прямое подключение к хабу в локальной сети (
ws://<IP>/spruthub), нулевые задержки (< 5 мс), полная автономность без зависимости от внешнего облака.🧠 Семантический фасад вместо сырого RPC: сервер берёт на себя нормализацию данных, фильтрацию служебного мусора и разрешение сервисов, предоставляя LLM простые и надежные инструменты для работы за 1 шаг.
🛡️ Автоматическая нормализация типов: автоматическая упаковка базовых типов (
bool,int,float,str) в protobuf-подобные структуры SprutHub (boolValue,intValueи др.).💡 Умное переключение (
sprut_set_switch): вам не нужно знать точныйservice_idилиcharacteristic_idреле — сервер автоматически найдёт целевую службуSwitch/Lightbulb/Outlet.🔒 Безопасная аутентификация: работа по сессионному токену без необходимости хранить постоянный пароль от аккаунта в открытом виде.
Архитектурный подход: Семантический фасад vs Generic RPC-шлюз
При интеграции SprutHub с большими языковыми моделями возможны два подхода:
Сырой generic-прокси (Raw RPC Gateway): когда все методы контроллера транслируются в MCP «как есть», а LLM сначала ищет метод через
list_methods, затем запрашивает его схему и пытается вручную собрать сложный JSON-RPC payload.
Недостатки: на каждое действие уходит 3–4 шага диалога, сотни килобайт сырых схем забивают контекст LLM, а сложная вложенность структур SprutHub приводит к частым галлюцинациям модели.Семантический фасад (подход данного сервера): сервер агрегирует рутинную логику внутри себя. Он очищает списки устройств от сервисных метаданных (
AccessoryInformation,Identify,C_Online), распаковывает типизированные структуры и предоставляет компактные, понятные функции.
Результат: модель решает задачу пользователя за один шаг, не тратит лишние токены и работает стабильно даже на лёгких и быстрых моделях.
Предоставляемые инструменты (Tools)
Инструмент | Описание |
| Информация о контроллере (имя, модель, серийный номер, версия ПО, онлайн-статус). |
| Список комнат с ID, названиями, активными сенсорами и действиями. |
| Компактный список устройств и их текущих состояний (с опциональной фильтрацией по |
| Полная развернутая информация об аксессуаре, его службах и характеристиках. |
| Быстрое включение/выключение любого реле, выключателя, розетки или лампы ( |
| Универсальная установка любого значения характеристики (яркость, температура, режим). |
Где взять токен (локальный пароль)?
Всё настраивается за 10 секунд прямо из веб-интерфейса SprutHub:
Токен / Локальный пароль (
token):В веб-интерфейсе (
http://<IP_ХАБА>) перейдите в Настройки → Пользователи → откройте карточку вашего пользователя (Владелец).Скопируйте значение из поля «Локальный пароль» (при необходимости можно сгенерировать новый кнопкой «Сгенерировать новый пароль»).
Серийный номер (
serial— опционально):Указывать не обязательно: сервер автоматически определяет подключенный хаб и его серийный номер через API.
Если у вас несколько хабов или вы хотите зафиксировать конкретный, серийник можно посмотреть в URL браузера:
http://<IP_ХАБА>/hubs/<СЕРИЙНЫЙ_НОМЕР>/...либо в Настройки → Основные.
Конфигурация
Создайте файл config.json в корне проекта (на основе config.example.json):
{
"ws_url": "ws://192.168.1.100/spruthub",
"token": "ВАШ_ЛОКАЛЬНЫЙ_ПАРОЛЬ"
}Также параметры можно передавать через переменные окружения:
SPRUTHUB_WS_URL— WebSocket-адрес хаба (по умолчаниюws://127.0.0.1/spruthub)SPRUTHUB_TOKEN— локальный пароль (токен)SPRUTHUB_SERIAL— (опционально) серийный номер контроллера (если не указан, определяется автоматически)
Подключение к клиентам
Вариант 1. Запуск через uvx (Рекомендуется)
Если установлен менеджер пакетов uv:
{
"mcpServers": {
"spruthub": {
"command": "uvx",
"args": ["--from", ".", "spruthub-mcp"],
"env": {
"SPRUTHUB_WS_URL": "ws://192.168.1.100/spruthub",
"SPRUTHUB_TOKEN": "ВАШ_ЛОКАЛЬНЫЙ_ПАРОЛЬ"
}
}
}
}Вариант 2. Запуск через локальный Python
{
"mcpServers": {
"spruthub": {
"command": "python",
"args": ["/путь/к/папке/spruthub-mcp/server.py"],
"env": {
"SPRUTHUB_WS_URL": "ws://192.168.1.100/spruthub",
"SPRUTHUB_TOKEN": "ВАШ_ЛОКАЛЬНЫЙ_ПАРОЛЬ"
}
}
}
}Лицензия
This server cannot be deployed
Maintenance
Related MCP Connectors
- mytesla.ioOAuthio.mytesla
Control your Tesla from your AI assistant - climate, charging, access, and security.
Control a Loxone Miniserver smart home: lights, blinds, climate, scenes and energy.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.