Cypress MCP服务器
一种模型上下文协议(MCP)服务器实现,将Cypress与Cursor AI集成在一起,实现了AI驱动的测试自动化、调试和脚本生成。
🚀 特性
- Cypress完全集成:支持所有主要的Cypress命令和功能
- 符合MCP标准:遵循官方的模型上下文协议规范
- 光标AI兼容:与Cursor的AI助手无缝集成
- 综合工具集:
- 在无头或有头模式下运行测试 - 验证测试文件和代码 - 根据描述生成测试 - 检索测试结果、屏幕截图和视频 - 以编程方式执行Cypress命令
- 安全:可配置的命令列表和执行时间限制
- 日志记录:与Winston全面合作
- 灵活的配置:基于YAML的配置,支持环境变量
📋 先决条件
- Node.js 18.0.0或更高版本
- npm或yarn包管理器
- Cypress项目(现有或新建)
🔧 安装
选项1:从npm安装(发布时)
npm install -g cypress-mcp-server选项2:从源代码安装
git clone https://github.com/yourusername/cypress-mcp-server.git
cd cypress-mcp-server
npm install
npm link # Optional: link globally for CLI access⚙️ 配置
1.创建配置文件
复制示例配置文件:
cp cypress-mcp.config.yaml.example cypress-mcp.config.yaml2.配置光标
将MCP服务器添加到Cursor的配置中。打开光标设置并添加:
在macOS/Linux上: ~/.cursor/mcp.json
在Windows上: %APPDATA%\Cursor\mcp.json
{
"mcpServers": {
"cypress": {
"command": "node",
"args": ["/path/to/cypress-mcp-server/src/index.js"],
"env": {
"CYPRESS_MCP_CONFIG": "/path/to/cypress-mcp.config.yaml"
}
}
}
}或者,如果全局安装:
{
"mcpServers": {
"cypress": {
"command": "cypress-mcp-server"
}
}
}3.自定义配置
编辑 cypress-mcp.config.yaml:
cypress:
projectPath: /path/to/your/cypress/project
browser: chrome
headless: true
baseUrl: http://localhost:3000
viewportWidth: 1280
viewportHeight: 720
defaultCommandTimeout: 4000
requestTimeout: 5000
responseTimeout: 30000
mcp:
name: cypress-mcp-server
version: 1.0.0
security:
allowedCommands:
- '*'
maxExecutionTime: 300000🎯 用法
配置后,您可以使用Cursor中的自然语言提示与Cypress交互:
运行测试
Run all Cypress tests in headless modeRun the test file cypress/e2e/login.cy.js using FirefoxRun Cypress tests with baseUrl set to http://localhost:8080生成测试
Generate a Cypress test that validates user login. The test should visit the login page, enter credentials, click login, and verify redirect to dashboard. Save it to cypress/e2e/login.cy.js验证测试
Validate the Cypress test file cypress/e2e/checkout.cy.js for syntax errors获得结果
Show me the results from the last Cypress test runGet all screenshots from failed tests📚 可用工具
MCP服务器公开了以下工具:
cypress_run
使用指定选项运行Cypress测试。
参数:
spec(string,可选):特定的测试文件或glob模式browser(字符串,可选):要使用的浏览器(chrome、firefox、edge、electronic)headless(boolean,可选):在无头模式下运行baseUrl(字符串,可选):应用程序的基本URLenv(对象,可选):环境变量config(对象,可选):额外的Cypress配置
cypress_open
以头部模式打开Cypress Test Runner进行交互式调试。
参数:
browser(字符串,可选):要打开的浏览器project(字符串,可选):Cypress项目的路径
cypress_validate
验证Cypress测试文件或测试代码。
参数:
testFile(字符串,可选):测试文件的路径testCode(字符串,可选):要验证的测试代码
cypress_generate
根据描述生成Cypress测试文件。
参数:
description(字符串,必填):测试描述testName(字符串,可选):测试名称outputPath(字符串,可选):保存生成的测试的路径
cypress_get_results
从以前的运行中获取测试结果。
参数:
runId(string,可选):特定的运行ID,或对所有结果省略
cypress_get_screenshots
获取测试运行期间捕获的屏幕截图。
参数:
runId(字符串,可选):按运行ID筛选testPath(字符串,可选):按测试路径筛选
cypress_get_videos
在测试运行期间录制视频。
参数:
runId(字符串,可选):按运行ID筛选
cypress_execute_command
直接执行Cypress命令(高级用例的占位符)。
📖 例子
看 examples/ 目录:
- Cypress测试文件示例
- 光标提示示例
- 配置示例
🧪 测试
运行测试套件:
npm test运行覆盖率测试:
npm run test:coverage🔒 安全
MCP服务器包括几个安全功能:
- 命令允许列表:配置允许哪些Cypress命令
- 执行时间限制:防止长时间运行的测试被阻塞
- 输入验证:所有输入在执行前都经过验证
- 错误处理:全面的错误处理可防止崩溃
📝 日志记录
日志将写入:
- 控制台(开发模式)
logs/error.log(仅错误)logs/combined.log(所有日志)
使用设置日志级别 LOG_LEVEL 环境变量:
LOG_LEVEL=debug node src/index.js🐛 故障排除
服务器无法启动
- 检查Node.js版本:
node --version(应该是18+) - 验证依赖关系:
npm install - 检查配置文件语法
- 查看登录
logs/目录
测试未运行
- 验证Cypress是否已安装:
npx cypress verify - 检查配置中的项目路径
- 确保baseUrl可访问
- 检查浏览器权限
光标未连接
- 在游标设置中验证MCP配置
- 检查文件路径是否为绝对路径
- 配置更改后重新启动Cursor
- 检查控制台是否存在连接错误
浏览器问题
- 确保已安装Chrome/Firefox
- 检查浏览器权限
- 尝试手动运行Cypress:
npx cypress open - 查看Cypress文档以了解浏览器设置
🤝 贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加测试
- 提交拉取请求
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件
🔗 链接
🙏 致谢
- 模型上下文协议规范的拟人化
- Cypress团队打造了一个令人惊叹的测试框架
- 基于AI的开发工具光标
📧 支持
对于问题、疑问或贡献:
- 在GitHub上打开一个问题
- 检查现有文档
- 查看示例文件
______________________________________________________________________
备注:这是一个社区项目,与Cypress、Cursor或Anthropic没有正式关联。
