promotions_enable_rule
Enable a cart price rule by passing action parameters in JSON format. Manage promotions directly.
Instructions
Enable a cart price rule.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | Action parameters as a JSON object |
Implementation Reference
- src/actions/promotions.ts:194-210 (handler)The handler function for 'promotions.enable_rule' tool. Validates input via EnableRuleSchema, requires confirmation (risk tier), then calls Magento PUT /V1/salesRules/:rule_id with is_active: true.
// ── Enable Rule ─────────────────────────────────────────────────────── { name: 'promotions.enable_rule', description: 'Enable a cart price rule.', riskTier: RiskTier.Risk, requiresAuth: true, handler: async (params: Record<string, unknown>, context: ActionContext) => { const validated = EnableRuleSchema.parse(params); guardrails.requireConfirmation(RiskTier.Risk, params); const client = context.getClient(); const result = await client.put(`/V1/salesRules/${validated.rule_id}`, { rule: { rule_id: validated.rule_id, is_active: true }, }); return { message: 'Rule enabled successfully', rule: result }; }, }, - src/validation/schemas.ts:100-104 (schema)EnableRuleSchema: Zod schema defining input fields (rule_id as number, confirm literal true, reason string min 1) for enabling a rule.
export const EnableRuleSchema = z.object({ rule_id: z.number().int(), confirm: z.literal(true), reason: z.string().min(1), }); - src/index.ts:76-80 (registration)Registration: Action name 'promotions.enable_rule' is converted to 'promotions_enable_rule' (dots to underscores) and registered as an MCP tool via mcpServer.tool().
for (const action of allActions) { // Convert dots to underscores for MCP tool names (e.g. "auth.login" -> "auth_login") const toolName = action.name.replace(/\./g, '_'); mcpServer.tool( - src/index.ts:51-61 (registration)The action is collected into allActions array via createPromotionsActions(planStore, guardrails, config) at line 54.
const allActions: ActionDefinition[] = [ ...createAuthActions(sessionStore), ...createScopeActions(sessionStore), ...createPromotionsActions(planStore, guardrails, config), ...createCatalogActions(planStore, guardrails, idempotencyLedger, config), ...createPricingActions(planStore, guardrails, idempotencyLedger, config), ...createCmsActions(planStore, guardrails, config), ...createSeoActions(planStore, guardrails, config), ...createDiagnosticsActions(), ...createCacheActions(guardrails, config), ];