Skip to main content
Glama
renjismzy

Smart Code Reviewer

by renjismzy

analyze_code_quality

Analyze code to detect potential issues and provide improvement suggestions for better quality and maintainability.

Instructions

分析代码质量,检测潜在问题和改进建议

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYes要分析的代码内容
languageYes编程语言 (javascript, typescript, python, java, etc.)
filenameNo文件名(可选)

Implementation Reference

  • Core handler function that executes the analyze_code_quality tool logic: calculates LOC, detects issues using language-specific analyzers, computes metrics like complexity and maintainability index, and generates recommendations.
    export async function analyzeCodeQuality( code: string, language: string, filename?: string ): Promise<CodeAnalysisResult> { const issues: CodeIssue[] = []; const metrics: QualityMetrics = { linesOfCode: 0, complexity: 0, maintainabilityIndex: 0, duplicateLines: 0, testCoverage: 0 }; // 基础指标计算 const lines = code.split('\n'); metrics.linesOfCode = lines.filter(line => line.trim().length > 0).length; // 通用代码问题检测 await detectCommonIssues(code, language, issues); // 语言特定分析 switch (language.toLowerCase()) { case 'javascript': case 'typescript': await analyzeJavaScript(code, issues, metrics); break; case 'python': await analyzePython(code, issues, metrics); break; case 'java': await analyzeJava(code, issues, metrics); break; default: await analyzeGeneric(code, issues, metrics); } // 计算可维护性指数 metrics.maintainabilityIndex = calculateMaintainabilityIndex(metrics, issues.length); return { filename: filename || 'unknown', language, metrics, issues, overallScore: calculateOverallScore(metrics, issues), recommendations: generateRecommendations(issues, metrics) }; }
  • MCP input schema definition for the analyze_code_quality tool, specifying parameters: code (string, required), language (string, required), filename (string, optional).
    type: 'object', properties: { code: { type: 'string', description: '要分析的代码内容' }, language: { type: 'string', description: '编程语言 (javascript, typescript, python, java, etc.)' }, filename: { type: 'string', description: '文件名(可选)' } }, required: ['code', 'language'] }
  • src/index.ts:45-66 (registration)
    Tool registration in the ListTools response, defining name, description, and input schema.
    name: 'analyze_code_quality', description: '分析代码质量,检测潜在问题和改进建议', inputSchema: { type: 'object', properties: { code: { type: 'string', description: '要分析的代码内容' }, language: { type: 'string', description: '编程语言 (javascript, typescript, python, java, etc.)' }, filename: { type: 'string', description: '文件名(可选)' } }, required: ['code', 'language'] } }, {
  • src/index.ts:157-159 (registration)
    Dispatch registration in CallToolRequest handler switch statement.
    case 'analyze_code_quality': return await this.handleAnalyzeCodeQuality(args); case 'generate_documentation':
  • TypeScript type definitions for output structures: CodeAnalysisResult, QualityMetrics, CodeIssue used by the tool.
    export interface CodeAnalysisResult { filename: string; language: string; metrics: QualityMetrics; issues: CodeIssue[]; overallScore: number; recommendations: string[]; } export interface QualityMetrics { linesOfCode: number; complexity: number; maintainabilityIndex: number; duplicateLines: number; testCoverage: number; } export interface CodeIssue { type: 'style' | 'maintainability' | 'performance' | 'error-handling' | 'security'; severity: 'error' | 'warning' | 'info'; message: string; line: number; column: number; rule: string; suggestion?: string; }

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/renjismzy/mcp-code'

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