Skip to main content
Glama
elgentos

Magento 2 Development MCP Server

by elgentos

dev-module-list

List all Magento 2 modules and their activation status to manage module visibility and functionality in your development environment.

Instructions

List all Magento 2 modules and their status

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
disabledNoShow only disabled modules
enabledNoShow only enabled modules
formatNoOutput formattable

Implementation Reference

  • Handler function that builds and executes the `magerun2 dev:module:list` command based on input parameters (format, enabled, disabled flags), handles the result with JSON parsing if needed, and returns formatted text content or error.
    async ({ format = "table", enabled, disabled }) => { let command = `magerun2 dev:module:list --format=${format}`; if (enabled) { command += ' --enabled'; } else if (disabled) { command += ' --disabled'; } const result = await executeMagerun2Command(command, format === "json"); if (!result.success) { return { content: [{ type: "text", text: result.error }], isError: true }; } const responseText = format === "json" ? `Module list (${format} format):\n\n${JSON.stringify(result.data, null, 2)}` : `Module list (${format} format):\n\n${result.data}`; return { content: [{ type: "text", text: responseText }] }; }
  • Tool metadata including title, description, and Zod inputSchema defining optional parameters for output format and module status filters.
    { title: "Module List", description: "List all Magento 2 modules and their status", inputSchema: { format: z.enum(["table", "json", "csv"]) .default("table") .describe("Output format"), enabled: z.boolean() .optional() .describe("Show only enabled modules"), disabled: z.boolean() .optional() .describe("Show only disabled modules") }
  • src/index.ts:382-431 (registration)
    Full server.registerTool invocation registering the 'dev-module-list' tool with its schema and inline handler implementation.
    server.registerTool( "dev-module-list", { title: "Module List", description: "List all Magento 2 modules and their status", inputSchema: { format: z.enum(["table", "json", "csv"]) .default("table") .describe("Output format"), enabled: z.boolean() .optional() .describe("Show only enabled modules"), disabled: z.boolean() .optional() .describe("Show only disabled modules") } }, async ({ format = "table", enabled, disabled }) => { let command = `magerun2 dev:module:list --format=${format}`; if (enabled) { command += ' --enabled'; } else if (disabled) { command += ' --disabled'; } const result = await executeMagerun2Command(command, format === "json"); if (!result.success) { return { content: [{ type: "text", text: result.error }], isError: true }; } const responseText = format === "json" ? `Module list (${format} format):\n\n${JSON.stringify(result.data, null, 2)}` : `Module list (${format} format):\n\n${result.data}`; return { content: [{ type: "text", text: responseText }] }; } );
  • Shared helper function used by dev-module-list (and other tools) to safely execute magerun2 CLI commands, handle timeouts, stderr, JSON parsing, and provide Magento-specific error messages.
    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 }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/elgentos/magento2-dev-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server