terminate-app
Forcefully close a specific app on an iOS simulator by providing the session ID and bundle ID, ensuring clean app termination for testing or debugging purposes.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | Yes | ||
| sessionId | Yes |
Implementation Reference
- src/mcp/mcp-server.ts:371-409 (registration)Registration of the 'terminate-app' MCP tool, including input schema (sessionId, bundleId) and inline handler that delegates to simulatorManager.terminateApp and formats MCP response.this.server.tool( 'terminate-app', { sessionId: z.string(), bundleId: z.string() }, async ({ sessionId, bundleId }) => { fileLogger.info(`Terminating app on simulator: ${sessionId}`, { bundleId }); try { const success = await simulatorManager.terminateApp(sessionId, bundleId); if (!success) { return { content: [{ type: 'text', text: `Failed to terminate app on session: ${sessionId}` }], isError: true }; } return { content: [{ type: 'text', text: `App terminated on session: ${sessionId}` }] }; } catch (error) { fileLogger.error(`Failed to terminate app on session: ${sessionId}`, { error }); return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } );
- Core handler logic in SimulatorManager: retrieves simulator session and calls session.simulator.terminateApp(bundleId) from appium-ios-simulator library.async terminateApp(sessionId: string, bundleId: string): Promise<boolean> { const session = this.sessions.get(sessionId); if (!session) { fileLogger.warn(`Session not found: ${sessionId}`); return false; } try { await session.simulator.terminateApp(bundleId); fileLogger.info(`App terminated on simulator for session: ${sessionId}`); return true; } catch (error) { fileLogger.error(`Failed to terminate app for session: ${sessionId}`, { error }); return false; } }
- src/mcp/mcp-server.ts:373-376 (schema)Zod schema for 'terminate-app' tool inputs: sessionId (string), bundleId (string).{ sessionId: z.string(), bundleId: z.string() },
- Type definition for the underlying simulator.terminateApp method called by the manager.terminateApp(bundleId: string): Promise<void>;