Cypress MCP Test Generator

by mgandhi82

483 downloads
Not rated
GitHub

About

Cypress MCP Test Generator is a Model Context Protocol (MCP) server that converts natural language prompts into fully functional Cypress tests. It is intended for developers who want to create Cypress end-to-end tests by describing scenarios in plain English.

Details

Author
mgandhi82
Downloads
483
Categories
Developer Tools, Automation

- Generate Cypress tests from natural language prompts
- Automatically handles cookie consent dialogs
- Includes retry mechanisms for test reliability
- Supports TypeScript with custom commands
- Integrated with VS Code via MCP

Install dependencies with npm install, build with npm run build, and configure the MCP server in VS Code by creating .vscode/mcp.json with the correct path to the built index.js. Open your project in VS Code; the server starts automatically. Use the command palette to type your test description and receive a generated test file in the cypress/e2e directory.

Cypress MCP Test Generator

This project provides a Model Context Protocol (MCP) server that generates Cypress tests from natural language prompts. Simply describe your test scenario in plain English, and the server will generate a fully functional Cypress test.

Table of Contents

- Setup - Installation - Usage - Example Prompts - Configuration - Troubleshooting

Setup

Prerequisites

- Node.js (v16 or higher) - npm (comes with Node.js) - VS Code - TypeScript

Installation

1. Clone the repository:

git clone <repository-url>
cd your-project-directory

2. Install dependencies:

npm install

3. Build the project:

npm run build

4. Create VS Code MCP configuration:

mkdir -p .vscode

5. Create .vscode/mcp.json with the following content (update the path to match your system):

{
"servers": {
"cypress-mcp": {
"type": "stdio",
"command": "node",
"args": ["path/to/your/project/build/index.js"]
}
}
}

Usage

1. Open your project in VS Code
2. The MCP server will start automatically
3. Open VS Code's command palette and type your test description
4. The server will generate a Cypress test based on your description

How it Works

1. Your natural language prompt is processed by the MCP server
2. The server generates appropriate Cypress commands and assertions
3. A new test file is created in the cypress/e2e directory
4. The test is ready to run using Cypress

Example Prompts

Here are some example prompts you can use:

1. Basic Navigation and Search:

"Go to google.com and search for 'cypress testing'"

Generated test will:
- Navigate to Google
- Handle cookie consent if present
- Type search term
- Verify search results

2. Login Flow:

"Visit login page, enter username 'test@example.com', type password 'password123', click login button, and verify dashboard appears"

Generated test will:
- Navigate to login page
- Fill in credentials
- Submit form
- Verify successful login

3. Form Submission:

"Navigate to contact-form.com, fill in name 'John Doe', enter email 'john@example.com', type message 'Hello World', click submit button, and verify success message appears"

Configuration

Project Structure

project-root/
├── src/
│   ├── index.ts          # MCP server implementation
│   └── cypress/
│       └── commands.ts   # Custom Cypress commands
├── cypress/
│   ├── e2e/             # Generated test files
│   └── support/         # Support files
└── .vscode/
    └── mcp.json         # MCP server configuration

Customizing the Server

You can customize test generation by modifying:
- Test templates in src/index.ts
- Custom commands in src/cypress/commands.ts
- Error handling and retry mechanisms

Troubleshooting

Common Issues

1. Server Not Starting
- Verify paths in mcp.json are correct
- Check build/index.js exists
- Ensure Node.js version is compatible

2. Test Generation Fails
- Check prompt format
- Verify server logs for errors
- Ensure all dependencies are installed

3. VS Code Integration Issues
- Reload VS Code window
- Check VS Code's output panel for errors
- Verify .vscode/mcp.json configuration

Error Messages

1. "Server exited before responding"
- Check file paths in mcp.json
- Rebuild the project
- Restart VS Code

2. "Cannot find module"
- Run npm install
- Check build folder exists
- Rebuild the project

Logs Location

- Server logs: VS Code's Output panel (Cypress MCP Server)
- Generated test files: cypress/e2e directory
- Build output: build directory

Script Commands

{
  "scripts": {
    "build": "tsc",
    "start": "node build/index.js",
    "dev": "tsc --watch",
    "cypress:open": "cypress open",
    "cypress:run": "cypress run"
  }
}

Best Practices for Prompts

1. Be Specific
- Include URLs when applicable
- Specify exact text for inputs
- Mention expected verifications

2. Use Clear Actions
- "visit" or "go to" for navigation
- "type" or "enter" for input
- "click" for button interactions
- "verify" or "check" for assertions

3. Include Verification Steps
- Mention what should appear after actions
- Include expected text or elements
- Specify timeouts if needed

Support

For issues and questions:
1. Check the troubleshooting guide
2. Review server logs
3. Check VS Code's output panel
4. Verify file paths and configurations

Notes

- The server automatically handles common scenarios like cookie consent dialogs
- Generated tests include retry mechanisms for reliability
- Custom commands are available for complex interactions
- Tests are generated with TypeScript support

Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request

License

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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.