Skip to main content
Glama

Send a timed Android key sequence

mobile_input_key_sequence

Send timed Android key and touch sequences in one call, with pauses, tap combos, and optional per-action UI checks before continuing.

Instructions

Send a timed sequence of Android keys and touchscreen taps in one call. Digits between actions are millisecond pauses, not a simultaneous chord. An x,y token is a tap; join points with + for a touch combo with no pause between them. Pass stepped.checks, one entry per action, to run each action on its own and poll for a UI node before continuing.

Input Schema

NameRequiredDescriptionDefault
gapMsNo
serialYesExact ADB serial from mobile_devices_list; never inferred when multiple devices exist
sourceNogamepad
steppedNo
sequenceYes
displayIdYesAndroid framework logical display ID, not a SurfaceFlinger physical ID

Output Schema

NameRequiredDescriptionDefault
dataYes
deviceYes
backendYes
displayNo
warningsYes
durationMsYes
operationIdYes
schemaVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral detail beyond that: digit tokens are pauses rather than a chord, x,y tokens are taps, plus signs create pause-free touch combos, and stepped.checks polls for a UI node before continuing.

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 four dense sentences with no filler. It front-loads the core action and then spends each remaining sentence on high-value syntax or execution-mode 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?

An output schema exists, so return values need not be described, and the annotations cover the safety profile. The description adequately explains the complex sequence and stepped-execution behavior, but it leaves gaps around source selection, gapMs usage, and when to use this tool versus sibling input tools.

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 description coverage is only 33%, so the description must compensate. It gives essential meaning to the sequence grammar and to stepped.checks, which are otherwise opaque in the schema, though it does not explain gapMs, source, pollMs, or timeoutMs beyond what their names and schema defaults imply.

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 states a specific verb and resource: sending a timed sequence of Android keys and touchscreen taps in one call. It also distinguishes this from a simultaneous key chord by saying digits are millisecond pauses, not a chord, which helps separate it from sibling tools like mobile_input_key_combination.

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

Usage Guidelines3/5

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

The description implies usage for multi-action input in one call and explains the stepped.checks mode, but it never explicitly says when to choose this tool over mobile_input_key, mobile_input_tap, mobile_input_key_combination, or mobile_batch. The operational context is present, but alternative selection guidance is left to inference.

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