Skip to main content
Glama

app_type_text

Types literal text into the focused field or control when no addressable handle exists, preserving punctuation and case; use for typing-only input with no value read-back.

Instructions

Type literal text into whatever has focus.

For a field that HAS a handle, app_set_dialog_control is better: it addresses the control by name and reads the value back. This is for the places with no handle to address, where typing is the only route in.

Carries punctuation and case, since it sends characters rather than virtual keys. No read-back, for the same reason as app_send_keys.

Input Schema

NameRequiredDescriptionDefault
textYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that characters (not virtual keys) are sent, so case and punctuation are preserved, and that there is no read-back. But it omits failure behavior: what happens if nothing has focus, or if the focused control rejects input, and whether text appends or replaces.

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 core action is front-loaded in the first sentence, followed by the alternative and behavioral notes, and every sentence earns its place. The line breaks fall mid-sentence, making the raw text read a little choppily, but there is no wasted content.

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?

An output schema exists, so the description needn't explain return values, and the "no read-back" note signals that nothing is returned. For a one-parameter UI automation tool the coverage is nearly complete, with the remaining gap being explicit handling of the no-focus case.

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 0% for the single "text" parameter, so the description must compensate. Saying it carries punctuation and case because it sends characters rather than virtual keys does clarify that the value is raw literal text rather than a key-name syntax, which is meaningful. But it does not cover encoding, escaping, or newline handling.

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?

"Type literal text into whatever has focus" gives a specific verb (type), resource (literal text) and target (focused control), which an agent can act on immediately. It then explicitly distinguishes itself from app_set_dialog_control and app_send_keys, so the tool is identifiable among its UI-automation siblings.

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?

It states the when-not condition clearly: if the field has a handle, use app_set_dialog_control instead, because that addresses the control by name and reads the value back. It names the alternative and the condition that selects it, leaving nothing to inference.

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

Deploy Server

Other Tools