Tronbyt Mcp

io.github.jonfishr由 GitHub 账号 jonfishr 发布v0.1.0更新于 Oct 24, 2026

Control Tidbyt/Tronbyt LED displays: push text, images, and apps; brightness and night mode.

已验证STDIO仅桌面位置与生活媒体与设计

概览

AI 生成的概览

本地 MCP 服务器,让助手控制自建的 Tronbyt/Tidbyt LED 显示屏:推送文字、图片和应用,并调整亮度与夜间模式。

可以做什么
列出设备及其亮度、夜间模式、固定应用和最后在线时间,并修改亮度、轮播间隔、夜间/调暗模式或固定应用,或重启显示屏。列出、启用、停用、固定、调整时间或删除设备上已安装的应用。推送带可选配置的服务端应用、base64 WebP 图片,或在本地渲染成显示屏像素格式的文字。推送可立即打断当前显示,也可在后台加入轮播。
适用场景
适合拥有由自建 tronbyt/server 管理的 Tidbyt 或同类 LED 点阵屏,并希望通过与助手对话来改变显示内容、亮度或夜间模式,而不是操作网页界面的用户。
运行要求
通过 npx 以 stdio 在本地运行(需要 Node.js 20.9 或更高版本),也可从源码构建。需要一个管理该显示屏的自建 tronbyt/server v2.x,以及 TRONBYT_BASE_URL 和 TRONBYT_API_KEY 两个环境变量;密钥按设备区分,每块屏需单独配置一条服务器条目。需要 Claude Code、Claude Desktop 等 MCP 客户端。
安装前请注意
需要在 TRONBYT_API_KEY 中提供按设备区分的 API 密钥,该密钥会保存在客户端配置里,用完后应在 Tronbyt 网页界面撤销。助手可以修改显示设置、重启设备,并删除安装项及其渲染图片。推送的内容会作为安装项留在服务器上,直到被删除。所有操作都针对你自己的服务器,不经过任何云服务。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Tronbyt Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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.

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):

sh
claude mcp add tronbyt \  -e TRONBYT_BASE_URL=http://tronbyt.local:8000 \  -e TRONBYT_API_KEY=<your-device-key> \  -- npx -y tronbyt-mcp

Claude Desktop: edit the config file — macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json — and add:

json
{  "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):

sh
git clone https://github.com/jonfishr/tronbyt-mcp.gitcd tronbyt-mcpnpm install && npm run build

Then 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 varRequiredDefaultNotes
TRONBYT_BASE_URLyes—Your tronbyt/server, e.g. http://tronbyt.local:8000
TRONBYT_API_KEYyes—Per-device API key from the Tronbyt web UI
TRONBYT_TIMEOUT_MSno10000Per-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:

ToolWhat it does
list_devicesDevices visible to the key: brightness, night mode, pinned app, last seen
update_deviceSet brightness, rotation interval, night/dim mode, pinned app
reboot_deviceReboot the display
list_installationsApps installed on the device, with state and config
update_installationEnable/disable, pin/unpin, or retime an installation
delete_installationRemove an installation and its rendered images
push_appRender a server-side app (with optional config) and show it
push_imagePush a base64 WebP (64×32, or 128×64 for wide displays) straight to the display
push_textRender 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 tronbyt
  • Claude 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 with npm 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

sh
npm installnpm 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.bdf

Smoke 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:

sh
TRONBYT_BASE_URL=http://tronbyt.local:8000 TRONBYT_API_KEY=<key> scripts/smoke.sh

Out of scope (v1)

  • update_firmware_settings — deliberately excluded; a bad value can leave a display unreachable
  • Animation (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.

来源:README.md,提交 89365f0

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分