Skip to main content
Glama
TNTXZ

Universal Computer Control MCP

by TNTXZ

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
UCC_LOGGING__LEVELNoLogging level. Example: UCC_LOGGING__LEVEL=DEBUG
UCC_SECURITY__MODENoConfigures the security mode (permissive/standard/strict). Example: UCC_SECURITY__MODE=standard
UCC_VISION__VLM__ENABLEDNoEnable the vision-language model backend. Example: UCC_VISION__VLM__ENABLED=true
UCC_ENGINE__VERIFICATION_MODENoConfigures the verification mode (off/basic/strict). Example: UCC_ENGINE__VERIFICATION_MODE=strict
UCC_SECURITY__ALLOWED_COMMANDSNoJSON list of commands allowed to be run by computer.run_command. Example: UCC_SECURITY__ALLOWED_COMMANDS='["ls", "git status", "xdotool"]'

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

Tools

Functions exposed to the LLM to take actions

NameDescription
computer.observeA

Observe the current computer state: screen geometry, active window, cursor, OCR'd on-screen text and accessibility UI elements. Levels: 'minimal' (fast), 'normal' (screenshot+OCR+accessibility), 'full' (adds focused element details). This is the primary tool for understanding the screen before acting.

computer.screenshotA

Take a screenshot of the whole virtual desktop, a specific monitor or a [left, top, right, bottom] region. Saves it to the persistence directory and returns the path.

computer.get_ui_treeB

Get the accessibility tree of the active (or a named) window as a nested structure of roles, names and bounding boxes. Uses Windows UI Automation or Linux AT-SPI; returns an explanatory error when no accessibility backend is available.

computer.get_active_windowA

Get the title, application and process of the currently focused window.

computer.find_textA

Find text anywhere on screen (OCR + accessibility) with fuzzy matching. Returns matches with bounding boxes so you can click them. Tolerates case, arrows and small typos ('Continue' matches 'Continue →').

computer.find_visualA

Find a UI element visually: by image template name (from the configured template directory) or by natural-language description via the optional vision model. Returns a bounding box.

computer.wait_forA

Wait until something changes on screen. Expectations: 'any_change', 'window' (value = window title substring), 'text' (value = OCR text substring). Use after actions to await UI reactions instead of blind sleeps.

computer.clickA

Click a UI element. Target can be: visible text ('Continue'), an element id from computer.observe ('element_17'), or coordinates ({'x': 500, 'y': 300}). The engine resolves it via accessibility first, then OCR, then vision - and verifies the result.

computer.double_clickB

Double-click a UI element (same flexible target rules as computer.click).

computer.right_clickC

Right-click a UI element (same flexible target rules as computer.click).

computer.move_mouseB

Move the mouse cursor to a target (text, element id or coordinates).

computer.dragC

Drag from one target to another (text, element ids or coordinates).

computer.scrollA

Scroll the mouse wheel. Positive amount scrolls up, negative down. Optionally at specific coordinates (x, y).

computer.typeA

Type text at the currently focused input. Handles Unicode and multiline text (clipboard fallback used automatically). The typed content is never logged.

computer.pressC

Press a keyboard key ('enter', 'tab', 'escape', 'f5', ...).

computer.hotkeyA

Press a key combination. Pass a string like 'ctrl+s' or a list like ['ctrl', 'shift', 't'].

computer.list_windowsA

List all top-level OS windows with title, application, pid and state.

computer.focus_windowA

Focus a real OS window by (partial) title or application name, e.g. 'Chrome'. Works without any application-specific integration.

computer.minimize_windowC

Minimize a window by title/application.

computer.maximize_windowC

Maximize a window by title/application.

computer.restore_windowC

Restore a minimized/maximized window.

computer.close_windowA

Close a window gracefully (WM_CLOSE). Requires confirm=true; modal confirmation dialogs remain visible for the agent to handle.

computer.get_clipboardA

Read the clipboard text.

computer.set_clipboardA

Write text to the clipboard (useful as a typing fallback).

computer.launch_applicationA

Launch a GUI application ('chrome', 'code', a .desktop entry, or a full path). Subject to security.allowed_applications, rate limiting and security.confirmation_required (confirm=true by default).

computer.run_commandA

Run a shell command (security.allowlist applies; see computer.backend_status). Requires confirm=true. Output is truncated and credential-redacted.

computer.backend_statusA

Report health/availability of every backend (input, screenshot, accessibility, window management, clipboard, OCR, vision) plus security settings and emergency-stop state.

computer.emergency_stopA

EMERGENCY STOP: immediately halt all automation (checked before every action and attempt). Persists until reset_emergency_stop.

computer.reset_emergency_stopA

Clear a previously triggered emergency stop.

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 29 tools

Disambiguation4/5

Most tools have clearly distinct purposes (click vs drag vs scroll, find_text vs find_visual, the many window operations are each specific). The only mild overlap is between computer.observe, computer.screenshot and computer.get_ui_tree, but observe's description explicitly positions it as the primary screen-understanding tool, keeping confusion low.

Naming Consistency5/5

Every tool follows a strict namespace.verb_noun snake_case pattern (computer.click, computer.focus_window, computer.list_windows, computer.emergency_stop). No camelCase or mixed conventions anywhere, so the surface is highly predictable.

Tool Count4/5

29 tools is on the high side, but the domain (full desktop automation spanning input, OCR/vision, accessibility, window management, clipboard, app launching and shell) legitimately needs this breadth and each tool maps to a distinct capability. Slightly heavy rather than gratuitous.

Completeness5/5

Coverage is comprehensive: observation/screenshot/UI-tree, the full input set (click variants, type, hotkey, scroll, drag), window lifecycle (list/focus/minimize/maximize/restore/close), clipboard read/write, app launch, shell execution, backend health, and safety controls (emergency stop/reset). No obvious dead ends for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues