swift-package-manager
Manage, update, and resolve Swift package dependencies in Xcode projects using predefined commands like init, update, and clean. Streamline package operations for iOS development workflows.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | SPM 명령어 (init, update, resolve, reset, clean) | |
| extraArgs | No | 추가 SPM 인자들 | |
| packageDir | Yes | Swift Package 디렉토리 경로 |
Implementation Reference
- src/index.ts:457-495 (handler)The handler function that executes the 'swift package' command based on the input 'command' (init, update, resolve, reset, clean) in the specified package directory, handling output and errors.async ({ command, packageDir, extraArgs = [] }) => { try { console.error(`Swift Package Manager 명령 실행: ${command} in ${packageDir}`); let spmCommand = `cd "${packageDir}" && swift package ${command}`; // 추가 인자 추가 if (extraArgs.length > 0) { spmCommand += " " + extraArgs.join(" "); } console.error(`실행할 SPM 명령어: ${spmCommand}`); // 명령어 실행 try { const { stdout, stderr } = await executeCommand(spmCommand); let resultText = "Swift Package Manager 결과:\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(`Swift Package Manager 오류: ${error.message}`); return { content: [{ type: "text", text: `Swift Package Manager 명령 실행 중 오류가 발생했습니다:\n${error.message}\n${error.stderr || ''}` }], isError: true }; } }
- src/index.ts:452-456 (schema)Zod schema defining the input parameters: command (enum of SPM actions), packageDir (required string path), and optional extraArgs (array of strings).{ command: z.enum(["init", "update", "resolve", "reset", "clean"]).describe("SPM 명령어 (init, update, resolve, reset, clean)"), packageDir: z.string().describe("Swift Package 디렉토리 경로"), extraArgs: z.array(z.string()).optional().describe("추가 SPM 인자들") },
- src/index.ts:450-496 (registration)Registration of the swift-package-manager tool on the MCP server using server.tool, including schema and inline handler implementation.server.tool( "swift-package-manager", { command: z.enum(["init", "update", "resolve", "reset", "clean"]).describe("SPM 명령어 (init, update, resolve, reset, clean)"), packageDir: z.string().describe("Swift Package 디렉토리 경로"), extraArgs: z.array(z.string()).optional().describe("추가 SPM 인자들") }, async ({ command, packageDir, extraArgs = [] }) => { try { console.error(`Swift Package Manager 명령 실행: ${command} in ${packageDir}`); let spmCommand = `cd "${packageDir}" && swift package ${command}`; // 추가 인자 추가 if (extraArgs.length > 0) { spmCommand += " " + extraArgs.join(" "); } console.error(`실행할 SPM 명령어: ${spmCommand}`); // 명령어 실행 try { const { stdout, stderr } = await executeCommand(spmCommand); let resultText = "Swift Package Manager 결과:\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(`Swift Package Manager 오류: ${error.message}`); return { content: [{ type: "text", text: `Swift Package Manager 명령 실행 중 오류가 발생했습니다:\n${error.message}\n${error.stderr || ''}` }], isError: true }; } } );