Skip to main content
Glama

Test Analyzer MCP Server

README.md7.34 kB
# 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" />

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