swift_package_clean
Removes Swift Package build artifacts and derived data to free disk space and resolve build issues by specifying the package path.
Instructions
Cleans Swift Package build artifacts and derived data
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| packagePath | Yes | Path to the Swift package root (Required) |
Implementation Reference
- src/tools/run-swift-package.ts:327-356 (handler)The main handler function that performs input validation, executes the 'swift package clean' command, handles output, and returns appropriate MCP tool responses.const pkgValidation = validateRequiredParam('packagePath', params.packagePath); if (!pkgValidation.isValid) return pkgValidation.errorResponse!; const resolvedPath = path.resolve(params.packagePath); const args: string[] = ['package', '--package-path', resolvedPath, 'clean']; log('info', `Running swift ${args.join(' ')}`); try { const result = await executeCommand(['swift', ...args], 'Swift Package Clean'); if (!result.success) { const errorMessage = result.error || result.output || 'Unknown error'; return createErrorResponse('Swift package clean failed', errorMessage, 'CleanError'); } return { content: [ { type: 'text', text: '✅ Swift package cleaned successfully.' }, { type: 'text', text: '💡 Build artifacts and derived data removed. Ready for fresh build.', }, { type: 'text', text: result.output || '(clean completed silently)' }, ], }; } catch (error) { const message = error instanceof Error ? error.message : String(error); log('error', `Swift package clean failed: ${message}`); return createErrorResponse('Failed to execute swift package clean', message, 'SystemError'); } },
- Zod schema defining the input parameters for the tool (requires packagePath).packagePath: z.string().describe('Path to the Swift package root (Required)'), },
- src/tools/run-swift-package.ts:319-358 (registration)Local registration function that registers the tool with the MCP server, including name, description, schema, and handler.registerTool( server, 'swift_package_clean', 'Cleans Swift Package build artifacts and derived data', { packagePath: z.string().describe('Path to the Swift package root (Required)'), }, async (params: { packagePath: string }): Promise<ToolResponse> => { const pkgValidation = validateRequiredParam('packagePath', params.packagePath); if (!pkgValidation.isValid) return pkgValidation.errorResponse!; const resolvedPath = path.resolve(params.packagePath); const args: string[] = ['package', '--package-path', resolvedPath, 'clean']; log('info', `Running swift ${args.join(' ')}`); try { const result = await executeCommand(['swift', ...args], 'Swift Package Clean'); if (!result.success) { const errorMessage = result.error || result.output || 'Unknown error'; return createErrorResponse('Swift package clean failed', errorMessage, 'CleanError'); } return { content: [ { type: 'text', text: '✅ Swift package cleaned successfully.' }, { type: 'text', text: '💡 Build artifacts and derived data removed. Ready for fresh build.', }, { type: 'text', text: result.output || '(clean completed silently)' }, ], }; } catch (error) { const message = error instanceof Error ? error.message : String(error); log('error', `Swift package clean failed: ${message}`); return createErrorResponse('Failed to execute swift package clean', message, 'SystemError'); } }, ); }
- src/utils/register-tools.ts:188-191 (registration)Top-level registration configuration that conditionally enables the tool based on the environment variable XCODEBUILDMCP_TOOL_SWIFT_PACKAGE_CLEAN.register: registerCleanSwiftPackageTool, groups: [ToolGroup.SWIFT_PACKAGE_WORKFLOW], envVar: 'XCODEBUILDMCP_TOOL_SWIFT_PACKAGE_CLEAN', },