flipper-mcp-bridge
flipper-mcp-bridge
MCP-сервер, который предоставляет подключенный по USB Flipper Zero в качестве набора инструментов для MCP-клиентов (Claude Code, Home Assistant через совместимый мост и т. д.). Версия v0 сфокусирована на ИК-порте: список/анализ сохраненных файлов .ir, повтор нажатий кнопок, захват новых сигналов.
Протестировано на прошивке Momentum (mntm-008). Любой актуальный форк Flipper с тем же CLI (ir tx, ir rx, storage *, loader *) должен работать.
Инструменты v0
Инструмент | Назначение |
| Возвращает словарь |
| Список файлов |
| Анализирует сохраненный файл |
| Передает именованную кнопку из сохраненного файла |
| Передает произвольно проанализированный ИК-сигнал в виде шестнадцатеричного целого числа (старший бит первый, например |
| Список встроенных универсальных ИК-пультов, доступных в прошивке (кондиционеры, ТВ, вентиляторы и т. д.) |
| Список названий сигналов для встроенного универсального пульта |
| Передает именованный сигнал со встроенного универсального пульта |
| Переводит Flipper в режим RX, захватывает следующее нажатие пульта и добавляет его в файл |
Настройка (хост Windows, WSL2)
1. Проброс USB-устройства Flipper в WSL
Установите usbipd-win в Windows:
winget install usbipdЗатем (из PowerShell в Windows):
usbipd list # find the Flipper's BUSID
usbipd bind --busid <X-Y> # one-time, admin PowerShell
usbipd attach --wsl --busid <X-Y> # each replug / rebootПосле attach Flipper появится в WSL как /dev/ttyACM0.
2. Предоставление доступа к последовательному порту в WSL
sudo usermod -aG dialout $USERЗатем перезапустите WSL, чтобы группа вступила в силу:
wsl.exe --shutdownПереоткройте оболочку. В выводе groups теперь должна быть dialout.
3. Установка зависимостей
Из корня репозитория:
uv sync4. Дымовое тестирование
uv run python scripts/smoketest_readonly.pyВы должны увидеть информацию об устройстве, список файлов в /ext/infrared/ и содержимое каждого проанализированного файла .ir.
Запуск
MCP stdio (для Claude Code, Cursor и т. д.):
uv run flipper-mcp-bridgeHTTP REST API (для Home Assistant, curl, скриптов):
uv run flipper-mcp-bridge --http --port 8765Эндпоинты:
Метод | Путь | Тело / Запрос |
|
| — |
|
| — |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Интеграция с Home Assistant
Примечание по развертыванию: доступность из HA
HA должен иметь возможность отправлять HTTP-запросы к мосту. Два простых варианта работают «из коробки»:
Запуск моста на том же хосте, что и HA (Pi/NUC/сервер с подключенным Flipper). HA обращается к
http://127.0.0.1:8765. Самый простой способ.Запуск моста на любом постоянно включенном хосте Linux в локальной сети. Запустите его с параметром
--host 0.0.0.0(CLI выведет предупреждение — в v1 нет аутентификации, поэтому делайте это только в доверенной локальной сети). HA обращается кhttp://HOST:8765.
Оговорка по WSL2: WSL2 использует NAT — IP-адрес WSL недоступен с других хостов в локальной сети. Запуск моста внутри WSL2 с ожиданием доступа к нему из HA на другом устройстве требует проброса портов netsh interface portproxy на хосте Windows или запуска моста непосредственно на хосте Windows (Python + pyserial отлично работают в Windows).
Конфигурация
Добавьте это в configuration.yaml:
rest_command:
flipper_humidifier_toggle:
url: "http://FLIPPER_HOST:8765/ir/send-button"
method: POST
content_type: "application/json"
payload: '{"file":"/ext/infrared/Remote.ir","button":"Humid"}'
flipper_ac_off:
url: "http://FLIPPER_HOST:8765/ir/universal/send"
method: POST
content_type: "application/json"
payload: '{"remote":"ac","signal":"OFF"}'Затем в автоматизациях или скриптах:
action:
- service: rest_command.flipper_humidifier_toggleДля сущности типа переключателя используйте RESTful switch, указывающий на тот же эндпоинт /ir/send-button (состояние поддерживается HA, так как сам Flipper не предоставляет состояние устройства).
Выбор порта
Мост выбирает последовательное устройство в следующем порядке приоритета:
Явный аргумент
port=(только для использования в качестве библиотеки)Переменная окружения
FLIPPER_PORTАвтоопределение: первое подключенное устройство, производитель USB которого — "Flipper Devices Inc." (или VID:PID
0483:5740)Резервный вариант:
/dev/ttyACM0
Так что в обычном случае вам ничего не нужно настраивать. Если у вас несколько CDC-устройств и вы хотите закрепить конкретное:
FLIPPER_PORT=/dev/ttyACM1 uv run flipper-mcp-bridgeИли добавьте env в запись сервера в .mcp.json.
Регистрация в Claude Code
В корне репозитория есть файл .mcp.json — Claude Code автоматически подхватывает его при запуске сессии в этой директории (при первом запуске вас попросят подтвердить доверие). Если вы хотите зарегистрировать его явно:
claude mcp add flipper -- uv run --directory "$(pwd)" flipper-mcp-bridgeИзвестные ограничения
Задержка захвата:
learn_ir_buttonтребует несколько секунд, прежде чем Flipper начнет прослушивание. Нажимайте кнопку на пульте через мгновение после вызова инструмента, а не сразу.Транспорт: только CLI через последовательный порт. Protobuf RPC еще не подключен. Это подходит для ИК-команд с человеческой скоростью; может быть пересмотрено для потоков, чувствительных к пропускной способности.
Блокировка фоновыми приложениями: если Flipper занят приложением, не являющимся CLI (например, экран ожидания «Прикроватные часы»), передача ИК-сигнала блокируется. Мост пытается выполнить
loader closeпри конфликте, но некоторые приложения можно закрыть только вручную на устройстве.Захват «сырого» ИК-сигнала не поддерживается: сигналы неизвестных протоколов пока не будут корректно обрабатываться через
learn_ir_button.Только ИК: Sub-GHz, NFC, RFID, GPIO, BadUSB — ничего из этого не подключено.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dudebot/flipper-mcp-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server