Install
Inside a Claude Code session:
/plugin marketplace add roomi-fields/claude-plugins
/plugin install electra-one@roomi-fields
Then restart Claude Code so the MCP server registers. The dev-electra-one skill activates automatically as soon as you touch any Electra One Lua or preset file; the 20 MCP tools become available immediately.
What you get
- 20 MCP tools that wrap every common dev operation — push, inspect, REPL, pull, validate, search docs.
dev-electra-oneskill auto-loaded as soon as you touch an Electra One file. Primes Claude with the device-side gotchas and the cheat sheet of all 20 tools.- The full official docs mirrored locally (79 pages from
docs.electra.one) plus a machine-readable distillation: 180 Lua API symbols, 15 enum categories, 17 device-side gotchas, 62 SysEx commands, layout math for MK2 + Mini. - A tiles ↔ controls schema converter ported byte-identical from
app.electra.one's JS bundle — push the repo-format widget JSONs straight to hardware without round-tripping through the web editor. - Three written guides: a user-facing development walkthrough, reverse-engineering notes for the bundle ports, and a forum-references file with direct quotes from Electra staff explaining undocumented behaviour.
Why this exists
The Electra One Lua extension is powerful but its documentation is split across docs.electra.one, the forum (where most of the practical workarounds live as staff replies in support threads), and tribal knowledge. We lost hours rediscovering things like:
graphics.drawTextdoesn't exist on device — usegraphics.print(x, y, text, w, align).- The
inputsarray in the preset JSON is silently ignored fortype:"custom"tiles (firmware limit, forum #4172). Reload Preset Slot(08 08) NACKs on firmware 4.1.4 despite the docs listing it — you need a slot-flip workaround.- The widget JSONs in this repo are in a
tilesschema the device firmware doesn't parse — the web editor converts to acontrolsschema before SysEx upload.
This plugin packages those findings plus the official docs so future sessions don't repay the discovery tax. Every empirical claim ships with a source citation (forum thread, bundle offset, or hardware verification note).
Prerequisites
- Python ≥ 3.10 with the MCP SDK:
pip install -r requirements.txt - An Electra One MK2 (or Mini) connected over USB MIDI.
- OS support:
- macOS — works out of the box via CoreMIDI + mido.
- Linux native — works out of the box via ALSA + mido.
- Windows native — works via the built-in
winmm.dll(no driver install). - WSL2 — works transparently via a Python helper that runs on the Windows host. No
usbipd-winrequired.
The 20 MCP tools at a glance
| Category | Tools |
|---|---|
| Push (JSON / Lua → device) | push_to_device, upload_devices_overrides, upload_persisted_data, upload_performance, upload_lua_module, clear_preset_slot |
| Read (device state) | device_state, get_lua, get_preset, subscribe |
| REPL | execute_lua (run Lua snippets on device, capture print() output) |
| Pull (device → repo) | pull_preset (downloads + runs reverse controls→tiles converter) |
| Slot management | switch_preset_slot, get_active_slot |
| Docs & reference | search_docs, get_sysex_command, get_lua_api_symbol, get_gotchas |
| Validation | validate_preset_json, screenshot_widget |
See the Dev guide for the full iteration loop and the per-tool reference.
Documentation
- Dev guide — user-facing reference for the widget development loop, the 20 MCP tools, schema layers, and the typical iteration pattern.
- Reverse-engineering notes — how the tiles ↔ controls converter was ported from
app.electra.one's JS bundle, byte-identical, with offsets and verification notes. - Forum references — direct quotes from Electra One staff (Martin, kris) on undocumented behaviour: file transfer limits, fragmentation, slot reload, custom tile constraints.
Where it fits
Part of the roomi-fields/claude-plugins marketplace alongside:
- rtfm — the open retrieval layer for AI agents.
- notebooklm — Google NotebookLM automation with citation-backed Q&A.
- osc-bridge — MIDI / OSC bridge for 849 synthesizers and DAWs (which includes Electra One MK2 as a first-class reconfigurable controller).