Skip to main content
Glama

desktop_window

Manage a desktop window's geometry, state, and workspace by moving, resizing, maximizing, minimizing, fullscreening, raising, restoring, closing, or assigning it to a workspace.

Instructions

Manage one window. move uses frame x/y; resize uses client width/height; workspace requires its index. fullscreen requests WM fullscreen; restore exits fullscreen/maximization/minimization; raise changes stacking without activation. Other actions take no extra parameters. Close reports an owned blocking dialog without confirming it. Geometry actions return fresh same-generation client/frame bounds and WM state; move/resize distinguish matched from nonmatching requests without upgrading dispatched effects. Restore compares captured pre-maximize bounds when observed geometry, state and size hints remain consistent; otherwise comparison is unknown. No saved geometry is forced, and unobserved external changes cannot be ruled out.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
widthNo
actionYes
heightNo
window_idYes
workspaceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.4

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses several important behaviors: close reports a blocking dialog without confirming, geometry actions return fresh bounds and WM state, move/resize distinguish matched vs. nonmatching requests, and restore compares captured pre-maximize bounds. It also acknowledges limitations (no saved geometry forced, unobserved changes cannot be ruled out). This is thorough but could be clearer about return format and error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: it lists action-specific parameter requirements first, then describes behaviors. It is front-loaded with the key scoping and parameter notes. Each sentence provides new information, though the latter sentences about geometry comparisons are complex and could be simplified. There is no wasted wording, but the density might hinder readability for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 actions, 7 parameters, no output schema or annotations), the description covers action-specific parameters and key behavioral nuances such as blocking dialogs and geometry reporting. However, it does not mention return values in detail (e.g., what 'fresh bounds' look like), potential failure modes, or permissions required. These are minor gaps given the lack of output schema, but for a robust agent, more detail on response format would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the meaning of x/y (frame), width/height (client), workspace (requires index), and says other actions take no extra parameters. It does not explain the exact units or data types beyond schema, but the semantic mapping is helpful. The description adds value by linking parameters to actions, which the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages a single window and enumerates each action with its specific semantics (e.g., move uses frame x/y, resize uses client width/height). It distinguishes from siblings like desktop_windows (plural) by emphasizing singular scope. The verb 'Manage' plus resource 'window' is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly outlines which parameters are needed for which actions (move/resize/workspace) and notes that other actions take no extra parameters. It does not explicitly state when not to use this tool or compare with siblings like desktop_activate or desktop_invoke, but the action enum and parameter guidance give clear usage context. A small gap exists in not mentioning alternatives for actions like close vs. desktop_control.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.