Skip to main content
Glama
mobile-next

Mobile Next MCP Server

Official
by mobile-next

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
NameRequiredDescriptionDefault
deviceYesThe 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`;
    	}
    );
  • 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 };
    }
  • 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 };
    }
  • 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,
    			};
    		});
    	}
  • Type definition for ScreenSize returned by all Robot.getScreenSize() implementations.
    export interface ScreenSize extends Dimensions {
    	scale: number;
    }

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