Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BUSY_ADDRNoBar address (default 10.0.4.20 over USB), or the WM address.10.0.4.20
BUSY_TOKENNoCloud token, used with BUSY_ADDR=https://api.busy.app.
GITHUB_TOKENNoGitHub token; otherwise `gh auth token` is used.
WM_API_TOKENNoControl token, if configured on the WM.
BUSY_LAN_ADDRNoOptional Wi-Fi or LAN address of the same Bar, used only when the main address is USB.
BUSY_HTTP_PASSWORDNoPassword if the Bar's HTTP access is locked.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
bar_textA

Show a short status on the BUSY Bar, ASCII only. Front: 72x16, ~17 characters per line. Back: 160x80, ~37 characters per line. One or two lines; a long first line scrolls. Returns an image of the result.

bar_pixelsA

grid is rows of single-character symbols, top to bottom; every symbol must be in palette (symbol → #RRGGBB, or "none" for transparent). Max 32 colours. Fits 72x16 on the front, 160x80 on the back (shown in grey there). Optionally add a caption to the right of the art. Look at the returned image and iterate if it looks wrong.

bar_progressC

Show a labelled progress bar (0..1).

bar_imageA

Show a picture: a local file path or an http(s) URL (PNG; on macOS also JPEG, GIF, HEIC, WebP), or a stock image from bar_stock. It is scaled to fit max_width x max_height (the whole screen by default), uploaded, and dithered to 16 greys on the back. Pixel art in small files stays sharp when scaled up.

bar_animationA

Play one of the Bar's stock animations (names from bar_stock, e.g. coding_72x16.anim, on_air_72x16.anim, meeting_72x16.anim). The size is in the name; 72x16 ones fill the front screen. Loops by default. Custom animations are not supported (closed format).

bar_stockB

Images, animations and sounds built into the Bar, for bar_image, bar_animation and bar_sound.

bar_soundA

Play exactly one of: a stock sound (bar_stock), an audio file path or URL (WAV; MP3/M4A/AIFF too on macOS or with ffmpeg), or a melody you write. Melody: space-separated NOTE:ms tokens, e.g. "C5:150 E5:150 G5:150 C6:400", R for a rest, chords with + ("C4+E4+G4:500"). Up to 15s.

bar_clearB

Dismiss temporary overlays and drawings from the MCP. Both screens unless display is given.

bar_screenshotB

Grab what a BUSY Bar screen shows right now, as an image.

bar_connectC

Save a direct USB, Wi-Fi or cloud address, or a busybar-wm address. For USB, optionally set a LAN fallback.

bar_statusB

Which Bar the server talks to, and its system status.

busybar_get_statusA

Read WM connection and active app, plus device, power, uptime, firmware and update status.

busybar_get_connectivityA

Read Wi-Fi, Bluetooth Low Energy, and USB or Wi-Fi transport status from the Bar.

busybar_list_appsA

List apps in the window manager manifest, including which are running and ready to show.

busybar_switch_appB

Pin a ready app by its exact name from busybar_list_apps.

busybar_show_messageC

Show a temporary WM overlay and automatically reveal the app underneath when it expires.

busybar_start_timerC

Start a countdown overlay on the Bar. The WM removes it when time runs out.

busybar_return_to_autoA

Release the current WM app pin and resume automatic display scheduling.

busybar_send_inputB

Route an OK or START tap, or an encoder step, to an app listening through the WM. Supply delta only for the encoder.

github_ciB

Latest GitHub Actions run for a repo branch (default branch if omitted). Shows it on the Bar unless show=false.

github_inboxA

Counts of PRs awaiting your review, your open PRs, and issues assigned to you. Shows them on the Bar unless show=false.

weatherB

Current weather for a city (Open-Meteo). Shows it on the Bar with an icon unless show=false.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 22 tools

Disambiguation4/5

Most tools target clearly distinct actions (show text, show pixels, play sound, screenshot, connect), so selection is generally unambiguous. However, bar_status, busybar_get_status, and busybar_get_connectivity overlap around device/connection state, and bar_clear versus the WM overlay lifecycle (show_message, start_timer, return_to_auto) leaves some uncertainty about which tool owns cleanup.

Naming Consistency3/5

Two near-identical prefixes, bar_ and busybar_, refer to the same physical device, and the GitHub/weather integrations are unprefixed, creating a mixed namespace. Within each prefix patterns differ too: bar_text/bar_pixels are noun-only while busybar_get_status/list_apps follow verb_noun, so naming is readable but not predictable.

Tool Count3/5

At 22 tools the surface is heavy for a single device-control server, sitting in the borderline 16-25 range. The display and WM operations justify most tools, but the three status readers and bundled GitHub/weather integrations inflate the count and could likely be consolidated.

Completeness4/5

Coverage is strong across display modes (text, pixels, progress, image, animation, sound, screenshot) and WM app control (list, switch, overlays, input, auto-return). Minor gaps remain: no explicit stop/cancel for a playing animation, sound, or active timer, and no brightness or volume control, though bar_clear and return_to_auto cover some cleanup.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues