HomeButler CLI

CLI на Go сравнивает сервер с прошлым снимком, сообщает только значимые перемены и отдает их агенту через MCP

  • 312 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Инструменты классов write и destructive управляют контейнерами, бэкапами и питанием гостей Proxmox
  • Доступ к серверам идет по SSH-ключам, а логи и конфигурации контейнеров могут содержать учетные данные
  • Команды установки разворачивают на сервере сторонние приложения
Все причины и проверки

higangssh/homebutler

Установка

Ручная установка

curl -fsSL https://raw.githubusercontent.com/Higangssh/homebutler/main/install.sh | sh

Определяет систему и архитектуру. Альтернатива: brew install Higangssh/homebutler/homebutler. Затем homebutler init, чтобы добавить серверы.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Инструменты классов write и destructive управляют контейнерами, бэкапами и питанием гостей Proxmox
  • Доступ к серверам идет по SSH-ключам, а логи и конфигурации контейнеров могут содержать учетные данные
  • Команды установки разворачивают на сервере сторонние приложения

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

HomeButler запоминает, как выглядел ваш сервер в прошлый раз, и по команде `homebutler report` говорит, что изменилось и важно ли это. Первый запуск создает точку отсчета в ~/.homebutler/reports/snapshots/, следующие сравнивают с последним снимком, а старые снимки удаляются сами (по умолчанию остается 30). Изменения делятся на восемь видов, самый полезный из них replaced: контейнер пересоздали под тем же именем, и счетчики остались прежними, но HomeButler замечает подмену. Если сравнить нечего, например Docker был выключен, он так и пишет и не объявляет, что все спокойно. Рядом идут повседневные инструменты домашнего сервера. Команда `homebutler status` показывает процессор, память и диск, `homebutler inventory scan` собирает контейнеры, порты и топологию. `homebutler doctor` ищет полный диск, открытые на все интерфейсы порты и забытые бэкапы. `homebutler watch` сохраняет логи до и после падения Docker, systemd или PM2 и определяет причину сбоя, а `homebutler backup drill` поднимает архив в изолированном контейнере и проверяет, что он запускается. Одной командой ставятся популярные приложения вроде Uptime Kuma, Jellyfin и Pi-hole. Фоновых служб и базы данных нет: на наблюдаемых машинах ничего не запущено. Несколькими серверами можно управлять по SSH. Вывод есть и в читаемом виде, и в JSON. Встроенный MCP-сервер дает агенту узкий структурированный доступ вместо оболочки с полным SSH.

Для кого. Владельцам домашних серверов и небольших стендов на Docker, Proxmox и Raspberry Pi, которым нужна сводка перемен вместо графиков.

Подходит, если

  • Нужна утренняя сводка по серверу: что пропало, что появилось и какой порт теперь отвечает другой службой
  • Хочется проверить, что бэкап действительно восстанавливается, и добавить `homebutler backup drill` в тот же cron, что и сам бэкап
  • Контейнер падает по ночам, и нужно сохранить логи до и после рестарта с разбором причины, будь то OOM или паника
  • Агенту нужен доступ к состоянию нескольких серверов только на чтение
  • Требуется быстро развернуть самохостинг-приложение вроде Uptime Kuma или Pi-hole без ручного compose-файла

Не подходит, если

  • Нужны графики загрузки в реальном времени: для них лучше Beszel или Netdata, а HomeButler отвечает на вопрос, что изменилось
  • Нужна постоянная проверка доступности с уведомлениями: этим занимается Uptime Kuma, и HomeButler может ее лишь установить
  • Нужен просмотр логов в браузере по всем контейнерам: для этого проект советует Dozzle
  • Парком из сотен серверов управляет Kubernetes: инструмент рассчитан на домашние и малые стенды

Пример запроса к агенту

Запусти `homebutler report` и расскажи, что изменилось на сервере с прошлого снимка и что стоит проверить в первую очередь

Ограничения

Сравнение работает от снимка к снимку, поэтому первый запуск отчета создает только точку отсчета. Если при снятии любого из снимков Docker был выключен, HomeButler пропускает сравнение контейнеров и помечает его как skipped.

Режим read в MCP останавливает изменения, но не чтение: инструменты docker_logs и docker_inspect могут показать учетные данные, которые кто-то напечатал в логах. Инструмент network_scan пингует все адреса локальной подсети, чтобы заполнить таблицу ARP. Отчет в режиме read всегда идет с параметром no_save.

Как отключить. Уберите запись homebutler из конфигурации MCP и перезапустите клиент. Для фонового наблюдения выполните `homebutler watch uninstall`. Бинарник удаляется через `brew uninstall homebutler` либо удалением файла, а снимки лежат в ~/.homebutler/.

Частые вопросы

Как подключить HomeButler к Claude Code?

Добавьте в .mcp.json сервер homebutler с командой npx и аргументами -y и homebutler@latest. Если бинарник уже стоит, укажите команду homebutler с аргументом mcp. Затем перезапустите клиент.

Как запретить агенту менять что-либо на сервере?

Запустите MCP с флагом `--max-risk read`. У каждого инструмента есть класс: read, write или destructive. Инструменты выше порога исчезают из списка, а прямой вызов сервер отклоняет. По умолчанию доступно все.

Что значит replaced в отчете?

Имя то же, а то, что под ним, другое. Типичный случай — `docker compose up -d`, который пересоздает контейнер: число контейнеров остается прежним, и отчет по счетчикам сказал бы, что значимых изменений нет.

Можно ли попробовать HomeButler без реальных серверов?

Да. Команда `homebutler mcp --demo` запускает MCP-сервер в демонстрационном режиме, и подключение агента можно проверить без доступа к машинам.

Нужно ли ставить что-то на наблюдаемые серверы?

Нет. На них не запускается ни агент, ни демон, ни база данных. Бинарник работает на управляющей машине и ходит к серверам по SSH, а веб-панель поднимается командой `homebutler serve` по запросу.

Обсуждение

Вопросов и отзывов пока нет.

Docker MCP

Docker MCP server

MCP-сервер для управления Docker на естественном языке: контейнеры, образы, сети и тома, в том числе на удаленном хосте по SSH

MCP-серверШирокий доступ749Звезды репозитория
Российский стек

Веб-дашборд в одном Docker-контейнере для мониторинга и управления флотом MCP-серверов 1С: статус, прогресс индексации, VRAM и лицензии

CLIРасширенный доступ

Менеджер MCP-серверов на Node.js: запускает локальные и подключает удаленные серверы и отдает их клиенту одним адресом с REST API для управления

MCP-серверШирокий доступ524Звезды репозитория

MCP-сервер для Proxmox VE: управление виртуалками, LXC, снапшотами и бэкапами из агента с контролем прав и одобрением команд

MCP-серверШирокий доступ625Звезды репозитория
Официальный

MCP-сервер для диагностики Linux: ИИ-клиент читает службы, журналы и сеть локальных и удаленных систем без права записи

MCP-серверРасширенный доступ315Звезды репозитория

BetterDB MCP

BetterDB Monitor

Официальный

MCP-сервер BetterDB: агент читает метрики, медленные команды, горячие ключи и аномалии Valkey и Redis и разбирает инциденты по сохраненной истории

MCP-серверШирокий доступ1,3 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
HomeButler (эта запись)нет312
AgentDockнетAPI-ключ1 285защищенная среда MCP для работы агента на локальных машинах, серверах и в контейнерах
Docker MCPнетне нужна749управляет контейнерами, образами и томами Docker естественным языком, без снимков и сводки изменений
SSH MCP Server (classfang) — команды на сервере по SSHнетне нужна988выполняет команды и работает с файлами по SSH, узкого набора инструментов обслуживания в нем нет

Коротко о README

Главная мысль проекта: владельцу важны только значимые перемены. Таблица объясняет каждый вид изменений в отчете, а остальные разделы описывают бэкапы с проверкой, установку приложений и работу с Proxmox.

Бейдж для README

Сообщить о проблеме

Foxx AIHomeButler
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.