Test Reporter MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Test Reporter MCP ServerWhy is checkout.spec.js flaky?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Test Reporter MCP Server
MCP (Model Context Protocol) server for Test Ledger that enables Claude Code to analyze flaky tests, find failure patterns, suggest fixes and more.
Installation
No installation required! Just add the configuration to Claude Code.
Related MCP server: Tesults MCP
Quick Start
1. Get your API key
Log into testledger.dev and go to Settings → API Keys to generate a key.
2. Configure Claude Code
Add this to your Claude Code MCP config:
Location: ~/.claude.json (global) or .mcp.json (project)
{
"mcpServers": {
"test-reporter": {
"command": "npx",
"args": ["-y", "@testledger/mcp@latest"],
"env": {
"TEST_LEDGER_API_KEY": "your-api-key-here"
}
}
}
}Tip: Using
@latestensures you always get the newest version with bug fixes.
3. Restart Claude Code
That's it! Claude Code now has access to your test results.
Usage
Once configured, you can ask Claude Code things like:
"Why is
checkout.spec.jsflaky?""What tests have been failing the most this week?"
"Show me recent test failures"
"Are there any tests that always fail together?"
With the /fix-flaky-test command
For the best experience, add the fix-flaky-test slash command to your project:
mkdir -p .claude/commands
curl -o .claude/commands/fix-flaky-test.md https://raw.githubusercontent.com/your-company/test-reporter-mcp/main/commands/fix-flaky-test.mdThen use it:
/fix-flaky-test
Test: LoginPage.should allow user to login with valid credentials
Error: element ("#submit-btn") still not clickable after 3000ms
at login.spec.js:42:24Available Tools
The MCP server provides these tools to Claude:
Tool | Description |
| Pass/fail/flaky statistics for a test |
| Time-of-day, browser, and version patterns |
| Tests that fail together (shared setup issues) |
| Project-wide flaky test leaderboard |
| Recent failures for quick triage |
| Failure rate over time |
Configuration Options
Environment Variable | Required | Description |
| Yes | Your API key from the dashboard |
| No | Custom API URL (default: |
| No | Default project ID to use for queries |
Example with all options
{
"mcpServers": {
"test-reporter": {
"command": "npx",
"args": ["-y", "@testledger/mcp"],
"env": {
"TEST_LEDGER_API_KEY": "tr_live_abc123",
"TEST_LEDGER_PROJECT_ID": "42"
}
}
}
}Troubleshooting
"Tool not found" errors
Restart Claude Code after updating config
Check for JSON syntax errors in your config file
Verify your API key is valid
"API error 401"
Your API key is invalid or expired. Generate a new one from the dashboard.
"API error 403"
Your API key doesn't have access to the requested project. Check project permissions.
Support
Documentation: testledger.dev
Issues: GitHub Issues
Available Tools
9 toolsget_consecutive_failuresA
Get tests that are failing consecutively (broken tests, not flaky). Returns tests where the last 2+ runs have failed, with timing info (last_passed_date, first_failed_date) useful for identifying which merge broke them.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days to look back (default: 10) | |
| limit | No | Maximum results to return (default: 50) | |
| version | No | Version to filter by (e.g., '12.1.0'). If not provided, uses latest version. | |
| project_id | No | Project ID to filter by (optional) | |
| min_consecutive_failures | No | Minimum number of consecutive failures to include (default: 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose meaningful behavior: the inclusion criterion (last 2+ consecutive failures), what the returned timing fields mean (last_passed_date, first_failed_date), and the diagnostic intent. It omits pagination, ordering, and permission/version-resolution behavior, but the core behavioral profile is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler. The core definition, the disambiguation, and the qualification rule are all front-loaded before the optional detail about returned timing fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Five optional parameters are fully covered by the schema and no output schema exists, so the description's job of explaining the return shape (timing fields with their diagnostic purpose) is mostly fulfilled. Missing only peripheral details like result ordering, which is minor for this read-only diagnostic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (days, limit, version, project_id, min_consecutive_failures) is already documented in the schema. The description reinforces the default threshold with 'last 2+ runs have failed' but adds no syntax, format, or edge-case meaning beyond the schema, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('get tests that are failing consecutively') and immediately disambiguates the resource with the parenthetical '(broken tests, not flaky)', which cleanly separates it from the get_flaky_tests sibling. The scope rule (last 2+ runs failed) further pins down the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'not flaky' contrast tells the agent when to prefer this over a flaky-test tool, and the mention of identifying 'which merge broke them' frames the diagnostic use case. It stops short of naming concrete alternatives or stating exclusions explicitly, so it is clear context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_failure_patternsB
Analyze when and how tests fail to identify patterns. Returns failure rates by hour, day of week, version, browser/site, and duration analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days to look back (default: 30) | |
| spec_file | Yes | The spec file path | |
| project_id | No | Project ID to filter by (optional) | |
| test_title | No | Specific test title (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the analysis dimensions returned (failure rates by hour, day, version, browser/site, duration), implying a read-only aggregate report, but says nothing about permissions, data volume, or how results are shaped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and then the return dimensions, with no filler. Efficient, though it could be tightened into one sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does some work by listing the breakdowns produced, which is the key thing an agent needs to know. However, it omits scoping behavior (does spec_file alone drive the analysis? what happens without project_id?), and gives no hint about result size or how it differs from the nine sibling analysis tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter (days, spec_file, project_id, test_title) is already documented in the schema. The description mentions analysis dimensions but does not clarify how those map to or interact with parameters like test_title or project_id, so it adds little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: analyze test failures to identify patterns, and enumerates the dimensions of the analysis (hour, day of week, version, browser/site, duration). It is distinguishable from siblings like get_recent_failures or get_flaky_tests, though it never names or contrasts against them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the many sibling tools (get_flaky_tests, get_correlated_failures, get_test_trend, etc.) that an agent must choose between. The agent is left to infer that this is the 'pattern analysis' option purely from the verb 'analyze'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_failure_screenshotsB
Get screenshots from recent test failures. Returns presigned S3 URLs that can be viewed with the Read tool to see exactly what the UI looked like when the test failed.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days to look back (default: 7) | |
| limit | No | Maximum screenshots to return (default: 10) | |
| spec_file | Yes | The spec file path (e.g., 'login.spec.js') | |
| project_id | No | Project ID to filter by (optional) | |
| test_title | No | Specific test title to filter by (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses that it returns presigned S3 URLs and that they can be viewed with the Read tool, which is useful operational context. However, it doesn't mention URL expiration, permissions needed, or behavior when no failures exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by a useful operational note about viewing URLs with the Read tool. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param read tool with no annotations and no output schema, the description covers the purpose and return type well but omits when to choose it over siblings, any limitations, or error behavior. Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema with defaults and meanings. The description doesn't add parameter-level detail beyond saying 'recent test failures', which aligns with the days parameter. Baseline 3 applies when schema fully covers params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (failure screenshots from recent test failures). It's clear what it returns, but it doesn't distinguish itself from the many sibling tools like get_recent_failures or get_failure_patterns beyond the 'screenshots' aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage — viewing what the UI looked like when a test failed — but doesn't say when to use this vs. siblings like get_recent_failures. No explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flaky_specsA
Get flaky specs from pre-computed materialized view. Faster than get_flaky_tests as it uses cached data refreshed hourly. Returns spec-level flakiness (not individual test level).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (default: 50) | |
| project_id | No | Project ID to filter by (optional) | |
| min_total_runs | No | Minimum total runs for statistical significance (default: 1) | |
| min_flaky_count | No | Minimum number of flaky occurrences (default: 1) | |
| min_flaky_percent | No | Minimum flaky percentage to include (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and delivers important context: the data source (pre-computed materialized view), caching behavior ('refreshed hourly'), and the output granularity (spec-level, not test-level). It doesn't mention pagination, rate limits, or result format, but given no output schema, the disclosed traits are meaningful and non-obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste, front-loading the core purpose and speed rationale. Every clause adds distinct value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterized query tool with complete schema coverage and no output schema, the description covers the essential context: data source, freshness, and granularity. It omits return structure, but lacks an output schema to define it. The definition is sufficient for correct invocation, missing only secondary details like pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters with types and defaults. The description adds no parameter-level information (e.g., how min_flaky_percent interacts with min_flaky_count). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get) and resource (flaky specs), and crucially distinguishes itself from the sibling get_flaky_tests by clarifying the granularity: 'spec-level flakiness (not individual test level)'. This differentiation is exactly what an agent needs to choose between the two sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this over get_flaky_tests when speed matters ('Faster than get_flaky_tests'), providing a clear conditional selection rule. However, it doesn't state when NOT to use this tool (e.g., when fresher, non-cached data is required), which prevents a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_flaky_testsA
Get a list of flaky tests (tests that fail then pass on retry) across the project, sorted by flakiness rate. Note: This scans all tests - use smaller 'days' values for faster results.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days to look back (default: 3). Use smaller values for faster results. | |
| limit | No | Maximum results to return (default: 20) | |
| project_id | No | Project ID to filter by (optional) | |
| min_flaky_rate | No | Minimum flaky rate percentage to include (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses a cost/performance trait (full project scan, smaller windows are faster), but says nothing about permissions, pagination beyond the limit param, or what fields are returned. Partial behavioral disclosure for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the core purpose and the flakiness definition come first, followed by the scan-cost caveat. No filler, and the highest-value information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter, annotation-free list tool with no output schema, the description covers purpose and cost behavior but omits what the returned list actually contains and whether results are paginated or limited by anything besides 'limit'. Adequate but with clear gaps for an agent that needs to interpret the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters including defaults and the days tradeoff are already documented in the schema. The description's re-statement of the days hint adds no meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('get a list of flaky tests') and even defines the term ('tests that fail then pass on retry') plus the sort order by flakiness rate. It is clear on its own, but it does not distinguish itself from the nearby sibling get_flaky_specs, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a useful performance hint ('this scans all tests - use smaller days values for faster results'), which is implied usage guidance around the days parameter. However, there is no explicit when-to-use statement and no named alternative among the many siblings (get_flaky_specs, get_test_history, get_failure_patterns), so selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_failuresA
Get the most recent test failures for quick triage. Useful for seeing what's currently broken. For faster results, provide a spec_file filter.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hours to look back (default: 24) | |
| limit | No | Maximum results (default: 20) | |
| spec_file | No | Filter by spec file (recommended for faster results) | |
| project_id | No | Project ID to filter by (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies read-only retrieval with recency ordering and a performance trait ('faster results' with spec_file), but discloses nothing about pagination, result caps, permissions, or return format. Given the higher bar with zero annotation coverage, this is only partially met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core purpose front-loaded and zero filler. The performance tip is placed last, where it reads as a secondary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-risk, fully-schema-documented, all-optional read tool this covers the essentials: what it returns and how to speed it up. The lack of an output schema and any sibling differentiation keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters and the baseline is 3. The description only adds meaning for spec_file ('for faster results'), a performance rationale not present in the schema, while hours/limit/project_id semantics rest entirely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the most recent test failures') and scopes it with 'most recent' and 'quick triage', which separates it somewhat from history/trend siblings. However, it never names or differentiates from near-neighbors like get_consecutive_failures or get_failure_patterns, leaving the agent to guess which failure-listing tool fits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for seeing what's currently broken' implies a usage context and the spec_file tip implies a performance scenario, but there is no explicit when-to-use-vs-alternatives guidance among the nine sibling tools. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_historyB
Get historical pass/fail/flaky statistics for a specific test. Use this to understand how often a test fails and its overall reliability. Returns health_status (healthy/flaky/broken/disabled/insufficient_data) from the test_health view for AI pre-filtering decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30) | |
| spec_file | Yes | The spec file path (e.g., 'login.spec.js' or 'tests/checkout.spec.ts') | |
| project_id | No | Project ID to filter by (optional) | |
| test_title | No | Specific test title to filter by (optional - omit to get all tests in the spec) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the returned health_status values (healthy/flaky/broken/disabled/insufficient_data) and the test_health view source, but says nothing about read-only safety, result volume, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose before the usage hint and output detail. The health_status enumeration is the only mildly dense element and it earns its place by naming concrete return values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only stats tool with no annotations and no output schema, the description covers purpose and one output field but leaves return shape, data volume, and time-window semantics largely unspecified. Adequate but not thorough for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (days, spec_file, project_id, test_title) are already documented in the schema. The description adds no syntax, format, or default guidance beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Get) and resource (historical pass/fail/flaky statistics) scoped to a single test, which an agent can distinguish from siblings like get_flaky_specs or get_test_trend. It does not explicitly name a sibling to contrast against, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to understand how often a test fails and its overall reliability' implies the use case but never states when to prefer this over get_test_trend, get_flaky_tests, or get_recent_failures. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_trendB
Get trend data for a test over time, useful for seeing if a test is getting more or less reliable.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days to look back (default: 30) | |
| spec_file | Yes | The spec file path | |
| project_id | No | Project ID to filter by (optional) | |
| test_title | No | Specific test title (optional) | |
| granularity | No | Time granularity for trend data (default: 'day') | day |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It implies a read operation via 'Get,' but does not state read-only status, authentication needs, rate limits, result shape, or any other behavioral trait beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero waste. It states the core action and its primary value immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and no output schema, the description is too thin. It does not explain what trend data is returned, how to interpret it, or when to prefer alternatives, leaving significant contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all five parameters. The description adds no additional parameter meaning, such as format or interaction details, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get trend data for a test over time,' and adds a clear use case ('seeing if a test is getting more or less reliable'). It does not explicitly distinguish itself from similar siblings like get_test_history or get_flaky_tests, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an implied usage context ('useful for seeing if a test is getting more or less reliable') but gives no explicit when-to-use guidance, no exclusions, and does not name alternative tools. This is adequate but leaves routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v0.0.8- First observed
get_consecutive_failures - First observed
get_correlated_failures - First observed
get_failure_patterns - First observed
get_failure_screenshots - First observed
get_flaky_specs - First observed
get_flaky_tests - First observed
get_recent_failures - First observed
get_test_history - First observed
get_test_trend
TDQS
Scored across 9 tools
Most tools target distinct analytical questions (patterns, correlation, screenshots, consecutive failures). The main overlap is get_flaky_tests vs get_flaky_specs (test-level vs spec-level) and some tension between get_test_history and get_test_trend, but the descriptions explicitly clarify the differences. Boundaries are mostly clear.
Every tool follows the consistent get_<entity> snake_case pattern (get_failure_patterns, get_test_history, get_flaky_tests, etc.). Naming is fully predictable with no stylistic deviations.
Nine tools is well within a sensible range for a test analytics domain and each tool maps to a distinct analytical query. No bloat or redundancy that would suggest padding.
The surface covers failure patterns, flakiness, correlation, trends, screenshots, and consecutive failures well. Minor gaps exist—no tool to fetch individual run detail or list/search tests directly—but core triage and reliability-analysis workflows are covered.
Maintenance
Related MCP Connectors
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Flaky test detection, root cause analysis, and fix suggestions for development teams.
Run, debug, and triage tests from your IDE using natural language, no dashboard switching, no manual data transfers. The TestMu AI (formerly LambdaTest) MCP Server is a single remote server exposing four tool suites: HyperExecute — analyze your project, generate YAML configs and test runner commands, then monitor jobs and sessions. Automation — pull a TestID's details plus command, network, and console logs into one chat for instant root-cause analysis. Includes mobile app upload. SmartUI — explain pixel, layout, DOM, and perceptual changes in a visual regression run, with context-aware React/HTML/CSS fixes. Accessibility — audit any public URL or a local React app against WCAG and get ready-to-apply remediation steps. Connects over https://mcp.lambdatest.com/mcp using OAuth 2.1 — no API keys in your config. One-click install in Cursor; works with Claude, GitHub Copilot, Cline, and any MCP client. Tests execute on the TestMu AI cloud: 3,000+ browsers and 10,000+ real devices.
Test the voice agents you run: scored transcripts, pass/fail verdicts, latency and WER metrics.
Related MCP Servers
- AlicenseAqualityAmaintenanceConnects AI coding assistants to Gaffer test history and coverage data to analyze project health, debug failures, and identify untested code areas. It enables tools to track test stability, cluster failures by root cause, and monitor code coverage trends across projects.371 npm1MIT

Tesults MCPofficial
AlicenseNot gradedqualityDmaintenanceConnect AI agents to your test results, insights, and targets. Query test runs, failures, flaky tests, and regressions across frameworks including Playwright, Jest, Pytest, Cypress and more.23 npmMIT- AlicenseCqualityCmaintenanceEnables AI-powered automated testing, security scanning, code review, and maintenance tasks directly within Claude Code or desktop.124MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to query and analyze past Claude Code sessions, providing structured insights like file changes, decisions, errors, and git history across projects.1123 npm1MIT