Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BRAND_DRY_RUNNoLog every actuation, change nothing
BRAND_DISABLE_PLUGINNoSkip the native plugin path; race wlrctl + legacy only
BRAND_MOCK_COMPOSITORNoTalk to the in-repo mock instead of a real compositor

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": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
computerB

brand compatibility tool for Hyprland background Computer Use, including browser/Chromium control through Hyprland. Prefer app plus get_app_state/screenshot coordinates; target/x/y global coordinates are only the low-level fallback. Do not use Browser MCP when the user explicitly asks for brand. Do not use the obsolete hyprcum namespace.

list_appsA

List running Hyprland apps/windows available to brand. Start here before choosing a target app unless the user explicitly asks to launch a new app/window.

launch_appA

Open or launch an app through Hyprland and return a window selector. By default this reuses an already running matching window; set reuse_existing=false only when the user explicitly asks for a new instance/window. For browser tasks, use this instead of Browser MCP only when an app launch/open is requested.

open_appB

Compatibility alias for launch_app.

get_app_stateA

Get a target app/window screenshot, accessibility tree, and uiHints. Call this before action tools, then use element_index or screenshot/window-relative coordinates. uiHints separates AT-SPI menu entries from tab/ribbon/toolbar controls; do not substitute a same-named menu for a requested tab.

read_app_stateC

Compatibility alias for get_app_state.

screenshotB

Capture an unoccluded screenshot for an app/window, or the visible compositor if no app is passed. Prefer app over low-level target.

get_screenshotD

Compatibility alias for screenshot.

get_cursor_positionB

Return the current cursor position in monitor, screenshot, or window-relative coordinates.

list_windowsA

Compatibility alias for list_apps.

clickB

Click a visible element by index, accessible name/text, or screenshot/window-relative coordinates. Element clicks use the native pointer path so the visible agent cursor overlay appears.

perform_secondary_actionC

Invoke a secondary AT-SPI action exposed by an element.

activate_menu_itemA

Activate a global app-menu item from get_app_state. Uses DBusMenu/GMenu when the app exposes a menu model; this is independent of AT-SPI menu roles.

scrollC

Scroll an element or coordinate in a direction by pages.

dragB

Drag from one screenshot/window-relative coordinate to another.

left_clickB

Compatibility alias for click with the left button.

right_clickC

Compatibility alias for click with the right button.

middle_clickB

Compatibility alias for click with the middle button.

double_clickC

Compatibility alias for a double left click.

triple_clickC

Compatibility alias for a triple left click.

hoverB

Compatibility alias: move the background pointer to an element or coordinate without clicking.

move_mouseC

Compatibility alias for hover.

left_click_dragC

Compatibility alias for drag using start_coordinate and coordinate.

type_textA

Type literal text into the target app. Use paste_text for multiline, tabular, CSV/TSV, Unicode-heavy, or long text. method=auto prefers a focused AT-SPI editable control, then uses isolated background key/paste input; method=atspi explicitly requests accessibility text insertion.

typeC

Compatibility alias for type_text.

paste_textA

Paste text through the clipboard into the target app. Prefer this for multiline, tabular, CSV/TSV, Unicode-heavy, or long text because it is much faster than key-by-key typing.

press_keyB

Press a key or key-combination, using xdotool-style syntax such as ctrl+v, Return, alt+left, or super+c.

keyA

Compatibility alias for press_key. Accepts key, keys, modifiers, keycode, or text.

set_valueC

Set the value of a settable accessibility element.

waitC

Compatibility alias: wait for a short duration.

wait_for_windowA

Wait for a Hyprland window or same-process related popup/dialog to appear, then return its app state. Use after actions expected to open dialogs or new windows.

wait_for_closeB

Wait for a target window/dialog to close. If related_to is provided, return the surviving related/root app state.

security_statusA

Return the active desktop-control security policy and readiness diagnostics without exposing secrets.

request_confirmationA

Create a pending challenge bound to an exact high-risk call. A person must approve it from an independent local TTY before it can authorize the action.

panicA

Immediately cancel active background operations. panic latches writes off; cancel is one-shot; resume clears the latch; status is read-only.

audit_replayC

Preflight the redacted audit journal and optionally replay only entries that remain safe after identity and policy validation.

ocrA

Run a local OCR backend on a newly captured, privacy-filtered target screenshot. Returns normalized confidence 0..1, screenshot pixel boxes, and an opaque short-lived ocr_id.

click_textB

Click OCR text from an opaque current ocr_id. The server revalidates screenshot hash, process identity, and geometry before input.

get_marksC

Render a non-destructive numbered Set-of-Marks overlay for a bound target screenshot and return an opaque marks_id mapping.

click_markB

Click one bound Set-of-Marks id after live identity, geometry, and screenshot-hash validation.

type_intoC

Atomically resolve and verify an editable target, focus it, refresh state, then input text using auto/AT-SPI/paste/keys.

sequenceB

Run an ordered action sequence. Every step re-enters the ordinary single-tool policy, confirmation, confinement, lease, and audit gateway; nested sequences are rejected.

manage_windowC

Targeted, verified Hyprland window management: focus/close/move/resize/minimize/maximize/fullscreen/floating/pin/move_to_workspace.

list_workspacesB

List Hyprland workspaces; special workspaces are included by default and explicitly identified by Hyprland.

manage_workspaceC

Verified Hyprland workspace switch/create-or-activate/rename and targeted window move. special: selectors retain Hyprland special-workspace semantics.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 45 tools

Disambiguation2/5

Roughly a third of the surface is explicit duplicate aliases (open_app=launch_app, read_app_state=get_app_state, get_screenshot=screenshot, list_windows=list_apps, key=press_key, left/right/middle/double/triple_click=click, hover/move_mouse, type=type_text, left_click_drag=drag), so an agent frequently has two or more tools that do the identical thing. Overlaps also exist among non-alias tools: type_text vs type_into vs paste_text vs set_value, and screenshot vs get_app_state. The 'Compatibility alias for X' phrasing helps, but boundaries remain murky.

Naming Consistency3/5

All names are snake_case with no camelCase mixing, which is good, but verb conventions are inconsistent: verb_noun (get_app_state, list_apps, click_text, manage_window) coexists with bare verbs (click, scroll, drag, hover, panic, wait, sequence) and bare nouns (computer, ocr, screenshot). The name 'computer' for a compatibility tool is especially uninformative and breaks any pattern.

Tool Count2/5

45 tools is far beyond a comfortable set and is inflated by ~14 pure aliases that add no capability. Even discounting aliases, the 30 real tools cover a lot of ground, but the alias bloat makes the surface heavy and hard to scan.

Completeness4/5

For a Hyprland desktop-control agent the lifecycle is well covered: discovery (list_apps, list_windows), state capture (get_app_state, screenshot, ocr, get_marks), input (click, type_text, paste_text, press_key, scroll, drag, set_value), window/workspace management, and safety (security_status, request_confirmation, panic, audit_replay, sequence). Minor gaps only, e.g. no explicit clipboard read/copy-back or multi-monitor enumeration beyond cursor coordinates.

Maintenance

ActivityMaintained
ResponsivenessNo issues