Skip to main content
Glama
giri-jeedigunta

Test Analyzer MCP Server

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

Related MCP server: Ultra Debugger

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

{
  "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

Available Tools

3 tools
analyze_test_setupC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
repoPathYesPath to the repository to analyze

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool does ('analyze', 'detection', 'discovery', 'analysis') but doesn't cover key traits like whether it's read-only, if it modifies files, permission requirements, rate limits, or output format. This leaves significant gaps for an agent to understand its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the main purpose ('Analyze the unit test setup of a repository') and adds specifics without waste. Every word earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (analyzing test setups with multiple aspects) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the analysis returns, potential side effects, or error conditions, leaving the agent with insufficient context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with 'repoPath' clearly documented. The description adds no additional parameter details beyond what the schema provides, such as format examples or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('analyze', 'detection', 'discovery', 'analysis') and resources ('unit test setup', 'repository'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'check_coverage' or 'get_test_summary', which might have overlapping scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus its siblings ('check_coverage', 'get_test_summary'), such as whether it's for initial setup analysis versus ongoing monitoring. It implies usage through context but lacks explicit when/when-not or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_coverageC

Check test coverage for a repository and provide detailed metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
repoPathYesPath to the repository
runTestsNoWhether to run tests to generate fresh coverage data

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions checking coverage and providing metrics but does not disclose key behavioral traits such as whether this is a read-only operation, if it requires specific permissions, potential performance impacts, or how it handles errors. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, consisting of a single sentence that directly states the tool's purpose. It avoids unnecessary words and gets straight to the point, making it efficient. However, it could be slightly improved by structuring it to include usage context or behavioral hints without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of checking test coverage (which may involve running tests and generating metrics), the lack of annotations, and no output schema, the description is incomplete. It does not explain what 'detailed metrics' include, how results are returned, or any limitations. For a tool with no structured behavioral data, the description should provide more context to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for both parameters ('repoPath' and 'runTests'). The description does not add any semantic details beyond what the schema provides, such as explaining the implications of 'runTests' or format expectations for 'repoPath'. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check test coverage for a repository and provide detailed metrics.' It specifies the verb ('check'), resource ('test coverage for a repository'), and outcome ('detailed metrics'), making it easy to understand what the tool does. However, it does not explicitly differentiate from sibling tools like 'analyze_test_setup' or 'get_test_summary', which might also relate to testing, so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools, prerequisites, or specific contexts for usage. Without any usage guidelines, the agent must infer when to select this tool based on the purpose alone, which is insufficient for optimal tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_summaryC

Get a comprehensive summary of the test setup, coverage, and recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
repoPathYesPath to the repository

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'get a comprehensive summary' but doesn't specify if this is a read-only operation, requires permissions, has rate limits, or details the return format. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose without unnecessary details. It earns its place by clearly stating what the tool does, though it could be slightly more structured to include usage hints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns complex data (e.g., test summaries). It doesn't explain what 'comprehensive summary' entails, such as structure or key fields, leaving the agent with insufficient context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with 'repoPath' clearly documented as 'Path to the repository'. The description adds no additional meaning beyond this, such as format examples or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('get a comprehensive summary') and resources ('test setup, coverage, and recommendations'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'analyze_test_setup' or 'check_coverage', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like the sibling tools. It lacks explicit instructions on context, prerequisites, or exclusions, leaving the agent to infer usage based on the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

C2.9/5.0
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
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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