cypress-runner-mcp
Enables AI agents to run, monitor, and manage Cypress tests with features like test discovery, screenshot handling, and multi-browser support.
README
π§ͺ Cypress MCP Server
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
π Table of Contents
- Installation
- Configuration
- Available Tools
- Usage Examples
- Resources
- Project Structure
- Development
- Troubleshooting
- Contributing
- License
π¦ 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://gitlab.com/guyco42-group/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:chromeheaded(optional): Run with visible browser window - default:truegrep(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 pathbrowser(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:100filter(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 pathfilter(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 namelatest(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:
- Calls
cypress_list_specsto find available tests - Calls
cypress_run_specwithspec: "cypress/e2e/login.cy.ts" - Reports test has started
Example 2: Monitor Test Progress
User: "Check the status of the current test"
AI Agent:
- Calls
cypress_status - Returns formatted status with recent output
Example 3: Debug Failed Test
User: "Show me why the test failed"
AI Agent:
- Calls
cypress_outputwithfilter: "error" - Calls
cypress_screenshotswithlatest: true - Provides error output and screenshot location
Example 4: Run Tests with Filtering
User: "Run only the authentication tests in Firefox"
AI Agent:
- Calls
cypress_run_specwith: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:
- Verify
CYPRESS_WORKSPACEenvironment variable is set correctly - Ensure the workspace path exists and contains Cypress config
- Check that Node.js version is >= 18.0.0
- 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:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
- Built with Model Context Protocol SDK
- Designed for Cypress test automation
- Inspired by the need for AI-assisted testing workflows
π Support
If you encounter issues or have questions:
- Check the Troubleshooting section
- Search existing issues
- 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.