From c22ae0dd30f6cde3eec9d25f2ea3f5d7595235da Mon Sep 17 00:00:00 2001 From: Jon Date: Sat, 2 May 2026 14:04:39 +0100 Subject: [PATCH] Added helper functions for loader apps (GUI apps) --- flipper-universal/flipper-universal-mcp.py | 104 +++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/flipper-universal/flipper-universal-mcp.py b/flipper-universal/flipper-universal-mcp.py index 24695ba..bdcb776 100644 --- a/flipper-universal/flipper-universal-mcp.py +++ b/flipper-universal/flipper-universal-mcp.py @@ -51,5 +51,109 @@ def flipper_list_commands(): """List all available Flipper commands""" return send_flipper_cmd("help") +# STORAGE +@mcp.tool() +def flipper_ls(path: str = "/ext"): + """List files: flipper_ls('/ext')""" + return send_flipper_cmd(f"storage list {path}") + +@mcp.tool() +def flipper_cat(file: str): + """Read file: flipper_cat('/ext/test.txt')""" + return send_flipper_cmd(f"storage read {file}") + +@mcp.tool() +def flipper_mkdir(folder: str): + """Create folder: flipper_mkdir('/ext/my_folder')""" + return send_flipper_cmd(f"storage mkdir {folder}") + +@mcp.tool() +def flipper_rm(file: str): + """Delete: flipper_rm('/ext/unwanted.txt')""" + return send_flipper_cmd(f"storage remove {file}") + +# APPS +@mcp.tool() +def flipper_apps_list(): + """List all Flipper apps""" + return send_flipper_cmd("loader list") + +@mcp.tool() +def flipper_app_open(app: str): + """Open app: flipper_app_open('ir')""" + return send_flipper_cmd(f"loader open {app}") + +@mcp.tool() +def flipper_app_close(): + """Close current app""" + return send_flipper_cmd("loader close") + +# APPS (loader) +@mcp.tool() +def flipper_ir(): + """Launch Infrared""" + return send_flipper_cmd("loader open ir") + +@mcp.tool() +def flipper_nfc(): + """Launch NFC""" + return send_flipper_cmd("loader open nfc") + +@mcp.tool() +def flipper_subghz(): + """Launch Sub-GHz""" + return send_flipper_cmd("loader open subghz") + +@mcp.tool() +def flipper_rfid(): + """Launch 125kHz RFID""" + return send_flipper_cmd("loader open rfid") + +@mcp.tool() +def flipper_rfid_13(): + """Launch 13.56MHz RFID""" + return send_flipper_cmd("loader open rfid_13") + +@mcp.tool() +def flipper_gpio(): + """Launch GPIO""" + return send_flipper_cmd("loader open gpio") + +@mcp.tool() +def flipper_bt(): + """Launch Bluetooth""" + return send_flipper_cmd("loader open bt") + +@mcp.tool() +def flipper_clock(): + """Launch Clock""" + return send_flipper_cmd("loader open Clock") + +@mcp.tool() +def flipper_archive(): + """Launch File Archive""" + return send_flipper_cmd("loader open Archive") + +@mcp.tool() +def flipper_settings(): + """Launch Settings""" + return send_flipper_cmd("loader open Settings") + +@mcp.tool() +def flipper_badusb(): + """Launch BadUSB""" + return send_flipper_cmd("loader open BadUSB") + +@mcp.tool() +def flipper_i2c(): + """Launch I2C""" + return send_flipper_cmd("loader open i2c") + +@mcp.tool() +def flipper_onewire(): + """Launch 1-Wire""" + return send_flipper_cmd("loader open onewire") + + if __name__ == "__main__": mcp.run(transport="stdio") \ No newline at end of file