Skip to main content
Glama

Window Set Frame

window_set_frame
Destructive

Pins a window (by window_id) to fixed bounds {x,y,w,h} in global points, so every take is framed identically across runs. Returns the actual post-constraint bounds. Refuses LMCP's own windows (web-automation sessions, tray) with own_window; use web_show for those. Requires Accessibility permission.

Input Schema

NameRequiredDescriptionDefault
boundsYes{x,y,w,h} global points.
window_idYesWindow to move or resize, from list_windows.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / window_id / description
      Added value: +"Window to move or resize, from list_windows."
  2. Changed1 schema field changed
    • removedInput schema / properties / window_id / description
      Removed value: -"Window to move or resize, from list_windows."
  3. Changed1 schema field changed
    • addedInput schema / properties / window_id / description
      Added value: +"Window to move or resize, from list_windows."
  4. Added

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: it discloses that the request may be clamped ('Returns the actual post-constraint bounds'), documents a specific failure mode and error code ('own_window'), and states the OS permission prerequisite (Accessibility). These are behaviors the destructiveHint/openWorldHint flags do not convey.

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?

Three tight sentences: effect first, then return value, then refusal case and permission. No filler or repetition; each clause carries distinct information.

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?

For a mutation tool with no output schema and only two required params, it covers effect, return, refusal, and permissions. Minor gaps remain: whether the 'pinning' persists (across app restarts or until another change) and what happens for an invalid window_id.

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 coverage is 100%, and the description largely restates what the schema documents (bounds in global points, window_id). It confirms the point unit and that window_id comes from list_windows but adds no syntax or format detail the schema lacks, so the baseline 3 applies.

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?

States a specific verb ('pins') and resource ('a window, by window_id') with the exact effect (fixed bounds {x,y,w,h} in global points) and the goal (identical framing across runs). This is clearly distinguishable from window_focus and list_windows, which are the nearest siblings.

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?

Explicitly names an exclusion and the alternative for it: 'Refuses LMCP's own windows... use web_show for those.' The use case ('so every take is framed identically across runs') gives context for choosing it. It does not contrast against window_focus or other window tools, so it stops short of full when/when-not coverage.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources