tronbyt-mcp
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., "@tronbyt-mcp Put 'Meeting in 5' on the sign in green."
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.
tronbyt-mcp
Let your AI assistant put things on your LED sign.
If you have a Tidbyt or Tidbyt-style LED matrix display managed by a self-hosted tronbyt/server, this connects it to Claude (or any other AI tool that speaks MCP, the open standard for giving assistants access to tools). Once installed, your display becomes something you can just talk to your assistant about:
"Put BREAD'S DONE on the sign in amber." "Dim the display to 20% and turn on night mode from 10pm to 7am." "What apps are on the sign right now? Disable the stock ticker." "Show the clock app for a bit."
The assistant handles the rest — rendering text into the display's pixel format, talking to your server, managing the app rotation. Everything runs on your own machine against your own server; nothing goes through any cloud service.
How it works
tronbyt-mcp is a small MCP server that wraps tronbyt/server's documented
REST API. Your MCP client (Claude
Code, Claude Desktop, and friends) launches it locally and talks to it over stdio; it
talks to your Tronbyt server over HTTP with a device API key.
Related MCP server: vestaboard-mcp
Requirements
A display managed by a self-hosted tronbyt/server (v2.x). Any device the server manages works — it doesn't need to have started life as a Tidbyt: Tidbyt Gen1/Gen2, Tronbyt S3 and S3 Wide kits, MatrixPortal S3 (including the Waveshare variant), Waveshare S3, Pixoticker, Raspberry Pi displays, and homebrew panels typed "other". Both standard 64×32 and wide 128×64 (2x) panels are supported.
Node.js ≥ 20.9
An MCP client: Claude Code, Claude Desktop, or anything else that supports MCP stdio servers.
Installation
1. Get a device API key
In the Tronbyt web UI, open your device's settings and copy (or generate) its API key. Keys are scoped to a single device — one key, one display.
2. Add the server to your MCP client
Claude Code (one command):
claude mcp add tronbyt \
-e TRONBYT_BASE_URL=http://tronbyt.local:8000 \
-e TRONBYT_API_KEY=<your-device-key> \
-- npx -y tronbyt-mcpClaude Desktop: edit the config file —
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,
Windows: %APPDATA%\Claude\claude_desktop_config.json — and add:
{
"mcpServers": {
"tronbyt": {
"command": "npx",
"args": ["-y", "tronbyt-mcp"],
"env": {
"TRONBYT_BASE_URL": "http://tronbyt.local:8000",
"TRONBYT_API_KEY": "<your-device-key>"
}
}
}
}Then restart Claude Desktop.
Any other MCP client: configure a stdio server with command npx, args
["-y", "tronbyt-mcp"], and the two environment variables above.
From source (instead of npx):
git clone https://github.com/jonfishr/tronbyt-mcp.git
cd tronbyt-mcp
npm install && npm run buildThen use node /path/to/tronbyt-mcp/dist/index.js as the server command in your MCP
client config (same environment variables).
Multiple displays? API keys are per-device, so add one entry per display
(tronbyt-kitchen, tronbyt-office, …), each with its own key.
3. Check it works
Ask your assistant something like "List my Tronbyt devices." You should get back your
display with its brightness, night mode, and app list. (In Claude Code, /mcp also
shows the server and its tools.)
Configuration
Env var | Required | Default | Notes |
| yes | — | Your tronbyt/server, e.g. |
| yes | — | Per-device API key from the Tronbyt web UI |
| no |
| Per-request timeout |
Usage
You don't call these directly — your assistant picks the right tool from your request — but this is what it has to work with:
Tool | What it does |
| Devices visible to the key: brightness, night mode, pinned app, last seen |
| Set brightness, rotation interval, night/dim mode, pinned app |
| Reboot the display |
| Apps installed on the device, with state and config |
| Enable/disable, pin/unpin, or retime an installation |
| Remove an installation and its rendered images |
| Render a server-side app (with optional config) and show it |
| Push a base64 WebP (64×32, or 128×64 for wide displays) straight to the display |
| Render text to a display-sized WebP locally and push it |
Push tools take background: false (default) interrupts the display and shows the
push immediately; true saves it into the rotation without interrupting. When a key
sees exactly one device (the normal case), device_id never needs to be specified.
push_text
Text is rendered with the Tom Thumb
3×5 pixel font, word-wrapped and centered. Printable ASCII only; \n forces a line
break. Colors are hex (#ffcc00), default white on black.
Canvas size is detected from the device type (size: "auto"): standard displays get
64×32, wide/2x displays (tronbyt_s3_wide, raspberrypi_wide) get 128×64. On wide
displays the font is doubled by default — same 16 chars × 5 lines, twice the pixels.
Pass text_size: "small" for native-size glyphs (32 chars × 10 lines), or override
the detection entirely with size: "64x32" / "128x64".
Removal
Claude Code:
claude mcp remove tronbytClaude Desktop / other clients: delete the
"tronbyt"entry from the config file and restart the client.If you installed from source: delete the cloned directory. If you used
npx, a cached copy may linger under~/.npm/_npx; it's small and harmless, or clear it withnpm cache clean --force.On the server: anything you pushed shows up as an installation on the device — ask your assistant to delete it, or remove it in the Tronbyt web UI. Revoke the API key in the web UI if you're done with it. Nothing else is stored anywhere.
Development
npm install
npm test # vitest: unit + in-process MCP + stdio e2e (builds first)
npm run build # tsc -> dist/
npm run gen:font # regenerate src/font.ts from scripts/tom-thumb.bdfSmoke test against a real server (non-destructive — pushes to the rotation in background mode, then deletes the installation). Run from the repo root after a build:
TRONBYT_BASE_URL=http://tronbyt.local:8000 TRONBYT_API_KEY=<key> scripts/smoke.shOut of scope (v1)
update_firmware_settings— deliberately excluded; a bad value can leave a display unreachableAnimation (multi-frame WebP), image-by-URL
HTTP transport (stdio only)
License
MIT. The bundled pixel font is Tom Thumb / "Fixed4x6" by Brian J. Swetland and Robey
Pointer (MIT), vendored as scripts/tom-thumb.bdf. This project is not affiliated with
Tidbyt (the company) or the Tronbyt project.
Available Tools
9 toolsdelete_installationADestructive
Delete an app installation from a device, including its rendered images. This cannot be undone.
Inputs: installation_id (required), device_id.
list_devicesARead-only
List all Tronbyt devices visible to the configured API key, including brightness, night mode, pinned app, and last-seen time.
Inputs: no named parameters.
list_installationsARead-only
List app installations on a device: installation id (iname), app, enabled/pinned state, timing, and config.
Inputs: device_id.
push_appA
Render a server-side app (optionally with config) and push it to the display. Use installation_id alone to re-activate an existing installation with its saved config.
Inputs: app_id, config, device_id, background, +1 more.
push_imageA
Push a base64-encoded WebP image directly to the display (64x32; 128x64 for wide/2x devices).
Inputs: image (required), device_id, background, installation_id.
push_textA
Render text into an image sized for the display (64x32, or 128x64 for wide/2x devices) and push it. Word-wrapped and centered, printable ASCII only. At default sizing: 16 chars/line, 5 lines.
Inputs: text (required), size, color, device_id, +4 more.
reboot_deviceADestructive
Reboot a Tronbyt device. The command is sent immediately; the device reboots asynchronously.
Inputs: device_id.
update_deviceA
Update device settings: brightness, app rotation interval, night mode, dim mode, or the pinned app. Only provided fields change.
Inputs: device_id, brightness, pinned_app, interval_sec, +7 more.
update_installationA
Update an installation: enable/disable it in the rotation, pin/unpin it, or change its render interval and display time.
Inputs: installation_id (required), pinned, enabled, device_id, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool targets a distinct action: device management, installation management, or content pushing. The three push tools are clearly separated by input type (app, image, text), and there is no overlap.
All tools follow a consistent verb_noun pattern in snake_case (e.g., list_devices, push_image). The verbs are appropriate and uniform, making the set predictable.
9 tools is well-scoped for managing Tronbyt devices: 3 for device settings, 3 for installations, and 3 for pushing content. No redundant or missing tools at this scale.
Covers core workflows: device listing/update/reboot, installation CRUD (with push_app creating installations implicitly), and content push. Minor gaps: no device creation/deletion or single device retrieval, but these are acceptable given the assumed external device management.
Maintenance
Related MCP Connectors
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Shared memory for your AI tools: tasks, notes and context every tool can read and write over MCP.
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables 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.8226 npm10Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to display messages on a Vestaboard via text or board mode with color and symbol support.11-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that lets AI assistants draw pixel art on iDotMatrix LED displays over Bluetooth.1-
- FlicenseNot gradedqualityCmaintenanceMCP server for controlling LED displays via MQTT. It enables AI agents to list devices and send text, images, colors, or clear commands with authentication and permission checks.-