Skip to main content
Glama
Amodh2022

flutter-bridge-mcp

by Amodh2022

launch_app

Start an Android app on a connected device, optionally clearing its data to simulate a first-run test. Specify an activity or device serial when needed.

Instructions

Launch an app, optionally from a clean state.

Args: package: application id, e.g. com.example.app. activity: fully qualified activity to start instead of the launcher entry point. clear_data: wipe the app's data first, for a true first-run test. serial: device serial when several are attached.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serialNo
packageYes
activityNo
clear_dataNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the clear_data side effect ('wipe the app's data first') and the activity override behavior, which is useful. However, it doesn't mention whether launching is a blocking call, whether it returns immediately, what happens if the app is already running, or any permission requirements. The description adds some behavioral context but not comprehensive transparency.

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 description is compact and front-loaded with the main purpose, followed by a concise parameter list. Every sentence earns its place. The Args section is slightly redundant with the schema but adds semantic value. It could be slightly more structured (e.g., separating the main description from parameter docs), but it's efficient overall.

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?

The tool has an output schema (not shown in detail) and 4 parameters with 0% schema coverage. The description covers all parameters and the core behavior, but lacks context about return values, error cases (e.g., app not installed), and interaction with siblings like stop_app or flutter_connect. For a launch tool, an agent might need to know if it should check device_info or list_devices first, or how to handle failures. The description is adequate but not complete.

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 0%, so the description must compensate. It does: it explains package as 'application id', activity as 'fully qualified activity to start instead of the launcher entry point', clear_data as 'wipe the app's data first', and serial as 'device serial when several are attached'. This adds real meaning beyond the bare schema titles. The only minor gap is not explaining the default behavior when activity is null (launcher entry point is implied but not explicit).

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 uses a specific verb ('Launch') with a clear resource ('an app') and immediately distinguishes the optional clean-state behavior. It names the key parameter (package) and the optional activity override, which differentiates it from sibling tools like stop_app, tap, or swipe. The purpose is unambiguous.

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 context (launching an app, optionally from a clean state) but does not explicitly state when to use this tool versus alternatives. It doesn't mention that stop_app is the inverse, or that flutter_connect/flutter_attach are for Flutter-specific launches. The clean-state hint ('for a true first-run test') gives some context, but no explicit when/when-not guidance.

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