simctl-manager
Manages iOS simulators through simctl commands to list, create, boot, shutdown, erase, install apps, launch apps, or delete simulators for Xcode development workflows.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | SimCtl 명령어 | |
| extraArgs | No | 추가 simctl 인자들 |
Implementation Reference
- src/index.ts:499-544 (registration)Registration of the 'simctl-manager' tool using server.tool(), including inline schema and handler.server.tool( "simctl-manager", { command: z.enum(["list", "create", "boot", "shutdown", "erase", "install", "launch", "delete"]).describe("SimCtl 명령어"), extraArgs: z.array(z.string()).optional().describe("추가 simctl 인자들") }, async ({ command, extraArgs = [] }) => { try { console.error(`SimCtl 명령 실행: ${command}`); let simctlCommand = `xcrun simctl ${command}`; // 추가 인자 추가 if (extraArgs.length > 0) { simctlCommand += " " + extraArgs.join(" "); } console.error(`실행할 SimCtl 명령어: ${simctlCommand}`); // 명령어 실행 try { const { stdout, stderr } = await executeCommand(simctlCommand); let resultText = "SimCtl 결과:\n"; if (stdout) resultText += `${stdout}\n`; if (stderr) resultText += `${stderr}\n`; return { content: [{ type: "text", text: resultText }] }; } catch (error: any) { throw error; } } catch (error: any) { console.error(`SimCtl 오류: ${error.message}`); return { content: [{ type: "text", text: `SimCtl 명령 실행 중 오류가 발생했습니다:\n${error.message}\n${error.stderr || ''}` }], isError: true }; } } );
- src/index.ts:505-543 (handler)Handler function that constructs 'xcrun simctl [command] [extraArgs]' and executes it via executeCommand, returning stdout/stderr as text content or error.async ({ command, extraArgs = [] }) => { try { console.error(`SimCtl 명령 실행: ${command}`); let simctlCommand = `xcrun simctl ${command}`; // 추가 인자 추가 if (extraArgs.length > 0) { simctlCommand += " " + extraArgs.join(" "); } console.error(`실행할 SimCtl 명령어: ${simctlCommand}`); // 명령어 실행 try { const { stdout, stderr } = await executeCommand(simctlCommand); let resultText = "SimCtl 결과:\n"; if (stdout) resultText += `${stdout}\n`; if (stderr) resultText += `${stderr}\n`; return { content: [{ type: "text", text: resultText }] }; } catch (error: any) { throw error; } } catch (error: any) { console.error(`SimCtl 오류: ${error.message}`); return { content: [{ type: "text", text: `SimCtl 명령 실행 중 오류가 발생했습니다:\n${error.message}\n${error.stderr || ''}` }], isError: true }; } }
- src/index.ts:502-504 (schema)Input schema using Zod: required 'command' enum for simctl actions, optional array of extra arguments.command: z.enum(["list", "create", "boot", "shutdown", "erase", "install", "launch", "delete"]).describe("SimCtl 명령어"), extraArgs: z.array(z.string()).optional().describe("추가 simctl 인자들") },