UNPKG

@simonecoelhosfo/optimizely-mcp-server

Version:

Optimizely MCP Server for AI assistants with integrated CLI tools

44 lines 2 kB
/** * Manage Flag State Tool - Individual Module * @description Handles flag state management and rule updates * @since 2025-08-04 * @author Tool Modularization Team * * Migration Status: COMPLETED * Original Method: OptimizelyMCPTools.manageFlagState * Complexity: MEDIUM * Dependencies: logger, errorMapper, manageEntityLifecycle */ /** * Creates the Manage Flag State tool with injected dependencies * @param deps - Injected dependencies (storage, logger, errorMapper, etc.) * @returns Tool definition with handler */ export function createManageFlagStateTool(deps) { return { name: 'manage_flag_state', requiresCache: true, category: 'management', description: 'Consolidated tool for enabling or disabling feature flags. Replaces the separate enable_flag and disable_flag tools.', handler: async (args) => { // Validate required parameters if (!args.project_id || !args.flag_key || !args.environment_key || !args.action) { throw new Error('Missing required parameters: project_id, flag_key, environment_key, and action are required'); } // Validate action parameter if (!['enable', 'disable'].includes(args.action)) { throw new Error(`Invalid action: ${args.action}. Must be 'enable' or 'disable'`); } deps.logger.info('OptimizelyMCPTools.manageFlagState: Managing flag state', { project_id: args.project_id, flag_key: args.flag_key, environment_key: args.environment_key, action: args.action }); // Route to manageEntityLifecycle with the appropriate operation return deps.manageEntityLifecycle(args.action, 'flag', undefined, // entityData not needed for enable/disable args.flag_key, args.project_id, { environment_key: args.environment_key }); } }; } //# sourceMappingURL=ManageFlagState.js.map