flipper-mcp-bridge
flipper-mcp-bridge
USB接続されたFlipper ZeroをMCPクライアント(Claude Code、互換ブリッジ経由のHome Assistantなど)向けのツールセットとして公開するMCPサーバー。v0ではIR(赤外線)に焦点を当てており、保存された.irファイルのリスト表示・解析、ボタンの再送、新しい信号のキャプチャが可能です。
Momentum firmware (mntm-008) でテスト済みです。同じCLI(ir tx, ir rx, storage *, loader *)を持つ最近のFlipperフォークであれば動作するはずです。
v0ツール
ツール | 用途 |
| Flipperの |
| SDカード上のディレクトリ内の |
| 保存された |
| 保存された |
| MSBファーストの整数16進数(例: |
| ファームウェアで利用可能な内蔵ユニバーサルIRリモコン(ac, tv, fansなど)をリスト表示する |
| 内蔵ユニバーサルリモコンの信号名をリスト表示する |
| 内蔵ユニバーサルリモコンから指定した信号を送信する |
| FlipperをRXモードにし、次のリモコン操作をキャプチャして |
セットアップ(Windowsホスト、WSL2)
1. Flipper USBをWSLに転送する
Windowsに usbipd-win をインストールします:
winget install usbipd次に(Windows PowerShellから):
usbipd list # find the Flipper's BUSID
usbipd bind --busid <X-Y> # one-time, admin PowerShell
usbipd attach --wsl --busid <X-Y> # each replug / rebootattach 後、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リクエストを送れる必要があります。以下の2つの簡単な構成がそのまま利用可能です:
ブリッジをHAと同じホストで実行する(Flipperを接続したPi/NUC/サーバー)。HAは
http://127.0.0.1:8765にアクセスします。これが最も簡単です。LAN上の常時稼働Linuxホストでブリッジを実行する。
--host 0.0.0.0を付けて起動します(CLIで警告が表示されます。v1では認証がないため、信頼できるLAN内でのみ実行してください)。HAはhttp://HOST:8765にアクセスします。
WSL2の注意点: WSL2はNATを使用するため、WSLのIPにはLAN上の他のホストから到達できません。WSL2内でブリッジを実行し、別のデバイス上のHAからアクセスさせるには、Windowsホスト側で netsh interface portproxy によるポート転送を行うか、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スイッチのようなエンティティにするには、同じ /ir/send-button エンドポイントを指定したRESTfulスイッチを使用してください(Flipper自体はデバイスの状態を公開しないため、状態はHA側で管理されます)。
ポートの選択
ブリッジは以下の優先順位でシリアルデバイスを選択します:
明示的な
port=引数(ライブラリ使用時のみ)FLIPPER_PORT環境変数自動検出: USBメーカーが "Flipper Devices Inc."(またはVID:PID
0483:5740)である最初に見つかったデバイスフォールバック:
/dev/ttyACM0
通常は設定不要です。複数のCDCデバイスがあり、特定のデバイスを指定したい場合は以下のようにします:
FLIPPER_PORT=/dev/ttyACM1 uv run flipper-mcp-bridgeまたは、.mcp.json サーバーエントリに env を追加してください。
Claude Codeへの登録
リポジトリのルートに .mcp.json が含まれています。このディレクトリでセッションを開始すると、Claude Codeが自動的に読み込みます(初回起動時に信頼するかどうか尋ねられます)。明示的に登録したい場合は以下のようにします:
claude mcp add flipper -- uv run --directory "$(pwd)" flipper-mcp-bridge既知の制限事項
キャプチャの遅延:
learn_ir_buttonは、Flipperが実際にリッスンを開始するまでに数秒かかります。ツールを呼び出した直後ではなく、少し間を置いてからリモコンを押してください。トランスポート: シリアル経由のCLIのみです。Protobuf RPCはまだ実装されていません。人間が操作するペースのIRには十分ですが、スループットが重要なフローについては今後見直される可能性があります。
フォアグラウンドアプリによるブロック: CLI以外のアプリ(ナイトスタンド時計のアイドル画面など)がFlipperを占有している場合、IR送信はブロックされます。ブリッジは競合時に一度
loader closeを試みますが、デバイス上で手動で終了させる必要があるアプリもあります。Raw IRキャプチャは未サポート: 未知のプロトコルの信号は、
learn_ir_buttonを介した往復がまだできません。IRのみ: 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