Skip to main content
Glama
giri-jeedigunta

Test Analyzer MCP Server

analyze_test_setup

Analyze repository test setups to detect testing frameworks, identify test files, and examine configurations for JavaScript/TypeScript projects.

Instructions

Analyze the unit test setup of a repository, including framework detection, test file discovery, and configuration analysis

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repoPathYesPath to the repository to analyze

Implementation Reference

  • The primary handler function for the 'analyze_test_setup' tool. It validates input, detects the test framework, finds test files, analyzes test structure, retrieves coverage config and dependencies, and returns a comprehensive TestAnalysisResult.
    private async analyzeTestSetup(args: any) {
      if (!args.repoPath || typeof args.repoPath !== 'string') {
        throw new McpError(ErrorCode.InvalidParams, 'repoPath is required');
      }
    
      try {
        const repoPath = path.resolve(args.repoPath);
        
        // Check if path exists
        try {
          await fs.access(repoPath);
        } catch {
          throw new McpError(ErrorCode.InvalidParams, `Repository path does not exist: ${repoPath}`);
        }
    
        // Detect test framework
        const framework = await this.detectTestFramework(repoPath);
        
        // Find test files
        const testFiles = await this.findTestFiles(repoPath, framework);
        
        // Analyze test structure
        const testStructure = await this.analyzeTestStructure(testFiles);
        
        // Get coverage configuration
        const coverageConfig = await this.getCoverageConfig(repoPath, framework);
        
        // Get test dependencies
        const dependencies = await this.getTestDependencies(repoPath);
        
        const result: TestAnalysisResult = {
          framework: framework?.name || null,
          testFiles: testFiles.map(f => path.relative(repoPath, f)),
          testCount: testStructure.tests,
          coverageConfig,
          testStructure,
          dependencies,
          summary: this.generateTestSetupSummary({
            framework: framework?.name || null,
            testFiles,
            testStructure,
            coverageConfig,
            dependencies,
          }),
        };
    
        return {
          content: [
            {
              type: 'text',
              text: JSON.stringify(result, null, 2),
            },
          ],
        };
      } catch (error) {
        if (error instanceof McpError) throw error;
        
        return {
          content: [
            {
              type: 'text',
              text: `Error analyzing test setup: ${error instanceof Error ? error.message : String(error)}`,
            },
          ],
          isError: true,
        };
      }
    }
  • src/index.ts:105-118 (registration)
    Tool registration entry in the ListToolsRequestHandler response, defining the tool name, description, and input schema.
    {
      name: 'analyze_test_setup',
      description: 'Analyze the unit test setup of a repository, including framework detection, test file discovery, and configuration analysis',
      inputSchema: {
        type: 'object',
        properties: {
          repoPath: {
            type: 'string',
            description: 'Path to the repository to analyze',
          },
        },
        required: ['repoPath'],
      },
    },
  • src/index.ts:157-158 (registration)
    Dispatch case in the CallToolRequestHandler switch statement that routes calls to the analyzeTestSetup handler.
    case 'analyze_test_setup':
      return await this.analyzeTestSetup(request.params.arguments);
  • TypeScript interface defining the structure of the output returned by the analyze_test_setup tool.
    interface TestAnalysisResult {
      framework: string | null;
      testFiles: string[];
      testCount: number;
      coverageConfig: any;
      testStructure: {
        suites: number;
        tests: number;
        hooks: string[];
      };
      dependencies: string[];
      summary: string;

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/giri-jeedigunta/hello-mcp'

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