Skip to main content
Glama
mobile-next

Mobile Next MCP Server

Official
by mobile-next

mobile_launch_app

Open specific mobile applications on iOS or Android devices by providing the app's package name and device identifier.

Instructions

Launch an app on mobile device. Use this to open a specific app. You can find the package name of the app by calling list_apps_on_device.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deviceYesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
packageNameYesThe package name of the app to launch

Implementation Reference

  • src/server.ts:266-279 (registration)
    Registration of the 'mobile_launch_app' MCP tool, including title, description, input schema (device ID and packageName), and the handler function.
    tool(
    	"mobile_launch_app",
    	"Launch App",
    	"Launch an app on mobile device. Use this to open a specific app. You can find the package name of the app by calling list_apps_on_device.",
    	{
    		device: z.string().describe("The device identifier to use. Use mobile_list_available_devices to find which devices are available to you."),
    		packageName: z.string().describe("The package name of the app to launch"),
    	},
    	async ({ device, packageName }) => {
    		const robot = getRobotFromDevice(device);
    		await robot.launchApp(packageName);
    		return `Launched app ${packageName}`;
    	}
    );
  • Zod input schema for the tool: device (string, device identifier), packageName (string, app package name).
    {
    	device: z.string().describe("The device identifier to use. Use mobile_list_available_devices to find which devices are available to you."),
    	packageName: z.string().describe("The package name of the app to launch"),
    },
  • Inline handler function: retrieves Robot instance for the device via getRobotFromDevice and invokes robot.launchApp(packageName).
    async ({ device, packageName }) => {
    	const robot = getRobotFromDevice(device);
    	await robot.launchApp(packageName);
    	return `Launched app ${packageName}`;
    }
  • AndroidRobot.launchApp: launches app using 'adb shell monkey -p {packageName} -c android.intent.category.LAUNCHER 1'.
    public async launchApp(packageName: string): Promise<void> {
    	try {
    		this.silentAdb("shell", "monkey", "-p", packageName, "-c", "android.intent.category.LAUNCHER", "1");
    	} catch (error) {
    		throw new ActionableError(`Failed launching app with package name "${packageName}", please make sure it exists`);
    	}
    }
  • IosRobot.launchApp: launches app using go-ios 'launch' command after asserting tunnel.
    public async launchApp(packageName: string): Promise<void> {
    	await this.assertTunnelRunning();
    	await this.ios("launch", packageName);
    }
  • MobileDevice.launchApp: launches app via mobilecli 'apps launch {packageName}' command.
    public async launchApp(packageName: string): Promise<void> {
    	this.runCommand(["apps", "launch", packageName]);
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mobile-next/mobile-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server