glovebox-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISPLAY | Yes | The X11 display to control (e.g., ':1' for the sandbox). Required. | |
| GLOVEBOX_VISION | No | Vision backend: 'none', 'basic', or 'local'. | local |
| GLOVEBOX_HOST_DISPLAY | No | Host display for new instances. | :0 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| launch_appA | Launch a GUI app in its OWN new Xephyr display/window; returns its instance id.
|
| 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. |
| 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. |
| 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. |
| 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). |
| open_fileA | Open a local file in an app ON an existing instance's display (NOT a new instance).
If |
| 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'. |
| move_mouseC | Move the mouse in an instance. |
| scrollB | Scroll: positive = up, negative = down. |
| wait_msB | Wait (e.g. for a page to load). Capped at 10000 ms. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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