cache-enable
Enable specific Magento 2 cache types to improve website performance and ensure proper functionality by activating selected caching mechanisms.
Instructions
Enable specific Magento 2 cache types
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| types | Yes | Cache types to enable |
Implementation Reference
- src/index.ts:238-257 (handler)The handler function for the 'cache-enable' tool. It constructs the 'magerun2 cache:enable' command using the input types and executes it with error handling and response formatting.async ({ types }) => { const command = `magerun2 cache:enable ${types.join(' ')}`; const result = await executeMagerun2Command(command); if (!result.success) { return { content: [{ type: "text", text: result.error }], isError: result.isError }; } return { content: [{ type: "text", text: `Cache types enabled:\n\n${result.data}` }] };
- src/index.ts:229-237 (schema)The input schema for the 'cache-enable' tool, defining an array of strings for cache types that must have at least one entry.{ title: "Cache Enable", description: "Enable specific Magento 2 cache types", inputSchema: { types: z.array(z.string()) .min(1) .describe("Cache types to enable") } },
- src/index.ts:227-258 (registration)The server.registerTool call that registers the 'cache-enable' MCP tool with its schema and handler.server.registerTool( "cache-enable", { title: "Cache Enable", description: "Enable specific Magento 2 cache types", inputSchema: { types: z.array(z.string()) .min(1) .describe("Cache types to enable") } }, async ({ types }) => { const command = `magerun2 cache:enable ${types.join(' ')}`; const result = await executeMagerun2Command(command); if (!result.success) { return { content: [{ type: "text", text: result.error }], isError: result.isError }; } return { content: [{ type: "text", text: `Cache types enabled:\n\n${result.data}` }] }; }
- src/index.ts:28-88 (helper)Shared helper function used by the cache-enable handler (and other tools) to execute magerun2 commands safely with timeout, JSON parsing option, and Magento-specific error handling.async function executeMagerun2Command(command: string, parseJson: boolean = false): Promise<{ success: true; data: any; rawOutput: string; } | { success: false; error: string; isError: true; }> { try { const { stdout, stderr } = await execAsync(command, { cwd: process.cwd(), timeout: 30000 // 30 second timeout }); if (stderr && stderr.trim()) { console.error("magerun2 stderr:", stderr); } if (parseJson) { try { return { success: true, data: JSON.parse(stdout), rawOutput: stdout }; } catch (parseError) { return { success: false, error: `Error parsing magerun2 JSON output: ${parseError}\n\nRaw output:\n${stdout}`, isError: true }; } } return { success: true, data: stdout.trim(), rawOutput: stdout }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); // Check if magerun2 is not found if (errorMessage.includes("command not found") || errorMessage.includes("not recognized")) { return { success: false, error: "Error: magerun2 command not found. Please ensure n98-magerun2 is installed and available in your PATH.\n\nInstallation instructions: https://github.com/netz98/n98-magerun2", isError: true }; } // Check if not in Magento directory if (errorMessage.includes("not a Magento installation") || errorMessage.includes("app/etc/env.php")) { return { success: false, error: "Error: Current directory does not appear to be a Magento 2 installation. Please run this command from your Magento 2 root directory.", isError: true }; } return { success: false, error: `Error executing magerun2 command: ${errorMessage}`, isError: true }; } }