Skip to main content
Glama

Launch Android app

mobile_app_launch

Launch an Android app activity on a chosen logical display and verify startup with ActivityManager wait diagnostics.

Instructions

Resolve and launch an activity on a logical display with ActivityManager wait diagnostics.

Input Schema

NameRequiredDescriptionDefault
serialYesExact ADB serial from mobile_devices_list; never inferred when multiple devices exist
userIdNocurrent
activityNo
displayIdYesAndroid framework logical display ID, not a SurfaceFlinger physical ID
packageNameYes

Output Schema

NameRequiredDescriptionDefault
dataYes
deviceYes
backendYes
displayNo
warningsYes
durationMsYes
operationIdYes
schemaVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.9.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv0.5.0

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare non-read-only, non-idempotent, non-destructive behavior. The description adds value with 'resolve' (implies failure if the activity/package cannot be resolved) and 'ActivityManager wait diagnostics' (implies it waits and reports diagnostics), which go beyond the annotations. It still omits what happens on a cold start, whether an existing instance is foregrounded, and any error surface.

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?

A single dense sentence with no filler, and the core action is front-loaded. It is efficient, though the trailing 'ActivityManager wait diagnostics' clause is jargon that a reader must decode.

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?

An output schema exists, so return values need not be described, and annotations cover the safety profile. What remains missing is routing guidance against lifecycle siblings and clarification of the packageName/activity/userId semantics, leaving the definition adequate but not self-sufficient.

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 coverage is only 40%, so the description should compensate, but it mainly echoes the displayId schema text ('logical display') and only vaguely gestures at 'activity'. It explains nothing about the tricky userId parameter or the interaction between packageName and the optional activity argument.

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?

States a specific verb (resolve and launch) and resource (an activity on a logical display) plus a behavioral detail (ActivityManager wait diagnostics). However, it gives no differentiation from close siblings like mobile_app_relaunch_on_displays, mobile_app_foreground, or mobile_app_stop, so an agent cannot route confidently between them from the description alone.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives, despite the crowding of app-lifecycle siblings (relaunch_on_displays, foreground, stop). No prerequisites, no conditions, no exclusions are given.

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