install-app
Install iOS apps directly on simulators using session ID and app path. Enables programmatic app installation via the MCP Server for iOS Simulator.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appPath | Yes | ||
| sessionId | Yes |
Implementation Reference
- src/mcp/mcp-server.ts:289-327 (registration)Full registration of the 'install-app' tool, including inline Zod schema for inputs (sessionId, appPath) and the handler function that delegates to simulatorManager.installAppthis.server.tool( 'install-app', { sessionId: z.string(), appPath: z.string() }, async ({ sessionId, appPath }) => { fileLogger.info(`Installing app on simulator: ${sessionId}`, { appPath }); try { const success = await simulatorManager.installApp(sessionId, appPath); if (!success) { return { content: [{ type: 'text', text: `Failed to install app on session: ${sessionId}` }], isError: true }; } return { content: [{ type: 'text', text: `App installed on session: ${sessionId}` }] }; } catch (error) { fileLogger.error(`Failed to install app on session: ${sessionId}`, { error }); return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } );
- src/mcp/mcp-server.ts:295-326 (handler)The inline handler function for the 'install-app' MCP tool that performs the installation by calling simulatorManager.installApp and handles success/error responsesasync ({ sessionId, appPath }) => { fileLogger.info(`Installing app on simulator: ${sessionId}`, { appPath }); try { const success = await simulatorManager.installApp(sessionId, appPath); if (!success) { return { content: [{ type: 'text', text: `Failed to install app on session: ${sessionId}` }], isError: true }; } return { content: [{ type: 'text', text: `App installed on session: ${sessionId}` }] }; } catch (error) { fileLogger.error(`Failed to install app on session: ${sessionId}`, { error }); return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } }
- src/mcp/mcp-server.ts:292-294 (schema)Zod input schema for 'install-app' tool: requires sessionId (string) and appPath (string)sessionId: z.string(), appPath: z.string() },
- Supporting method in SimulatorManager that retrieves the simulator session and calls the underlying appium-ios-simulator library's installApp methodasync installApp(sessionId: string, appPath: string): Promise<boolean> { const session = this.sessions.get(sessionId); if (!session) { fileLogger.warn(`Session not found: ${sessionId}`); return false; } try { await session.simulator.installApp(appPath); fileLogger.info(`App installed on simulator for session: ${sessionId}`); return true; } catch (error) { fileLogger.error(`Failed to install app for session: ${sessionId}`, { error }); return false; } }