Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PYTHONUTF8NoSet to 1 in the env of the MCP server configuration, as shown in the Claude Code and Claude Desktop examples.1
NEXUS_WINDOWS_HOMENoSet to use another folder for local state (logs, routines) instead of %USERPROFILE%\.claude\nexus-claude\.
NEXUS_ROUTINES_MIRRORNoOptional mirror folder to share routine definitions between PCs; typed text is never mirrored in clear.
UV_PROJECT_ENVIRONMENTNoOptional: venv location outside the clone (e.g. $env:LOCALAPPDATA\claude-windows-computer-use\venv), passed as an environment variable when registering the server from a clone.
NEXUS_WINDOWS_DEBUG_IMAGESNoSet to 1 to write images to the debug log.0

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
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
windowsA

List application windows (front to back): hwnd, title, process, UI framework (Win32, WPF, Chromium…), size; [dialog of N "title"] = dialog or other window owned by window N (file picker, "Open", "Save as"); [hidden] = Store app Windows never shows (launched in the background), readable and drivable all the same. Then Windows itself: window="taskbar" and window="desktop" (icons). filter: part of a title or process name.

lookA

See a window without bringing it to the front: numbered elements [N] (role, name, value, states, position @x,y), and an image when the text is not enough. window: title (part of it), process ("notepad"), hwnd, or Windows itself: "taskbar" (buttons, tray, clock), "desktop" (icons), "screen" (whole screen as the user sees it, with the windows' places: overview only); omitted = current window. show: auto (default: the list, plus the image only when the tree is too thin to act on — canvas, game, page that publishes nothing — or after an unverified action), both (list and image), image, elements, changes (only what changed since the last list: added "+", changed "~", removed "-", the others keep their [N]), text (text of documents, no image), none. query: list only the elements containing this text. region [x1,y1,x2,y2]: zoom on an area of the image (fine reading; coordinates stay those of the full image). Images: WebP, at most 2000 px and 2.56 Mpx (detail=high gives the same size: zoom with region to read small text); an image identical to the last one sent for this window is not attached again (show=image always attaches it). marks: numbers drawn on the image (auto = unnamed elements; all; none).

actA

Act in the background: steps run in order (stops at the first error or unknown outcome), then the updated state (then: auto = list + image if a step is not verified; both, image, elements, changes, none). Per-step report: ✓ invoked or effect read, = already done (nothing sent), ~ unknown outcome (batch stopped: inspect the state), ✗ failed or not reached; then the summary. Steps (do): click, double_click, right_click, type (appends text; no target = focused element), set (replaces the text), clear, key (keys "ctrl+s", "enter", "alt+f4"), select (option in a list), check, uncheck, toggle, expand, collapse, scroll (direction, amount), focus, menu (path "File > Open"), wait (text appeared, or gone=true; timeout), drag (target → to), hover. expect: text expected after the step. check: wanted state of an element ({"target":"Name","value":"Alice"}; also contains, checked, selected, expanded, focused, enabled, exists): already true → step skipped, read back after → ✓, otherwise ✗ not reached. confirm=true: paying, sending, publishing, permanent deletion… (refused otherwise, before any input); only on the user's explicit order or "yes" for THIS action. Outward ones (send, pay, publish…) also need accord: the token from the refusal, after the user's own yes. target: [N] from the last look, visible name ("Save", "button:OK", "edit:Name") or "x,y" in image pixels. Example: steps=[{"do":"set","target":"Name","text":"Alice"},{"do":"click","target":"OK"}]. Routines: remember="name" saves the batch if it is verified (✓/=, targets by name; {{x}} = variable text, only in text and check.value/contains; typed text made only of {{x}}); routine="name" (without steps) replays it, params={"x": "…"}; remember="name" with steps=[] forgets it; look lists them. foreground=true: window kept in front for the whole batch, real mouse/keyboard when the background is impossible or ignored (drag, hover, WPF/UWP/Chromium shortcuts, Tk); only with the user's consent. Panels window="quick settings", "notifications", "start": foreground=true only.

launchA

Open an application in the background (without giving it the foreground) and see it. app: Start menu name ("Calculator", "Notepad"), executable ("notepad.exe") or path. args: arguments. app = path of a FOLDER or a DOCUMENT: opened by its file association (Explorer, default application), opening verified (displayed folder read back, or title carrying the file name). app = ADDRESS: ms-settings: opens that Settings page behind the user's window (Windows flashes it ~1 s; foreground given back); any other scheme (mailto:, https:, tel:…) by its app. Calling or sending stays a click, guarded in act (confirm + accord). devtools=true (Chromium/Electron/Edge only, application not already open): opens a local DevTools port for more reliable clicks, typing and shortcuts. The window becomes the current window. Steam: always launched readable even when covered; devtools=true opens its DevTools port (127.0.0.1:8080, its own session); when already open, restart=true closes and relaunches it (refused while a game runs). Both: only with the user's consent.

windowA

Manage a window without bringing it to the front: restore (restore behind the others), minimize, maximize, close (polite request: the application may offer to save), bottom (bottom of the z-order), move (x, y) / resize (width, height) in screen pixels. front: bring it to the front (foreground=true, only with the user's consent).

notificationsA

Notifications shown by Windows (notification center), most recent first: app, time, texts; read without opening anything on screen; security codes masked. app: part of the app name.

logsB

Log of the latest calls (debugging): tool, arguments, techniques tried per step, durations, errors. Full files: ~/.claude/nexus-claude/logs/YYYY-MM-DD.jsonl.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

The set is mostly distinct: launch opens apps, look inspects contents, act performs UI steps, window manages a window, notifications and logs are separate. The main confusion is between 'windows' (list windows) and 'window' (manage a window), plus some overlap between look and windows for inspection/listing.

Naming Consistency3/5

Names are all lowercase single words, but conventions are mixed: some are verbs (act, look, launch), others are nouns (windows, notifications, logs, window). The singular/plural pair 'window'/'windows' is particularly easy to misread, though the set remains readable.

Tool Count5/5

Seven tools are well scoped for a desktop automation server. Each tool has a clear role and the count is comfortably within a practical range.

Completeness4/5

The surface covers the core desktop automation lifecycle: launch, list windows, inspect, act, manage window state, read notifications, and debug via logs. Minor gaps like clipboard operations or explicit process management are not central, so agents can work around them.

Maintenance

ActivityNo data
ResponsivenessSyncing