Skip to main content
Glama

android_create_avd

Create Android Virtual Devices (AVDs) for mobile app testing and development. Configure device specifications, system images, and storage to simulate real Android environments.

Instructions

Create a new Android Virtual Device (AVD)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesAVD name (alphanumeric and underscores only)
systemImageIdYesSystem image package ID
deviceNoDevice definition (optional)
sdcardNoSD card size (e.g., 512M, 1G)

Implementation Reference

  • Full tool registration and handler implementation for 'android_create_avd'. Validates input, executes 'avdmanager create avd' command with parameters, handles timeout and errors, returns structured success response with AVD details.
    tools.set('android_create_avd', { name: 'android_create_avd', description: 'Create a new Android Virtual Device (AVD)', inputSchema: { type: 'object', properties: { name: { type: 'string', minLength: 1, description: 'AVD name (alphanumeric and underscores only)' }, systemImageId: { type: 'string', minLength: 1, description: 'System image package ID' }, device: { type: 'string', description: 'Device definition (optional)' }, sdcard: { type: 'string', description: 'SD card size (e.g., 512M, 1G)' } }, required: ['name', 'systemImageId'] }, handler: async (args: any) => { const validation = AndroidAvdCreateSchema.safeParse(args); if (!validation.success) { throw new Error(`Invalid request: ${validation.error.message}`); } const { name, systemImageId, sdcard, device } = validation.data; // Validate AVD name (only alphanumeric and underscores) if (!/^[a-zA-Z0-9_]+$/.test(name)) { throw new Error('AVD name can only contain alphanumeric characters and underscores'); } const args_cmd = ['create', 'avd', '--name', name, '--package', systemImageId]; if (device) { args_cmd.push('--device', device); } if (sdcard) { args_cmd.push('--sdcard', sdcard); } const result = await processExecutor.execute('avdmanager', args_cmd, { timeout: 300000, // 5 minutes timeout }); if (result.exitCode !== 0) { throw new Error(`AVD creation failed: ${result.stderr}`); } return { success: true, data: { avdName: name, systemImage: systemImageId, output: result.stdout, }, }; } });
  • Zod schema for validating input parameters of android_create_avd tool: required name and systemImageId, optional device and sdcard.
    const AndroidAvdCreateSchema = z.object({ name: z.string().min(1), systemImageId: z.string().min(1), device: z.string().optional(), sdcard: z.string().optional(), });
  • Tool metadata registration in global TOOL_REGISTRY, categorizing it as ESSENTIAL Android tool requiring AVDMANAGER with performance expectations.
    'android_create_avd': { name: 'android_create_avd', category: ToolCategory.ESSENTIAL, platform: 'android', requiredTools: [RequiredTool.AVDMANAGER], description: 'Create new Android Virtual Device', safeForTesting: false, performance: { expectedDuration: 5000, timeout: 60000 } },
  • Mapping in validation script associating android_create_avd with required system tool 'avdmanager' for environment checks.
    'android_create_avd': 'avdmanager',

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/cristianoaredes/mcp-mobile-server'

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