Skip to main content
Glama

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
NameRequiredDescriptionDefault
alert_thresholdsNoAlert threshold configuration
monitoring_frequencyNoMonitoring frequencydaily
project_pathYesProject path or identifier
quality_aspectsNoQuality aspects to monitor

Implementation Reference

  • 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.**`; }
  • 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' } },
  • 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); }); }
  • Specific registration call for the businessTools module containing the mcp__gemini__quality_guardian tool.
    this.registerToolsFromModule(businessTools);
  • Import of the businessTools module that defines the quality_guardian tool.
    import { businessTools } from './business-tools.js';

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/emmron/gemini-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server