Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DISPLAYYesThe X11 display to control (e.g., ':1' for the sandbox). Required.
GLOVEBOX_VISIONNoVision backend: 'none', 'basic', or 'local'.local
GLOVEBOX_HOST_DISPLAYNoHost display for new instances.:0

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
launch_appA

Launch a GUI app in its OWN new Xephyr display/window; returns its instance id. command is any shell command (e.g. 'chromium', 'xterm', 'gimp'). For Chromium, the X11 flags + a per-instance profile are added automatically. Control it with instance=.

list_instancesA

List all instances (running app windows) with their display + name.

close_instanceA

Close an instance (kills its app + Xephyr display). Refuses instance 1 (the main sandbox).

get_screen_sizeC

Screen size of an instance + active vision backend.

screenshotC

Screenshot of an instance's window.

parse_screenB

Detect on-screen elements (id, type, label, interactive, pixel-center) for an instance (backend = GLOVEBOX_VISION). Saves a numbered image to /tmp/glovebox_annotated_.png.

clickA

Click at absolute coords. observe='screenshot'|'parse' returns the resulting screen state in the SAME call (saves a round-trip); settle_ms waits for the UI to update first. Default 'none'.

dragB

Drag (mouse-down → move → up) from (x1,y1) to (x2,y2) — for drawing shapes / selecting.

double_clickC

Double-click at absolute coords in an instance.

click_elementB

Click an element id from the most recent parse_screen. observe/settle_ms: see click().

type_textA

Type at the focused field — unicode-safe. Pure ASCII is typed via xdotool; text with any non-ASCII char (č/š/ž …) is inserted via the clipboard + ctrl+v, because xdotool's synthetic unicode keystrokes get silently dropped by some toolkits (e.g. Inkscape's GTK canvas) even though they work in browsers. observe/settle_ms: see click().

upload_fileA

Attach a local file to a page's via Chrome DevTools Protocol — use this for ALL browser uploads (logos, images, docs). The sandbox's native GTK file picker is invisible to us AND hangs the renderer, so never click an upload button expecting a dialog — call this instead. Works on Chromium started by launch_app / start-display.sh (they open a per-instance --remote-debugging-port). selector targets the file input on the MAIN page (default = first file input). If the site only inserts the after you click its 'upload' control, click that first (it won't open a dialog we can see, but it wires up the input), then call this. NATIVE (non-browser) apps: use open_file() or drive the app's own Open dialog — it IS visible here. observe/settle_ms: see click().

open_fileA

Open a local file in an app ON an existing instance's display (NOT a new instance). If app is given, runs <app> <filepath> there (e.g. app='gimp'); otherwise tries xdg-open. Relative paths resolve against the instance's staging folder files// (see list_files). For BROWSER uploads use upload_file() instead. GTK apps get the same X11 + D-Bus handling as launch_app (so they render on this display, not the host).

list_filesC

The instance's staging folder (files// under the install dir) and its contents. Drop files there (or reference any host path you can read) to open in apps via open_file() or an app's Open dialog; browser uploads still go through upload_file().

press_keysC

Press a key/combo (xdotool): 'Return','ctrl+a','Tab','ctrl+t'. observe/settle_ms: see click().

move_mouseC

Move the mouse in an instance.

scrollB

Scroll: positive = up, negative = down. observe/settle_ms: see click().

wait_msB

Wait (e.g. for a page to load). Capped at 10000 ms.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/segentic-lab/glovebox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server