The basic idea: you tell Claude "write a BadUSB script that opens a rickroll" and it generates the DuckyScript, validates it, saves it to your Flipper, and can execute it.
I've launched the project with 14 MCP tools across 4 modules:
1. BadUSB: generate/validate/save/diff/execute DuckyScript from natural language
2. Music: create and load FMF files to be played over the Flipper's piezo speaker ("make me the theme song to Castlevania")
3. System: device info, SD card status, connection health
4. Connection: health checks, reconnect
...the code is modular so you can create your own modules.
To me, the interesting technical bit is the WiFi support. Flipper's protobuf RPC is designed to work over USB serial. The stock WiFi dev board firmware is for debugging, not RPC.
I wrote custom ESP32-S2 firmware, a TCP <-> UART bridge that exposes the full RPC interface over your network. It includes a captive portal for WiFi config and handles Flipper's Expansion Protocol negotiation. Firmware is in the repo: /firmware/tcp_uart_bridge
Architecture:
- MCP client (Claude Desktop, Cursor, etc.) <-> MCP server (Python, stdio) <-> Flipper Zero (protobuf RPC over USB or TCP)
- Transport-agnostic: same protobuf either way
- Modular: easy to add new Flipper capabilities
This is (I believe) the first MCP server for Flipper Zero. There are MCP servers for ESP32s and Arduinos, but those control the microcontroller itself. This controls the Flipper as a tool.
I look forward to feedback, especially from any other Flipper users who get it running over Wifi!