n3 MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@n3 MCP serverSet key 1 to green with text 'Build OK'."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
n3 — Stream Dock N3 without the StreamDock app
Independent, community project. Not affiliated with or endorsed by Mirabox / Hotspot Technology.
Pure-Python control of the Mirabox Stream Dock N3 (USB 6603:1002) over HID.
No vendor binaries, no Qt app, no plugins: a CLI for humans and scripts, and an
MCP server plus Claude Code skills so an AI agent can drive the deck directly.
n3.py library + CLI
n3_mcp.py MCP server (stdio JSON-RPC) — tools n3_info, n3_set_key(s), n3_set_screen,
n3_brightness, n3_clear, n3_power, n3_wait_event, n3_events
.mcp.json registers the server for Claude Code when run from this directory
.claude/skills/n3 how to use the CLI/MCP, layout, conventions
.claude/skills/n3-menu ask the user questions through the physical keys
examples/ keymap.json (watch mode), status.json (layout),
claude_dashboard.py (live tiles: Claude/Codex quotas, active sessions, ping,
app launcher, volume/brightness knobs; `--install` runs it as a login agent)Setup
pip3 install --user hidapi pillow # package name is 'hidapi' (imports as 'hid'); Python 3.9+
osascript -e 'quit app "StreamDock"' # the app holds the device exclusively
python3 n3.py infoOptional launcher: ln -s "$PWD/n3.py" ~/bin/n3 (or anywhere on your PATH).
Global MCP registration (instead of the per-project .mcp.json):
claude mcp add n3 -- python3 "$PWD/n3_mcp.py" # run from this directoryRelated MCP server: mcp-divoom-lan
Background daemon (recommended)
Firmware V3.293N3 stops repainting after a period of silence and only recovers on a USB
replug. The StreamDock app never goes quiet (it re-uploads a key image + refresh every
second), so the daemon does the same (--keepalive 1.0), plus the 10 s CONNECT heartbeat.
n3 daemon owns the device, sends the heartbeat, reconnects on unplug/replug,
replays the last layout, and fans out key/knob events. The CLI and the MCP
server automatically talk to it over ~/.config/n3/n3d.sock when it is running
(macOS opens HID devices exclusively, so the daemon must be the single owner).
n3 daemon --install # macOS launchd agent local.n3d, starts at login, log ~/Library/Logs/n3d.log
n3 daemon --status
n3 daemon --uninstall
n3 daemon # or run it in the foreground yourselfCLI
python3 n3.py info [--json]
python3 n3.py brightness 0-100 | +10 | -10 # relative steps use the last level set
python3 n3.py key 1 [2 3 ...] --text "Build\nOK" --bg "#2e7d32" --fg white [--image icon.png] [--size 18]
python3 n3.py screen --text "CI: green" --bg navy [--image bg.png]
python3 n3.py clear [keys... | all]
python3 n3.py layout file.json | - # whole state in one call
python3 n3.py listen [--json] [--timeout S] [--count N]
python3 n3.py watch examples/keymap.json # run shell commands on key/knob events
python3 n3.py wake | sleep | refresh
python3 n3.py raw <hex> [--read S] # protocol experimentsLayout JSON:
{"brightness": 80, "clear": true,
"keys": {"1": {"text": "Build", "bg": "#1e88e5"}, "2": {"image": "/path/icon.png"}, "3": null},
"screen": {"text": "main @ 4f2a1c", "bg": "#1a237e"}}Events are JSON lines: {"type":"key","key":3,"action":"press"},
{"type":"knob","knob":3,"position":"top","action":"left"}.
Platform notes
macOS is what this was developed and tested on (Apple Silicon, macOS 26).
n3 daemon --installuses launchd.Linux should work with
hidapiand a udev rule granting access to6603:1002(e.g.SUBSYSTEM=="hidraw", ATTRS{idVendor}=="6603", ATTRS{idProduct}=="1002", MODE="0666"); runn3 daemonunder your own service manager. Untested.Windows: untested.
Only the N3 variant reporting firmware
V3.293N3_PXL...(the app calls it "MBox-N3 ") has been verified. Other Stream Dock models use different sizes and product IDs; see Mirabox's public Device SDK for their tables.
Device layout
Part | Ids | Display |
LCD keys | 1–6 | 64×64 |
Buttons | 7–9 | none |
Knobs | 1 bottom-left, 2 bottom-right, 3 top | none |
Screen | – | 320×240 |
Protocol
Recovered from Mirabox's libtransport (their public Device SDK) and verified
against firmware V3.293N3_PXL.02.010. Output reports are 1024 bytes, input
reports 512 bytes, and GET_REPORT(0) returns the firmware string. Command frames
(CRT\0\0 prefix, zero padded):
Frame | Meaning |
| brightness (byte 10) |
| clear key / all (byte 11) |
| refresh (show queued images) |
| wake / sleep |
| heartbeat, every 10 s while a client is attached |
| "software disconnected" notice |
| key image |
| screen image |
Input events: ACK\0\0OK\0\0\0 <code> <state>; codes 1–6 keys, 25/30/31
buttons 7–9, 33/34/35 knob press, 90/91 60/61 50/51 knob rotate.
The firmware sends no acknowledgement for writes.
This server cannot be deployed
Maintenance
Related MCP Connectors
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Control real Android and iOS devices with LLM agents — tap, swipe, type, automate flows.
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables programmatic control of Divoom Pixoo LED matrices to display layered pixel art, animations, and hardware-rendered scrolling text. Users can compose complex visual scenes, push images, and manage device settings like brightness and channels through an LLM.7231 npm9Apache 2.0

mcp-divoom-lanofficial
AlicenseBqualityCmaintenanceEnables AI clients to control Divoom LAN devices, including watchface management, brightness adjustment, and screen control through natural language.1841 npm4MIT- AlicenseAqualityCmaintenanceEnables AI assistants to control DualStream streaming studio: switch scenes, compose layouts, manage widgets, and react to stream events.30Apache 2.0
- AlicenseBqualityBmaintenanceEnables AI agents to control Android TV/Android devices through ADB, including screen capture, remote control, app management, and more.243 npmMIT