launch_app
Launch Android apps by package name to start applications on connected devices. Specify device ID for multi-device setups or activity for non-default entry points.
Instructions
Launch an Android app by package name
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | App package name (e.g., com.android.settings) | |
| activity | No | Activity to launch (optional - launches default if omitted) | |
| device_id | No | Device ID (optional if only one device) |
Implementation Reference
- src/adb.ts:325-336 (handler)The core implementation of launchApp which executes shell commands to launch an Android app via ADB.
async launchApp(packageName: string, activity?: string, deviceId?: string): Promise<string> { if (activity) { return this.exec( ["shell", "am", "start", "-n", `${packageName}/${activity}`], deviceId, ); } return this.exec( ["shell", "monkey", "-p", packageName, "-c", "android.intent.category.LAUNCHER", "1"], deviceId, ); } - src/index.ts:459-471 (registration)MCP tool registration for launch_app, defining the input schema and calling the handler.
server.tool( "launch_app", "Launch an Android app by package name", { package_name: z.string().describe("App package name (e.g., com.android.settings)"), activity: z.string().optional().describe("Activity to launch (optional - launches default if omitted)"), device_id: z.string().optional().describe("Device ID (optional if only one device)"), }, async ({ package_name, activity, device_id }) => { const result = await adb.launchApp(package_name, activity, device_id); return { content: [{ type: "text", text: `Launched ${package_name}\n${result.trim()}` }] }; }, );