Skip to main content
Glama

ui_window_select

Destructive

Select a web or Electron renderer by its observed window ID from ui_windows to target automation actions; IDs are session-scoped, so closed or unknown windows fail.

Instructions

Select a web/Electron renderer by an observed ID from ui_windows. IDs are valid only in their session; closed or unknown windows fail.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "sessionId": "<sessionId>",
      "windowId": "<windowId>"
    },
    "name": "ui_window_select"
  }
}

Input Schema

NameRequiredDescriptionDefault
windowIdYes
sessionIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A3.7/5.0
Behavior3/5

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

The description adds useful failure semantics (closed or unknown windows fail) that the annotations do not provide. However, annotations flag destructiveHint=true and openWorldHint=true, and the description never explains what a 'select' destroys or mutates — for example whether it changes the active target for later ui_action calls or affects other sessions. That unexplained destructive flag is the main behavioral gap.

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

Conciseness5/5

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

Two short sentences, with the identity of the selector's input front-loaded before the validity caveat. There is no redundant restatement of the name or the schema, and every clause carries information.

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

Completeness3/5

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

The tool is simple (2 required string parameters, no output schema) and the description covers the core contract, but for a call annotated destructive it should say what state selection changes and whether that state is scoped per session. The sessionId derivation is also left implicit, which is a real gap in a session-scoped API.

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

Parameters3/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 supply all parameter meaning, and it does so only partially: windowId is defined by its provenance (observed via ui_windows) and session-scoped validity, which is genuinely helpful. sessionId is never explained — an agent must infer that it is the session created by session_start — leaving half the parameters undocumented.

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

Purpose4/5

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

The description uses a specific verb ('Select') and a specific resource ('web/Electron renderer'), and names the sibling tool ui_windows as the source of the ID, which separates it from the listing tool. It does not describe how it differs from adjacent tools such as ui_action or ui_snapshot, which also act on a renderer, so it stops short of full differentiation.

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?

It states a concrete prerequisite ('an observed ID from ui_windows') and a lifecycle constraint ('IDs are valid only in their session'), which tells an agent when the call will and will not work. It never mentions alternatives or when not to select a window, but there is no true sibling a caller would confuse it with for this step.

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