Skip to main content
Glama
guyco6742

cypress-runner-mcp

by guyco6742

πŸ§ͺ Cypress MCP Server

License: MIT TypeScript MCP

A Model Context Protocol (MCP) server that enables AI agents (like Claude, GPT, etc.) to interact with and control Cypress test runners. This allows AI assistants to run tests, monitor execution, retrieve results, and manage test artifacts directly.


πŸš€ Features

  • βœ… Run Cypress tests via AI commands

  • πŸ“Š Real-time test monitoring with live output

  • 🎯 Flexible test execution (single spec, filtered tests, or entire suites)

  • πŸ“Έ Screenshot and video management for test failures

  • πŸ” Test discovery - automatically list all available spec files

  • ⏹️ Process control - start, stop, and monitor test runs

  • 🌐 Multi-browser support (Chrome, Firefox, Edge, Electron)

  • πŸ”„ Background execution - tests run asynchronously

  • πŸ“ Detailed status reporting with exit codes and duration


Related MCP server: QA Testing MCP Server

πŸ“‹ Table of Contents


πŸ“¦ Installation

Prerequisites

  • Node.js >= 18.0.0

  • npm or pnpm or yarn

  • Cypress installed in your project

  • An MCP-compatible client (e.g., Cursor IDE, Claude Desktop)

Install Dependencies

# Clone the repository
git clone https://github.com/guyco6742/cypress-runner-mcp.git
cd cypress-runner-mcp

# Install dependencies (choose one)
npm install
# or
pnpm install
# or
yarn install

Build the Project

npm run build

This compiles TypeScript to JavaScript in the dist/ folder.


βš™οΈ Configuration

For Cursor IDE

Add this configuration to your .cursor/mcp.json:

{
  "mcpServers": {
    "cypress-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/cypress-mcp-server/dist/index.js"],
      "env": {
        "CYPRESS_WORKSPACE": "/absolute/path/to/your/cypress/project"
      }
    }
  }
}

For Claude Desktop

Add this to your Claude Desktop MCP config file:

macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "cypress-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/cypress-mcp-server/dist/index.js"],
      "env": {
        "CYPRESS_WORKSPACE": "/absolute/path/to/your/cypress/project"
      }
    }
  }
}

Environment Variables

  • CYPRESS_WORKSPACE: (Required) Absolute path to your Cypress project root directory

Restart Your Client

After configuration, restart Cursor IDE or Claude Desktop for changes to take effect.


πŸ”§ Available Tools

cypress_run_spec

Run a specific Cypress test spec file.

Parameters:

  • spec (required): Path to spec file relative to workspace (e.g., cypress/e2e/login.cy.ts)

  • browser (optional): Browser to use (chrome, firefox, electron, edge) - default: chrome

  • headed (optional): Run with visible browser window - default: true

  • grep (optional): Run only tests matching this pattern (test title filter)

Example:

Run the login test in Chrome with headed mode

cypress_run_all

Run all Cypress tests in a project.

Parameters:

  • project (required): Project name or path

  • browser (optional): Browser to use - default: chrome

Example:

Run all tests in the e2e project

cypress_stop

Stop the currently running Cypress test.

Example:

Stop the current test

cypress_status

Get current test execution status with recent output.

Parameters:

  • outputLines (optional): Number of recent output lines to include - default: 30

Example:

What's the status of the running test?

cypress_output

Get the full console output from the current or last test run.

Parameters:

  • lines (optional): Number of lines to return from the end - default: 100

  • filter (optional): Filter output to lines containing this text

Example:

Show me the test output filtered for "error"

cypress_list_specs

List all available Cypress spec files in a project.

Parameters:

  • project (required): Project name or path

  • filter (optional): Filter specs by name pattern

Example:

List all spec files in the e2e project containing "login"

cypress_screenshots

List or get screenshots from test failures.

Parameters:

  • project (optional): E2E project name

  • latest (optional): Get only the most recent screenshot

Example:

Show me the latest screenshot from test failures

cypress_clear_artifacts

Clear screenshots and videos from previous test runs.

Parameters:

  • project (required): Project name to clear artifacts from

Example:

Clear all test artifacts from the e2e project

πŸ“š Resources

The server exposes these resources that can be read by AI agents:

cypress://output/live

Real-time console output from running Cypress tests.

MIME Type: text/plain

cypress://status

Current test execution status (JSON format).

MIME Type: application/json

Response Structure:

{
  "isRunning": true,
  "currentSpec": "cypress/e2e/login.cy.ts",
  "startTime": "2024-01-25T10:30:00.000Z",
  "lastExitCode": null,
  "outputLines": 42
}

πŸ’‘ Usage Examples

Example 1: Run a Specific Test

User: "Run the login test in Chrome"

AI Agent:

  1. Calls cypress_list_specs to find available tests

  2. Calls cypress_run_spec with spec: "cypress/e2e/login.cy.ts"

  3. Reports test has started


Example 2: Monitor Test Progress

User: "Check the status of the current test"

AI Agent:

  1. Calls cypress_status

  2. Returns formatted status with recent output


Example 3: Debug Failed Test

User: "Show me why the test failed"

AI Agent:

  1. Calls cypress_output with filter: "error"

  2. Calls cypress_screenshots with latest: true

  3. Provides error output and screenshot location


Example 4: Run Tests with Filtering

User: "Run only the authentication tests in Firefox"

AI Agent:

  1. Calls cypress_run_spec with:

    • spec: "cypress/e2e/auth.cy.ts"

    • browser: "firefox"

    • grep: "authentication"


πŸ“ Project Structure

cypress-mcp-server/
β”œβ”€β”€ src/
β”‚   └── index.ts          # Main MCP server implementation
β”œβ”€β”€ dist/                 # Compiled JavaScript (generated)
β”œβ”€β”€ .gitignore            # Git ignore rules
β”œβ”€β”€ package.json          # Dependencies and scripts
β”œβ”€β”€ tsconfig.json         # TypeScript configuration
β”œβ”€β”€ README.md             # This file
β”œβ”€β”€ LICENSE               # MIT License
└── SETUP.md              # Detailed setup guide

πŸ› οΈ Development

Run in Development Mode

npm run dev

This uses ts-node to run TypeScript directly without compilation.

Build for Production

npm run build

Start Production Server

npm start

Run Tests (if you add them)

npm test

πŸ› Troubleshooting

Issue: "Cypress not found"

Solution: Ensure Cypress is installed in your workspace:

cd /path/to/your/cypress/project
npm install cypress --save-dev

Issue: "Permission denied" when running tests

Solution: On Unix systems, make sure the script is executable:

chmod +x dist/index.js

Issue: Tests not starting

Solution: Check the following:

  1. Verify CYPRESS_WORKSPACE environment variable is set correctly

  2. Ensure the workspace path exists and contains Cypress config

  3. Check that Node.js version is >= 18.0.0

  4. Review server logs in your MCP client


Issue: "Cannot find module '@modelcontextprotocol/sdk'"

Solution: Reinstall dependencies:

rm -rf node_modules package-lock.json
npm install
npm run build

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

Code Style

  • Use TypeScript strict mode

  • Follow existing code formatting

  • Add comments for complex logic

  • Update documentation for new features


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


🌟 Acknowledgments


πŸ“ž Support

If you encounter issues or have questions:

  1. Check the Troubleshooting section

  2. Search existing issues

  3. Create a new issue with details


πŸ—ΊοΈ Roadmap

  • Support for Cypress component testing

  • Integration with CI/CD pipelines

  • Test report generation

  • Custom assertion helpers

  • Multi-project support

  • Video streaming for live test viewing

  • Test code generation from natural language


Made with ❀️ for the testing community

Available Tools

8 tools
cypress_clear_artifactsA

Clear screenshots and videos from previous test runs

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesWhich e2e project to clear artifacts from

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It clearly indicates a destructive action ('Clear') and scopes what is affected ('screenshots and videos from previous test runs'). However, it does not warn that the action is irreversible or describe any side effects beyond deletion.

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, focused sentence with no filler or redundant phrasing. It efficiently communicates the action and target, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description is largely sufficient: it names the action, the artifact types, the timing scope, and the required project parameter. It falls short only in not providing explicit usage context or alternative routing, which is a minor gap for such a straightforward operation.

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 already fully describes the single 'project' parameter with 100% coverage. The tool description adds no additional meaning about the parameter beyond what the schema provides, so 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.

Purpose5/5

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

The description states a specific verb ('Clear') and a specific resource ('screenshots and videos from previous test runs'), making the tool's function immediately obvious. It distinguishes itself clearly from sibling tools like cypress_screenshots (which likely retrieves artifacts) and the run-based tools.

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 does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or typical invocation contexts. The phrase 'previous test runs' implies cleanup before fresh runs, but no explicit when/when-not guidance is provided.

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

cypress_list_specsA

List all available Cypress spec files in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter specs by name pattern
projectYesWhich e2e project to list specs from

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosing behavior. It states the core action and scope, and 'list' implies a read-only operation, but it does not explicitly confirm absence of side effects, describe return format, or note behavior when the project is invalid. This is adequate for a simple listing tool but still leaves operational ambiguity.

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?

A single, tightly written sentence with no filler. It is front-loaded and conveys the essential purpose immediately; every word contributes.

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

Completeness3/5

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

Given this is a low-complexity, two-parameter tool, the description is minimally sufficient. However, with no output schema and no annotations, it does not describe the return shape or error behavior, and the filter parameter's effect on 'all available' is left implicit.

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 already provides descriptions for both parameters with 100% coverage. The description adds little beyond restating 'project' and generically 'all available'; it does not clarify how the optional filter affects results or what 'available' means in terms of discovery.

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

Purpose5/5

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

The description uses a specific verb ('List') and a specific resource ('Cypress spec files') with a clear scope ('in a project'). This clearly distinguishes it from sibling tools that run, stop, or check status of Cypress tests.

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 such as cypress_run_spec or cypress_run_all. It does not state exclusions, prerequisites, or typical invocation context; the only usage signal is implicit in the tool name.

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

cypress_outputA

Get the full console output from the current or last test run

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoNumber of lines to return from the end (default: 100)
filterNoFilter output to lines containing this text

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. 'Get' implies a read-only operation and 'full console output' describes what is returned, but it does not clarify behavior when no test run exists, whether output is streamed or buffered, or whether retrieving output has side effects. Basic behavior is present but not deeply disclosed.

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, front-loaded sentence with no filler. Every word contributes to the core purpose, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple tool with two optional parameters and no output schema, the description covers the essential context: what is retrieved and from when. It would benefit from noting the output format or behavior when no run output is available, but nothing critical is missing for basic invocation.

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 already provides 100% coverage for both parameters with meaningful descriptions ('lines' and 'filter'). The tool description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('full console output'), and a clear temporal scope ('current or last test run'). It also differentiates from sibling tools like cypress_status or cypress_screenshots by focusing on console output rather than status or artifacts.

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

Usage Guidelines4/5

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

The description provides clear context: the tool retrieves output from the current or last test run, which implies it is useful after or during a Cypress run. It does not explicitly name alternatives or exclusions, but the temporal context is unambiguous enough for an agent to select it appropriately.

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

cypress_run_allB

Run all Cypress tests in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
browserNoBrowser to use (default: chrome)
projectYesWhich e2e project to run (adjust based on your project structure)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so description carries full burden of behavioral disclosure. It only states the operation with no note on side effects, async behavior, artifacts, or safety. For a test runner that may spawn long-running processes, this is a significant gap.

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?

A single, front-loaded sentence with no filler. Every word earns its place and the core function is immediately clear.

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 no output schema and no annotations, the description should cover what happens after invocationβ€”return value, async vs blocking behavior, and relation to cypress_status/stop. It doesn't, so an agent may not know how to monitor or stop the run.

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?

Schema description coverage is 100%, so baseline 3 applies. Tool description adds no extra meaning beyond the schema, but the schema's project and browser descriptions are sufficient for selection.

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

Purpose5/5

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

Description uses specific verb 'Run' and resource 'all Cypress tests', clearly distinguishing it from sibling cypress_run_spec which targets a single spec. The phrase 'in a project' scopes the operation.

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

Usage Guidelines3/5

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

No explicit guidance on when to choose this tool over cypress_run_spec, status, or stop. The function implies it is for executing the full suite, but it doesn't state conditions, exclusions, or alternatives, leaving some inference required.

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

cypress_run_specA

Run a specific Cypress test spec file. Returns immediately and runs in background.

ParametersJSON Schema
NameRequiredDescriptionDefault
grepNoRun only tests matching this pattern (test title grep)
specYesPath to spec file relative to workspace (e.g., cypress/e2e/example.cy.ts)
headedNoRun with visible browser window (default: true for debugging)
browserNoBrowser to use (default: chrome)

TDQS

A3.7/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It does disclose a key behavior: "Returns immediately and runs in background." However, it omits other useful behavioral context such as side effects (artifacts/screenshots), how completion is signaled, and how results can be retrieved through sibling tools. The provided behavior is helpful but incomplete.

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, front-loaded sentence with no filler. It communicates both the core purpose and the key background-execution behavior in just a few words, making it easy for an agent to parse quickly.

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

Completeness3/5

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

The description is adequate for initiating a run against a given spec path, and the async behavior is mentioned. However, with no output schema and no mention of how to check status or retrieve results, an agent is left without some context needed for a fully informed invocation. It covers the essentials but not the surrounding workflow.

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?

Schema description coverage is 100%, so the input schema already fully documents all four parameters. The description itself adds no parameter-level details beyond what the schema provides, so 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.

Purpose5/5

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

The description states a specific action ("Run") and resource ("a specific Cypress test spec file"), and the word "specific" distinguishes it from the sibling cypress_run_all. This gives an agent a clear, unambiguous understanding of what the tool does.

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

Usage Guidelines3/5

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

The description implies usage for running a single spec file rather than all specs, and the background-execution note hints at non-blocking use. However, it does not explicitly name alternatives like cypress_run_all, cypress_status, or cypress_output, nor does it explain when not to use this tool.

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

cypress_screenshotsB

List or get screenshots from test failures

ParametersJSON Schema
NameRequiredDescriptionDefault
latestNoGet only the most recent screenshot
projectNoE2E project name

TDQS

B3.1/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 does not state whether the operation is read-only, whether it accesses local files or a remote artifact store, what happens when there are no screenshots, or whether 'latest' affects the behavior beyond the schema description. The description provides minimal behavioral context.

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 short sentence with no filler or redundancy. It front-loads the main action and resource immediately. While it is quite terse, every word contributes to the core purpose, which fits the conciseness criterion, even though the substance is limited.

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?

There is no output schema, so the description should at least indicate what the tool returns, such as file paths, image data, or a list of artifact locations. It also does not clarify whether 'project' is required, what happens when no screenshots exist, or how 'latest' interacts with the listing behavior. The description is too sparse for an agent to call this tool confidently in a non-obvious scenario.

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?

Schema description coverage is 100%, so the parameters are already documented in the schema. The tool description adds only the 'test failures' context, which relates to both parameters but does not meaningfully enhance understanding of 'latest' or 'project'. The baseline of 3 is appropriate because the schema already carries the parameter documentation burden.

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 states a specific action ('List or get') and resource ('screenshots from test failures'), which clearly identifies the tool's domain and distinguishes it from siblings like cypress_output or cypress_list_specs. It is not a tautology and gives the agent a usable idea of what the tool does, though 'List or get' is slightly ambiguous about whether these are two modes or two operations.

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

Usage Guidelines3/5

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

The phrase 'from test failures' implies the tool is appropriate when the agent needs screenshots generated by failed tests, giving some usage context. However, it does not explicitly state when to prefer this tool over related siblings like cypress_output or cypress_clear_artifacts, nor does it provide any when-not-to-use guidance.

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

cypress_statusB

Get current test execution status, including if tests are running and recent output

ParametersJSON Schema
NameRequiredDescriptionDefault
outputLinesNoNumber of recent output lines to include (default: 30)

TDQS

B3.1/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 only states that the tool returns status and recent output, without mentioning whether it is purely read-only, how the output is structured, or any side effects. This is minimal disclosure for a tool with no annotation support.

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 sentence that efficiently conveys the core purpose and key included information. It is front-loaded with the primary action and adds no filler or redundant phrasing.

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

Completeness3/5

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

This is a low-complexity tool with one optional parameter and no output schema. The description gives a high-level idea of what is returned, but lacks detail on the response format or specific status values. It is adequate for a simple status check but leaves some ambiguity around return structure.

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?

Schema description coverage is 100%, so the outputLines parameter is already fully documented in the schema. The description adds no additional meaning about the parameter, but the schema carries that weight, so a baseline 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 identifies the tool as a status query ('Get current test execution status') and specifies what it covers ('if tests are running and recent output'). It is distinguishable from execution-oriented siblings like cypress_run_all and cypress_stop, though it overlaps somewhat with cypress_output since it also returns recent output.

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 gives no guidance on when to use this tool versus alternatives. The overlap with cypress_output is not addressed, and there are no stated conditions for choosing status over other siblings. Usage context is only implied by the word 'status'.

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

cypress_stopA

Stop the currently running Cypress test

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations exist, so the description must carry the behavioral disclosure burden. It clarifies that the action is stopping a running test but does not disclose side effects such as whether artifacts are affected, whether the operation is idempotent, or what happens when no test is running.

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 entire description is a single clear sentence that immediately states the action and target. There is no filler or redundancy.

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

Completeness3/5

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

For a no-parameter command, this description is largely enough to know what it does, but it omits edge-case behavior and any return value expectations. Since there is no output schema or annotations, additional detail on what happens when no test is running would improve completeness.

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

Parameters4/5

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

The tool has zero parameters, and the empty input schema already covers everything. The description adds no extra parameter semantics, but none is needed.

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

Purpose5/5

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

The description states a specific verb ('stop') and a clear resource ('currently running Cypress test'). This differentiates it from sibling tools like cypress_run_spec, cypress_run_all, and cypress_status.

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

Usage Guidelines3/5

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

The description implies the condition for useβ€”that a test is currently runningβ€”but provides no explicit guidance on when to use it over alternatives or what to do if no test is running. This is implied rather than explicit.

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.

  1. 8 tool updatesv1.0.0
    • First observedcypress_clear_artifacts
    • First observedcypress_list_specs
    • First observedcypress_output
    • First observedcypress_run_all
    • First observedcypress_run_spec
    • First observedcypress_screenshots
    • First observedcypress_status
    • First observedcypress_stop

TDQS

A3.6/5.0

Scored across 8 tools

Disambiguation4/5

Each tool targets a distinct part of the Cypress workflow: running, stopping, checking status, getting output, listing specs, and managing artifacts. Status and output overlap slightly since status mentions recent output, but their intended separation is clear.

Naming Consistency4/5

All tools share the cypress_ prefix and mostly follow a verb_noun pattern like cypress_run_spec and cypress_list_specs. cypress_status and cypress_output are noun-oriented rather than verb-oriented, but the overall pattern remains predictable.

Tool Count5/5

Eight tools is well-scoped for a Cypress runner server. Each tool covers a necessary part of the execution lifecycle without redundancy or bloat.

Completeness4/5

The surface covers running specs, running all tests, stopping, checking status, retrieving output, listing specs, and managing failure artifacts. Minor gaps exist around detailed result reporting or video retrieval, but core workflows are fully supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connect 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 npm
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI agents to perform comprehensive web application testing including visual, functional, performance, accessibility, and SEO analysis using browser automation without requiring API keys.
    7
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that gives AI coding agents full control over Cypress test execution, allowing them to run, debug, and iterate on E2E tests directly from MCP-compatible agents.
    11
    733 npm
    Business Source 1.1
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes Cypress as AI-usable tools for running tests, managing spec files, taking accessibility snapshots, and automating a browser via Playwright-core.
    733 npm
    12
    Business Source 1.1