mobile_get_screen_size
Retrieve mobile device screen dimensions in pixels to enable accurate UI automation and coordinate-based interactions for mobile testing.
Instructions
Get the screen size of the mobile device in pixels
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes | The device identifier to use. Use mobile_list_available_devices to find which devices are available to you. |
Implementation Reference
- src/server.ts:326-338 (registration)Registers the MCP tool 'mobile_get_screen_size' including input schema, description, and thin handler that delegates to the appropriate Robot instance's getScreenSize() method.tool( "mobile_get_screen_size", "Get Screen Size", "Get the screen size of the mobile device in pixels", { device: z.string().describe("The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.") }, async ({ device }) => { const robot = getRobotFromDevice(device); const screenSize = await robot.getScreenSize(); return `Screen size is ${screenSize.width}x${screenSize.height} pixels`; } );
- src/android.ts:102-115 (handler)AndroidRobot.getScreenSize(): Parses output from ADB 'wm size' command to get physical screen dimensions in pixels (scale=1).public async getScreenSize(): Promise<ScreenSize> { const screenSize = this.adb("shell", "wm", "size") .toString() .split(" ") .pop(); if (!screenSize) { throw new Error("Failed to get screen size"); } const scale = 1; const [width, height] = screenSize.split("x").map(Number); return { width, height, scale }; }
- src/mobile-device.ts:75-81 (handler)MobileDevice.getScreenSize(): Queries screen size via mobilecli 'device info' command for iOS simulators.public async getScreenSize(): Promise<ScreenSize> { const response = JSON.parse(this.runCommand(["device", "info"])) as DeviceInfoResponse; if (response.data.device.screenSize) { return response.data.device.screenSize; } return { width: 0, height: 0, scale: 1.0 }; }
- src/webdriver-agent.ts:79-100 (handler)WebDriverAgent.getScreenSize(): Fetches screen size from iOS device's WebDriverAgent server via /wda/screen endpoint (used by IosRobot).public async getScreenSize(sessionUrl?: string): Promise<ScreenSize> { if (sessionUrl) { const url = `${sessionUrl}/wda/screen`; const response = await fetch(url); const json = await response.json(); return { width: json.value.screenSize.width, height: json.value.screenSize.height, scale: json.value.scale || 1, }; } else { return this.withinSession(async sessionUrlInner => { const url = `${sessionUrlInner}/wda/screen`; const response = await fetch(url); const json = await response.json(); return { width: json.value.screenSize.width, height: json.value.screenSize.height, scale: json.value.scale || 1, }; }); }
- src/robot.ts:6-8 (schema)Type definition for ScreenSize returned by all Robot.getScreenSize() implementations.export interface ScreenSize extends Dimensions { scale: number; }