Skip to main content
Glama

tool_type_text

Type text into a target window character-by-character via window-targeted PostMessage, automatically resolving the edit control and verifying text landed.

Instructions

Type a text string into a window character-by-character (window-targeted PostMessage, not global keystrokes). The text control inside the window is resolved automatically — a top-level window does not forward WM_CHAR to its child edit, so passing a window handle alone used to post into nothing — and the control's text is read back so effect_verified says whether the text actually landed. MUTATING (soft): serialized across agent sessions; no physical input is injected so it can run while the user types — but the window may be RAISED to foreground, so avoid typing into a window the user is currently working in.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hwndNo
textNo
titleNo
delay_msNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.1

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full burden and does so well: it discloses the PostMessage mechanism, automatic child-control resolution, the effect_verified read-back, that it is MUTATING (soft) and serialized across agent sessions, no physical input injection, and the side effect that the window may be raised to foreground. This is exactly the behavioral detail an agent needs.

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?

One dense paragraph, front-loaded with the action and mechanism before the behavioral caveats. Every sentence carries information, though the parenthetical asides make it denser than it needs to be for quick scanning.

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

Completeness5/5

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

For a mutation tool with an output schema (covering the effect_verified return value) and no annotations, the description supplies the mechanism, verification path, concurrency behavior, and the key safety caveat. Only the two secondary parameters remain undocumented, which is a minor gap against an otherwise complete picture.

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

Parameters2/5

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

Schema description coverage is 0% across four parameters, so the description must compensate and largely does not. It clarifies hwnd semantics indirectly ('passing a window handle alone used to post into nothing') and implies text is the payload, but the roles of `title` (selector vs. fallback for hwnd) and `delay_ms` (inter-character timing?) are never addressed.

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+resource ('Type a text string into a window character-by-character') and immediately scopes the mechanism ('window-targeted PostMessage, not global keystrokes'), which distinguishes it from the sibling tool_send_keys. An agent can identify the operation without opening the schema.

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?

Gives clear situational context: it can run while the user types because no physical input is injected, and it warns to avoid typing into a window the user is actively working in. It does not explicitly name an alternative (e.g. send_keys) or state when that alternative should be preferred, so it stops short of full routing guidance.

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