Skip to main content
Glama
giri-jeedigunta

Test Analyzer MCP Server

README.md
# Test Analyzer MCP Server

A Model Context Protocol (MCP) server that provides tools for analyzing unit test setups, checking coverage, and generating comprehensive test reports for JavaScript/TypeScript projects.

## Features

- 🔍 **Framework Detection**: Automatically detects Jest, Vitest, Mocha, Cypress, and Playwright
- 📊 **Coverage Analysis**: Detailed coverage metrics with visual feedback
- 📁 **Test Discovery**: Finds and analyzes all test files in your project
- 🎯 **Smart Recommendations**: Actionable insights to improve your testing strategy
- 🚀 **Frontend Focused**: Optimized for React, Vue, Angular, and other frontend frameworks

## Installation

The server is already configured in your MCP settings at:
```
/Users/venkatagiribabu.jeedigunta/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
```

## Available Tools

### 1. `analyze_test_setup`

Analyzes the complete unit test setup of a repository.

**Parameters:**
- `repoPath` (required): Path to the repository to analyze

**Returns:**
- Framework name (jest, vitest, mocha, etc.)
- List of test files found
- Total test count
- Test structure (suites, tests, hooks)
- Coverage configuration
- Testing dependencies
- Summary report

### 2. `check_coverage`

Checks test coverage for a repository with detailed metrics.

**Parameters:**
- `repoPath` (required): Path to the repository
- `runTests` (optional, default: false): Whether to run tests to generate fresh coverage data

**Returns:**
- Line coverage percentage
- Statement coverage percentage
- Function coverage percentage
- Branch coverage percentage
- Visual status indicators (✅ Good, ⚠️ Fair, ❌ Poor)
- Overall coverage summary

### 3. `get_test_summary`

Generates a comprehensive test analysis report.

**Parameters:**
- `repoPath` (required): Path to the repository

**Returns:**
- Complete test setup overview
- Coverage metrics with visual feedback
- Categorized dependencies
- Actionable recommendations
- Markdown-formatted report

## Sample Queries

Here are example queries you can use with Claude when this MCP server is active:

### Basic Analysis
```
"Analyze the test setup for the project at /Users/me/projects/my-react-app"

"Check what testing framework is being used in /path/to/project"

"Find all test files in my current project"
```

### Coverage Analysis
```
"Check the test coverage for /Users/me/projects/my-app"

"Run tests and get fresh coverage data for the project at /path/to/repo"

"What's the current test coverage status? Is it meeting the thresholds?"
```

### Comprehensive Reports
```
"Give me a complete test analysis report for /Users/me/projects/frontend-app"

"Generate a test summary with recommendations for improving coverage"

"Analyze the testing setup and suggest improvements"
```

### Specific Inquiries
```
"How many tests are in the project at /path/to/repo?"

"What testing dependencies are installed in this project?"

"Is coverage reporting configured properly?"

"Which test files have been created in this project?"
```

## Supported Test Frameworks

### Unit Testing
- **Jest** - Detected via jest.config.js, package.json
- **Vitest** - Detected via vitest.config.js, vite.config.js
- **Mocha** - Detected via .mocharc.js, .mocharc.json

### E2E Testing
- **Cypress** - Detected via cypress.config.js, cypress.json
- **Playwright** - Detected via playwright.config.js

## Supported Coverage Tools

- **Jest Coverage** (built-in)
- **NYC/Istanbul** (.nycrc, .nycrc.json)
- **C8** (V8 coverage)
- **Vitest Coverage** (@vitest/coverage-c8, @vitest/coverage-istanbul)

## Test File Patterns

The server automatically detects test files matching these patterns:
- `**/*.test.{js,jsx,ts,tsx}`
- `**/*.spec.{js,jsx,ts,tsx}`
- `**/__tests__/**/*.{js,jsx,ts,tsx}`
- `test/**/*.{js,jsx,ts,tsx}` (Mocha)
- `cypress/integration/**/*` (Cypress)
- `cypress/e2e/**/*` (Cypress)
- `**/*.cy.{js,jsx,ts,tsx}` (Cypress component tests)
- `tests/**/*.{js,jsx,ts,tsx}` (Playwright)
- `e2e/**/*.{js,jsx,ts,tsx}` (E2E tests)

## Coverage Thresholds

The server evaluates coverage based on these thresholds:
- ✅ **Good**: ≥ 80% coverage
- ⚠️ **Fair**: ≥ 60% coverage
- ❌ **Poor**: < 60% coverage

## Example Output

### Test Setup Analysis
```json
{
  "framework": "jest",
  "testFiles": ["src/__tests__/utils.test.js", "src/components/Button.test.tsx"],
  "testCount": 25,
  "testStructure": {
    "suites": 10,
    "tests": 25,
    "hooks": ["beforeEach", "afterEach"]
  },
  "dependencies": ["jest@29.5.0", "@testing-library/react@14.0.0"]
}
```

### Coverage Report
```
Coverage Summary:
- Lines: 85.5% ✅ Good
- Statements: 84.2% ✅ Good
- Functions: 78.9% ⚠️ Fair
- Branches: 72.3% ⚠️ Fair

Overall: ⚠️ Fair
```

### Recommendations
```
## Recommendations

- 🟡 Branch coverage is below 80%. Add tests for different code paths.
- 🟡 Function coverage could be improved. Consider testing utility functions.
- ✅ Line coverage is good! Keep maintaining high standards.
```

## Advanced Usage

### Analyzing Multiple Projects
You can analyze multiple projects in sequence:
```
"First analyze tests for /project1, then compare with /project2"
```

### CI/CD Integration Ideas
```
"Check if the coverage meets our 80% threshold for CI"
"Generate a test report for the pull request review"
```

### Test Improvement Workflow
```
1. "Analyze current test setup"
2. "Check which files have low coverage"
3. "Suggest test cases for uncovered branches"
4. "Re-run coverage after adding tests"
```

## Troubleshooting

### No Framework Detected
- Ensure package.json exists in the repository
- Check if test framework is in devDependencies
- Verify configuration files are present

### No Coverage Data Found
- Run tests with `runTests: true` parameter
- Ensure coverage is configured in test framework
- Check if coverage directory exists after running tests

### No Test Files Found
- Verify test files follow common naming patterns
- Check if tests are in excluded directories (node_modules, dist, build)
- Ensure file extensions match (.test.js, .spec.ts, etc.)

## Development

### Adding New Frameworks
To support additional test frameworks, update the `frameworks` array in the server implementation with:
- Framework name
- Configuration file patterns
- Test file patterns

### Extending Coverage Support
The server can be extended to support additional coverage formats by:
- Adding new file patterns to `coverageFiles` array
- Implementing parsers for specific coverage formats
- Supporting additional coverage reporters

## License

ISC

## Author
Giri - https://github.com/giri-jeedigunta/

## Cline MCP screenshots 

<img width="654" height="674" alt="Screenshot 2025-08-14 at 14 27 22" src="https://github.com/user-attachments/assets/7503569f-afda-4587-8267-72c6323729af" />
<img width="820" height="221" alt="Screenshot 2025-08-14 at 14 26 11" src="https://github.com/user-attachments/assets/494ea61a-f25e-4b1f-a215-74676ccae57d" />
<img width="808" height="561" alt="Screenshot 2025-08-14 at 14 26 03" src="https://github.com/user-attachments/assets/f2855b21-76bf-48bd-94c5-435a610e1c10" />
<img width="812" height="818" alt="Screenshot 2025-08-14 at 14 25 43" src="https://github.com/user-attachments/assets/c0f29b81-b3c5-4f50-9045-57c00df3c359" />

TDQS

C2.9/5.0

Scored across 3 tools

Disambiguation3/5

The tools have overlapping purposes that could cause confusion. 'analyze_test_setup' and 'get_test_summary' both provide analysis of test setups, with the summary tool potentially duplicating aspects of the setup analysis. However, 'check_coverage' is clearly distinct in focusing on coverage metrics, and descriptions help differentiate the overlapping tools to some extent.

Naming Consistency4/5

The naming follows a mostly consistent verb_noun pattern (analyze_test_setup, check_coverage, get_test_summary), with all tools using snake_case. There is a minor deviation in verb choice ('analyze', 'check', 'get'), but the pattern remains readable and predictable across the set.

Tool Count2/5

With only 3 tools, the server feels thin for its apparent scope of test analysis. A typical test analysis domain would benefit from more operations, such as running tests, generating reports, or handling specific test frameworks. The limited count suggests incomplete coverage of potential agent workflows.

Completeness2/5

There are significant gaps in the tool surface for test analysis. Missing operations include running tests, debugging failures, managing test data, or integrating with CI/CD. The tools focus only on setup analysis, coverage checking, and summarization, leaving out core actions that agents would need for comprehensive test handling.

Maintenance

ActivityInactive
ResponsivenessNo issues