Skip to main content
Glama

boot_sim

Launches an iOS simulator by specifying its UUID using the boot_sim tool on the XcodeBuildMCP server. Ensures quick setup for testing and development tasks.

Instructions

Boots an iOS simulator. IMPORTANT: You MUST provide the simulatorUuid parameter. Example: boot_sim({ simulatorUuid: 'YOUR_UUID_HERE' })

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
simulatorUuidYesUUID of the simulator to use (obtained from list_simulators)

Implementation Reference

  • The main handler function that executes the boot_sim tool logic by invoking 'xcrun simctl boot' on the given simulatorId and returning success/error responses.
    export async function boot_simLogic(
      params: BootSimParams,
      executor: CommandExecutor,
    ): Promise<ToolResponse> {
      log('info', `Starting xcrun simctl boot request for simulator ${params.simulatorId}`);
    
      try {
        const command = ['xcrun', 'simctl', 'boot', params.simulatorId];
        const result = await executor(command, 'Boot Simulator', true);
    
        if (!result.success) {
          return {
            content: [
              {
                type: 'text',
                text: `Boot simulator operation failed: ${result.error}`,
              },
            ],
          };
        }
    
        return {
          content: [
            {
              type: 'text',
              text: `✅ Simulator booted successfully. To make it visible, use: open_sim()
    
    Next steps:
    1. Open the Simulator app (makes it visible): open_sim()
    2. Install an app: install_app_sim({ simulatorId: "${params.simulatorId}", appPath: "PATH_TO_YOUR_APP" })
    3. Launch an app: launch_app_sim({ simulatorId: "${params.simulatorId}", bundleId: "YOUR_APP_BUNDLE_ID" })`,
            },
          ],
        };
      } catch (error) {
        const errorMessage = error instanceof Error ? error.message : String(error);
        log('error', `Error during boot simulator operation: ${errorMessage}`);
        return {
          content: [
            {
              type: 'text',
              text: `Boot simulator operation failed: ${errorMessage}`,
            },
          ],
        };
      }
    }
  • Zod schema definition for boot_sim parameters (simulatorId) and public schema (empty after omitting simulatorId).
    const bootSimSchemaObject = z.object({
      simulatorId: z.string().describe('UUID of the simulator to use (obtained from list_sims)'),
    });
    
    type BootSimParams = z.infer<typeof bootSimSchemaObject>;
    
    const publicSchemaObject = bootSimSchemaObject
      .omit({
        simulatorId: true,
      } as const)
      .strict();
  • Tool registration exporting the boot_sim tool with name, description, schema, and wrapped handler.
    export default {
      name: 'boot_sim',
      description: 'Boots an iOS simulator.',
      schema: publicSchemaObject.shape,
      handler: createSessionAwareTool<BootSimParams>({
        internalSchema: bootSimSchemaObject,
        logicFunction: boot_simLogic,
        getExecutor: getDefaultCommandExecutor,
        requirements: [{ allOf: ['simulatorId'], message: 'simulatorId is required' }],
      }),
    };
Install Server

Other Tools

Related Tools

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/cameroncooke/XcodeBuildMCP'

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