Skip to main content
Glama

dock_window

Snap a window to a screen corner at a fixed size and pin it always-on-top to keep applications like Claude CLI visible while using other full-screen apps.

Instructions

Purpose: Snap a window to a screen corner at a fixed small size and pin it always-on-top — primarily to keep Claude CLI visible while operating other apps full-screen. Details: Accepts corner ('bottom-right' default), width/height (480×360 default, clamped to monitor work area), pin (true default = always-on-top), margin (8px default gap from screen edges, avoids taskbar overlap), and monitorId (see get_screen_info for IDs). Minimized windows are automatically restored before docking. Prefer: Use pin_window alone when you only need always-on-top without moving or resizing. Use dock_window when you need corner placement + resize + pin in one step. Caveats: Overrides any existing Win+Arrow snap arrangement. Call unpin_window explicitly to release always-on-top when the docked window is no longer needed in front.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesPartial window title to dock (case-insensitive). Matches the first visible window containing this text. Example: 'Claude Code', 'メモ帳'.
cornerNoScreen corner to snap the window to. Default 'bottom-right'.bottom-right
widthNoWindow width in pixels after docking. Default 480.
heightNoWindow height in pixels after docking. Default 360.
pinNoIf true, set always-on-top so the docked window stays visible on top of other windows. Use unpin_window to remove the topmost flag later. Default true.
monitorIdNoMonitor to dock on (from get_screen_info). Omit for primary monitor.
marginNoPixel padding between the window and the screen edge. Default 8.
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it restores minimized windows automatically, overrides existing snap arrangements, requires explicit unpinning to release always-on-top, and clamps size to monitor work area. However, it doesn't mention error handling, performance implications, or what happens if the window title isn't found, leaving some gaps in behavioral context.

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?

The description is well-structured with clear sections (Purpose, Details, Prefer, Caveats), each sentence adds value, and it's front-loaded with the core purpose. There's no redundant information, and it efficiently communicates essential information in a compact format.

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 moderate complexity (7 parameters, no annotations, no output schema), the description provides good contextual completeness. It covers purpose, usage guidelines, behavioral details, and caveats. However, without an output schema, it doesn't describe return values or success/failure responses, which is a minor gap for a tool with multiple parameters and side effects.

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?

The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it mentions default values and provides context for monitorId ('see get_screen_info for IDs'), but doesn't explain parameter interactions or edge cases. This meets the baseline of 3 when schema coverage is high.

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 explicitly states the tool's purpose with specific verbs ('Snap a window to a screen corner at a fixed small size and pin it always-on-top') and resources ('window', 'screen corner'), and distinguishes it from sibling tools by mentioning its primary use case ('keep Claude CLI visible while operating other apps full-screen'). This is clear, specific, and differentiates it from alternatives like pin_window.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool vs. alternatives: 'Prefer: Use pin_window alone when you only need always-on-top without moving or resizing. Use dock_window when you need corner placement + resize + pin in one step.' It also includes caveats ('Overrides any existing Win+Arrow snap arrangement') and prerequisites ('Call unpin_window explicitly to release always-on-top'), covering both when-to-use and when-not-to-use scenarios.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Harusame64/desktop-touch-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server