splunk-cypress-mcp
Cypress MCP Test Generator is a project that allows the automatic generation of Cypress tests from natural language prompts using a Model Context Protocol server. It facilitates test creation by translating user descriptions into fully functional Cypress test scripts via VS Code integration.
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
Prerequisites
- Node.js (v16 or higher)
- npm (comes with Node.js)
- VS Code
- TypeScript
Installation
- Clone the repository:
git clone <repository-url>
cd your-project-directory
- Install dependencies:
npm install
- Build the project:
npm run build
- Create VS Code MCP configuration:
mkdir -p .vscode
- 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
- Open your project in VS Code
- The MCP server will start automatically
- Open VS Code's command palette and type your test description
- The server will generate a Cypress test based on your description
How it Works
- Your natural language prompt is processed by the MCP server
- The server generates appropriate Cypress commands and assertions
- A new test file is created in the cypress/e2e directory
- The test is ready to run using Cypress
Example Prompts
Here are some example prompts you can use:
- 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
- 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
- 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
-
Server Not Starting
- Verify paths in mcp.json are correct
- Check build/index.js exists
- Ensure Node.js version is compatible
-
Test Generation Fails
- Check prompt format
- Verify server logs for errors
- Ensure all dependencies are installed
-
VS Code Integration Issues
- Reload VS Code window
- Check VS Code's output panel for errors
- Verify .vscode/mcp.json configuration
Error Messages
-
"Server exited before responding"
- Check file paths in mcp.json
- Rebuild the project
- Restart VS Code
-
"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
-
Be Specific
- Include URLs when applicable
- Specify exact text for inputs
- Mention expected verifications
-
Use Clear Actions
- "visit" or "go to" for navigation
- "type" or "enter" for input
- "click" for button interactions
- "verify" or "check" for assertions
-
Include Verification Steps
- Mention what should appear after actions
- Include expected text or elements
- Specify timeouts if needed
Support
For issues and questions:
- Check the troubleshooting guide
- Review server logs
- Check VS Code's output panel
- 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
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details