UNPKG

azureai-optimizer

Version:

AI-Powered Azure Infrastructure Optimization via Model Context Protocol

134 lines 3.93 kB
/** * Cost Analysis Tool * AI-powered Azure cost optimization analysis */ import { AuthContext } from '../auth/azure-auth.js'; import { Tool, ToolConfig } from './registry.js'; export interface CostAnalysisArgs { subscription_id: string; resource_group?: string; days_back?: number; include_recommendations?: boolean; granularity?: 'daily' | 'monthly'; group_by?: string[]; } export interface CostAnalysisResult { success: boolean; data: { cost_summary: { total_cost: number; currency: string; period: string; previous_period_cost?: number; cost_change_percentage?: number; }; cost_breakdown: { by_service: Array<{ service: string; cost: number; percentage: number; }>; by_resource_group?: Array<{ resource_group: string; cost: number; percentage: number; }>; by_location?: Array<{ location: string; cost: number; percentage: number; }>; }; trends: { daily_costs: Array<{ date: string; cost: number; }>; cost_trend: 'increasing' | 'decreasing' | 'stable'; anomalies: Array<{ date: string; cost: number; expected_cost: number; deviation: number; }>; }; ai_insights: { top_optimization_opportunities: Array<{ title: string; description: string; potential_savings: number; savings_percentage: number; complexity: 'Low' | 'Medium' | 'High'; risk_level: 'Low' | 'Medium' | 'High'; implementation_steps: string[]; }>; cost_drivers: string[]; recommendations_summary: string; }; advisor_recommendations?: Array<{ title: string; description: string; category: string; impact: string; potential_savings?: number; }>; }; metadata: { execution_time?: number; api_calls: number; data_freshness: string; }; } export declare class CostAnalysisTool implements Tool { name: string; description: string; inputSchema: { type: string; properties: { subscription_id: { type: string; description: string; }; resource_group: { type: string; description: string; }; days_back: { type: string; description: string; default: number; minimum: number; maximum: number; }; include_recommendations: { type: string; description: string; default: boolean; }; granularity: { type: string; enum: string[]; description: string; default: string; }; group_by: { type: string; items: { type: string; enum: string[]; }; description: string; }; }; required: string[]; }; private aiAnalyzer; private logger; constructor(config: ToolConfig); execute(args: CostAnalysisArgs, _context: AuthContext): Promise<CostAnalysisResult>; private processCostData; private analyzeCostTrend; private detectCostAnomalies; private calculateCostChange; } //# sourceMappingURL=cost-analysis.d.ts.map