@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
56 lines • 2.17 kB
JavaScript
/**
* Get Flag Entities Tool - Individual Module
* @description Retrieves flag-related entities with relationship queries
* @since 2025-08-04
* @author Tool Modularization Team
*
* Migration Status: COMPLETED
* Original Method: OptimizelyMCPTools.getFlagEntities
* Complexity: MEDIUM
* Dependencies: logger, errorMapper, apiClient
*/
/**
* Creates the Get Flag Entities tool with injected dependencies
* @param deps - Injected dependencies (storage, logger, errorMapper, etc.)
* @returns Tool definition with handler
*/
export function createGetFlagEntitiesTool(deps) {
return {
name: 'get_flag_entities',
requiresCache: true,
category: 'discovery',
description: 'Get all entities associated with a specific flag',
handler: async (args) => {
const { project_id: projectId, flag_id: flagId } = args;
try {
deps.logger.debug({
projectId,
flagId
}, 'OptimizelyMCPTools.getFlagEntities: Getting flag entities');
const entities = await deps.apiClient.getFlagEntities(projectId, flagId);
deps.logger.debug({
projectId,
flagId,
entityCount: entities.length
}, 'OptimizelyMCPTools.getFlagEntities: Successfully retrieved flag entities');
return {
project_id: projectId,
flag_id: flagId,
entities: entities,
total_count: entities.length,
entity_types: [...new Set(entities.map((e) => e.type))],
generated_at: new Date().toISOString()
};
}
catch (error) {
deps.logger.error({
projectId,
flagId,
error: error.message
}, 'OptimizelyMCPTools.getFlagEntities: Failed to get flag entities');
throw deps.errorMapper.toMCPError(error, 'Failed to get flag entities');
}
}
};
}
//# sourceMappingURL=GetFlagEntities.js.map