Skip to main content
Glama

Gemini MCP

by emmron
analysis-tools.js3.45 kB
import { aiClient } from '../ai/client.js'; import { validateString } from '../utils/validation.js'; import { storage } from '../storage/storage.js'; import fs from 'fs/promises'; import path from 'path'; export const analysisTools = { 'mcp__gemini__analyze_codebase': { description: 'Comprehensive codebase analysis with AI insights', parameters: { path: { type: 'string', description: 'Path to analyze', default: '.' }, includeAnalysis: { type: 'boolean', description: 'Include AI analysis', default: true }, reportType: { type: 'string', description: 'Report type', default: 'comprehensive' } }, handler: async (args) => { const { path: targetPath = '.', includeAnalysis = true, reportType = 'comprehensive' } = args; // Quick file analysis const analysis = { timestamp: new Date().toISOString(), path: targetPath, files: [], structure: {}, metrics: {}, insights: null }; try { // Get file list const files = await fs.readdir(targetPath, { recursive: true }); analysis.files = files.filter(f => !f.includes('node_modules')); // Calculate metrics analysis.metrics = { totalFiles: analysis.files.length, jsFiles: analysis.files.filter(f => f.endsWith('.js')).length, configFiles: analysis.files.filter(f => f.includes('package.json') || f.includes('.env')).length, testFiles: analysis.files.filter(f => f.includes('test') || f.includes('spec')).length }; if (includeAnalysis) { const prompt = `Analyze this codebase structure and provide insights: Files: ${analysis.files.slice(0, 50).join(', ')} Metrics: ${JSON.stringify(analysis.metrics, null, 2)} Provide: 1. Architecture assessment 2. Code quality observations 3. Security considerations 4. Performance insights 5. Improvement recommendations`; analysis.insights = await aiClient.call(prompt, 'analysis'); } } catch (error) { analysis.error = error.message; } const report = `📊 **Codebase Analysis** (${reportType}) **Path:** ${targetPath} **Files:** ${analysis.metrics.totalFiles} **JavaScript:** ${analysis.metrics.jsFiles} **Config:** ${analysis.metrics.configFiles} **Tests:** ${analysis.metrics.testFiles} ${analysis.insights || 'Basic analysis completed'} ${analysis.error ? `⚠️ **Error:** ${analysis.error}` : ''}`; return report; } }, 'mcp__gemini__debug_analysis': { description: 'AI-powered debugging assistance', parameters: { error: { type: 'string', description: 'Error message', required: true }, code: { type: 'string', description: 'Code where error occurs' }, language: { type: 'string', description: 'Programming language', default: 'javascript' } }, handler: async (args) => { const { error, code = '', language = 'javascript' } = args; validateString(error, 'error message'); const prompt = `Debug this ${language} error: **Error:** ${error} ${code ? `**Code:**\n\`\`\`${language}\n${code}\n\`\`\`` : ''} Provide: 1. Root cause analysis 2. Step-by-step debugging approach 3. Potential fixes with code examples 4. Prevention strategies 5. Common pitfalls to avoid`; const result = await aiClient.call(prompt, 'debug'); return `🐛 **Debug Analysis**\n\n${result}`; } } };

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