mcp__gemini__quality_guardian
Monitor and analyze code quality trends, predict potential issues, and configure alerts for code performance, security, and maintainability on designated projects.
Instructions
Continuous quality monitoring and trend analysis with predictive quality metrics
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| alert_thresholds | No | Alert threshold configuration | |
| monitoring_frequency | No | Monitoring frequency | daily |
| project_path | Yes | Project path or identifier | |
| quality_aspects | No | Quality aspects to monitor |
Implementation Reference
- src/tools/business-tools.js:383-502 (handler)The main handler function executing the tool's logic: destructures args, validates input, loads historical data, generates AI prompt for quality analysis, calls AI client, simulates/computes quality score and trend, saves metrics, generates alerts, and formats/returns the report.handler: async (args) => { const { project_path, quality_aspects = ['code_quality', 'performance', 'security', 'maintainability'], monitoring_frequency = 'daily', alert_thresholds = {} } = args; validateString(project_path, 'project_path'); const timer = performanceMonitor.startTimer('quality_guardian'); // Load historical quality data const historicalData = await storage.read('quality_metrics'); const projectHistory = historicalData.projects?.[project_path] || []; const qualityPrompt = `Analyze current quality status and create monitoring framework: **Project**: ${project_path} **Quality Aspects**: ${quality_aspects.join(', ')} **Monitoring Frequency**: ${monitoring_frequency} Based on historical trends: ${projectHistory.length} previous measurements Create comprehensive quality assessment: 1. **Current Quality Baseline** ${quality_aspects.map(aspect => `- **${aspect}**: Current status and measurement`).join('\n ')} 2. **Quality Trends Analysis** - Historical performance patterns - Quality improvement/degradation trends - Correlation analysis between metrics - Seasonal or cyclical patterns 3. **Predictive Quality Model** - Quality trajectory predictions - Risk factors identification - Early warning indicators - Quality degradation alerts 4. **Monitoring Framework** - Automated quality checks - Continuous monitoring setup - Alert configuration and thresholds - Quality gate definitions 5. **Improvement Recommendations** - Priority quality issues - Improvement action plan - Resource allocation guidance - Success measurement criteria Provide specific metrics, thresholds, and actionable insights.`; const qualityAnalysis = await aiClient.call(qualityPrompt, 'analysis', { complexity: 'complex', maxTokens: 4000 }); // Generate quality score and trends const currentQualityScore = Math.random() * 40 + 60; // Simulate score 60-100 const trend = projectHistory.length > 0 ? (currentQualityScore - projectHistory[projectHistory.length - 1].score) : 0; // Save current measurement const qualityMeasurement = { timestamp: new Date().toISOString(), score: currentQualityScore, aspects: quality_aspects, monitoring_frequency, analysis: qualityAnalysis.substring(0, 1000) // Store summary }; if (!historicalData.projects) historicalData.projects = {}; if (!historicalData.projects[project_path]) historicalData.projects[project_path] = []; historicalData.projects[project_path].push(qualityMeasurement); // Keep only last 100 measurements per project if (historicalData.projects[project_path].length > 100) { historicalData.projects[project_path] = historicalData.projects[project_path].slice(-100); } await storage.write('quality_metrics', historicalData); // Generate alerts if needed const alerts = []; if (currentQualityScore < 70) { alerts.push('🔴 Quality Score Below Threshold (70)'); } if (trend < -5) { alerts.push('📉 Quality Declining Rapidly'); } if (projectHistory.length > 5) { const recentScores = projectHistory.slice(-5).map(m => m.score); const avgRecent = recentScores.reduce((a, b) => a + b, 0) / recentScores.length; if (currentQualityScore < avgRecent - 10) { alerts.push('⚠️ Quality Drop Detected'); } } timer.end(); return `🛡️ **Quality Guardian Report** (${monitoring_frequency}) **Project**: ${project_path} **Quality Score**: ${currentQualityScore.toFixed(1)}/100 ${trend > 0 ? '📈' : trend < 0 ? '📉' : '➡️'} (${trend > 0 ? '+' : ''}${trend.toFixed(1)}) **Monitoring**: ${quality_aspects.join(', ')} ${alerts.length > 0 ? `\n🚨 **Active Alerts**\n${alerts.map(alert => `- ${alert}`).join('\n')}\n` : '✅ **No Critical Issues Detected**\n'} --- 📊 **Quality Analysis** ${qualityAnalysis} --- 📈 **Historical Trends** (Last ${Math.min(projectHistory.length, 10)} measurements) ${projectHistory.slice(-10).map((m, i) => `${i + 1}. ${new Date(m.timestamp).toLocaleDateString()}: ${m.score.toFixed(1)}/100`).join('\n')} **Measurement saved for continuous monitoring and trend analysis.**`; }
- src/tools/business-tools.js:376-382 (schema)Tool description and input parameters schema defining the expected arguments: project_path (required), quality_aspects (array), monitoring_frequency, alert_thresholds.description: 'Continuous quality monitoring and trend analysis with predictive quality metrics', parameters: { project_path: { type: 'string', description: 'Project path or identifier', required: true }, quality_aspects: { type: 'array', description: 'Quality aspects to monitor', default: ['code_quality', 'performance', 'security', 'maintainability'] }, monitoring_frequency: { type: 'string', description: 'Monitoring frequency', default: 'daily' }, alert_thresholds: { type: 'object', description: 'Alert threshold configuration' } },
- src/tools/registry.js:244-248 (registration)The registerToolsFromModule method that iterates over the businessTools module (including quality_guardian) and registers each tool by calling registerTool with name, description, parameters, handler.registerToolsFromModule(toolsModule) { Object.entries(toolsModule).forEach(([name, tool]) => { this.registerTool(name, tool.description, tool.parameters, tool.handler); }); }
- src/tools/registry.js:238-238 (registration)Specific registration call for the businessTools module containing the mcp__gemini__quality_guardian tool.this.registerToolsFromModule(businessTools);
- src/tools/registry.js:8-8 (registration)Import of the businessTools module that defines the quality_guardian tool.import { businessTools } from './business-tools.js';