Skip to main content
Glama

Press keys

amiga_key_press

Press named keys sequentially into the active Amiga window to automate testing; supports modifiers, function keys, arrows, keypad keys, and raw key codes.

Instructions

Press keys by name, one after another, into the active window: return, esc, tab, del, backspace, space, f1-f10, up, down, left, right, help, kp0-kp9, kpenter; modifiers joined with '+': ramiga+q, lamiga+m, ctrl+c, shift+f1, alt+x; or a raw key code like 0x45. Each entry is pressed and released. For ordinary text use amiga_key_type.

Input Schema

NameRequiredDescriptionDefault
keysYesone or more key names, e.g. ["ramiga+w"] or ["down", "return"]

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.1
    • changedInput schema / properties / keys / description
      Previous value: -"one or more key names"New value: +"one or more key names, e.g. [\"ramiga+w\"] or [\"down\", \"return\"]"
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds two facts annotations cannot convey: each entry is both pressed and released (so a modifier chord like ramiga+q is a complete keystroke, not a held state), and input is delivered to the active window, which matters for stateful desktop automation. It stops short of saying what happens if the target window is not focused or whether errors are reported.

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?

Front-loaded with the action and target, then the accepted key forms, then the alternative-tool pointer in a single compact statement. It is one long semicolon-delimited sentence, which is dense but every clause (vocabulary, modifier syntax, raw code, sibling routing) carries information an agent needs; only the punctuation structure slightly hurts scannability.

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 one-parameter tool with full schema coverage and no output schema, the description covers everything needed to call it correctly: target window, accepted key formats, press-and-release semantics, and where to go for text entry. The only gap is failure behaviour (no focused window, unsupported key name), which is minor given the tool's simplicity.

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

Parameters4/5

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

Schema coverage is 100% and the parameter is a plain string array, so the baseline would be 3. The description nevertheless adds substantial meaning the schema lacks: the enumerated key vocabulary (return, esc, tab, del, backspace, space, f1-f10, arrows, help, kp0-kp9, kpenter), the '+'-joined modifier syntax with named Amiga modifiers (ramiga, lamiga, ctrl, shift, alt), and the raw hex escape hatch (0x45). Since the schema exposes no enum, this list is the only place the accepted values are specified.

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 and resource ("Press keys ... into the active window") and immediately scopes the accepted key vocabulary: named keys, modifier combinations joined with '+', or raw hex codes. It explicitly names the sibling it is not for ("For ordinary text use amiga_key_type"), so an agent can distinguish it from amiga_key_type without opening either 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 explicit routing guidance to the alternative tool for ordinary text input, plus a clear statement of the target (the active window). It does not cover other plausible alternatives (e.g. amiga_ui_click for actuating UI controls, amiga_input for bulk input), but the primary ambiguity between typing and pressing is resolved.

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