analyze_code_quality
Analyze code to detect potential issues and provide improvement suggestions for better quality and maintainability.
Instructions
分析代码质量,检测潜在问题和改进建议
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 要分析的代码内容 | |
| language | Yes | 编程语言 (javascript, typescript, python, java, etc.) | |
| filename | No | 文件名(可选) |
Implementation Reference
- src/tools/codeAnalyzer.ts:6-54 (handler)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) }; }
- src/index.ts:48-64 (schema)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':
- src/types/index.ts:6-31 (schema)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; }