Skip to main content
Glama
run-sequence-android-mcp

run-sequence-android-mcp

by nasiosheva

Run Android Sequence

run_sequence

Executes ordered Android UI actions in one ADB shell, batching taps, swipes, keys, waits, and text input; stops on errors and can wait for accessibility elements.

Instructions

Run ordered Android actions, batching consecutive input commands in one ADB shell. Stops on errors; wait_for_element checks accessibility UI, not application success.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "steps": "<steps>"
    },
    "name": "run_sequence"
  }
}

Input Schema

NameRequiredDescriptionDefault
stepsYes
deviceNoDevice id (serial or host:port). Optional -- when omitted, uses ANDROID_MCP_DEVICE env or auto-selects the connected device (physical devices preferred over emulators).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.5/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 behavioral burden. It usefully discloses that execution stops on errors, that input commands are batched into one shell invocation, and that wait_for_element only verifies accessibility UI presence rather than application success — a genuinely non-obvious trap. It does not say what a stopped run returns, whether already-executed steps persist, or what permissions/device state are required.

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?

Two dense sentences, front-loaded with the core capability and followed by the two most consequential behavioral facts. No filler, no restatement of the tool name.

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

Completeness3/5

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

For a complex tool with a 100-item array of six step variants, no annotations, and no output schema, the description covers sequencing, batching, and error-stop semantics but says nothing about the result shape (which step failed, how far execution got). An agent can call it, but cannot reason confidently about failure recovery.

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 description adds no meaning for the `steps` or `device` parameters beyond what the schema already encodes; the device parameter already has its own schema description covering env fallback and auto-selection. The wait_for_element sentence does clarify how one step variant should be interpreted, which is modest added value, so it sits at the baseline for a partially covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb and resource — 'Run ordered Android actions' — plus the distinguishing mechanism, 'batching consecutive input commands in one ADB shell'. That differentiates it from the single-action siblings like android_tap or android_swipe, though it never names an alternative explicitly.

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?

Usage is only implied: the phrase 'ordered actions' and the batching detail suggest this is for multi-step flows where per-call latency matters, but there is no explicit 'use this when X, use android_tap when Y'. The wait_for_element note is a correctness caveat rather than routing guidance.

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