关于 VibeShift Web tester
VibeShift 是一个 MCP 服务,作为 AI 编码助手的安全代理,用于在 AI 生成的代码进入代码库之前进行安全分析。它同时提供基于 Playwright 的网页测试录制、回放与发现功能。适合使用 Cursor、Copilot、Claude Code 等工具进行开发的团队。
主要功能
- 01调用 Semgrep 等工具进行静态安全分析
- 02可选的 Nuclei、ZAP 等动态检查组件
- 03用自然语言录制 Playwright 网页测试
- 04确定性地回放已录制的 JSON 测试
- 05爬取页面并建议测试步骤
- 06返回执行结果、截图与控制台日志
适用场景
- 01对 AI 生成的代码进行 SQL 注入或 XSS 等漏洞检查
- 02在提交前为登录流程录制并回放回归测试
- 03让 AI 助手根据安全报告修复代码
MCP 相关
该项目是 MCP 服务,向 AI 编码助手提供 get_security_scan、record_test_flow、run_regression_test、discover_test_flows 和 list_recorded_tests 等工具。编码助手通过 MCP 调用这些工具并接收结果反馈。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
VibeShift:Vibe 编码者的安全工程师
VibeShift 是一款智能安全 Agent,旨在与 AI 编码助手(如 Cursor、GitHub Copilot、Claude Code 等)无缝集成。它充当自动化安全工程师,分析 AI 生成的代码、识别漏洞,并协助 AI 驱动的修复,确保不安全的代码在进入代码库之前得到处理。它借助 MCP(Model Context Protocol),在现有的 AI 编码环境中实现流畅交互。
问题: AI 编码助手大幅加快了开发速度,但也可能生成存在隐蔽或明显安全漏洞的代码。手动审查所有 AI 生成的代码以查找安全缺陷既缓慢又容易出错,也无法跟上 AI 开发的速度。这种“氛围驱动开发”可能会让应用暴露于风险之中。
解决方案:GroundNG 的 VibeShift 填补了这一关键安全缺口,使 AI 编码助手能够:
- 自动分析 AI 生成的代码: 当 AI 助手生成或修改代码时,可触发 VibeShift,使用一系列工具(SAST、DAST 组件)和 AI 驱动的检查进行安全分析。
- 识别安全漏洞: 找出 AI 生成的代码片段或较大代码块中的常见和复杂漏洞(例如 XSS、SQLi、不安全配置和逻辑缺陷)。
- 协助 AI 驱动的修复: 直接向 AI 编码助手提供详细反馈和漏洞信息,使其能够提出甚至自动应用修复方案。
- 建立安全反馈循环: 确保开发者及其 AI 助手立即了解潜在的安全风险,从而快速修正并积累经验。
这为 AI 辅助编码带来了“左移”安全范式,将安全直接融入开发工作流,帮助团队更快地交付更安全的代码。
演示(点击播放视频)
功能
- MCP 集成: 与 Cursor/Windsurf/Github Copilot/Roo Code 无缝集成
- 自动化安全扫描: 在 AI 生成/修改代码时触发,执行以下操作:
- 静态代码分析(SAST): 集成 Semgrep 等工具,查找源代码中的漏洞。
- 动态分析(DAST 原语): 可调用 Nuclei 或 ZAP 等工具,对正在运行的组件进行检查(如适用)。
- AI 辅助测试录制: 根据自然语言描述生成基于 Playwright 的测试脚本(自动化模式)。
- 确定性测试执行: 使用 Playwright 可靠地运行已录制的 JSON 测试文件。
- AI 驱动的测试发现: 爬取网站,并利用任意大模型(采用兼容 OpenAI 的格式)为发现的页面推荐测试步骤。
- 回归测试: 轻松运行现有测试套件,捕获回归问题。
- 自动化反馈循环: 返回执行结果(包括失败信息、屏幕截图、控制台日志),为 AI 助手提供直接反馈。
- 自愈: 代码更改时,现有测试会自动修复。无需手动更新。
- UI 测试: 也支持 Playwright 本身不支持的 UI 测试。例如,
Check if the text is overflowing in the div - 视觉回归测试:采用传统的 pixelmatch 和视觉大模型方案。
工作原理
+-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+
| User | ----> | AI Coding Agent | ----> | MCP Server | ----> | Scan, test, exec| ----> | Browser |
| (Developer) | | (e.g., Copilot) | | (mcp_server.py) | | (SAST, Record) | | (Playwright)|
+-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+
^ | | |
|--------------------------------------------------+----------------------------+---------------------+
[Test Results / Feedback]
- 用户: 向其 AI 编码助手发出提示词(例如,“检查此代码库是否存在安全漏洞”“为登录流程录制测试”“运行回归测试 'test_login.json'”)。
- AI 编码 Agent: 识别用户意图,并使用 MCP 调用
MCP Server提供的相应工具。 - MCP Server: 将请求路由到对应函数(
get_security_scan、record_test_flow、run_regression_test、discover_test_flows、list_recorded_tests)。 - VibeShift Agent:
- 传统安全扫描: 对代码调用静态分析工具(例如 Semgrep)。
- 录制:
WebAgent(在自动化模式下)与大模型交互以规划步骤,通过BrowserController(Playwright)控制浏览器,处理 HTML/视觉内容,并将生成的测试步骤保存为output/目录中的 JSON 文件。 - 执行:
TestExecutor加载指定的 JSON 测试文件,使用BrowserController根据录制的步骤与浏览器交互,并捕获结果、屏幕截图和控制台日志。 - 发现:
CrawlerAgent使用BrowserController和LLMClient爬取页面并推荐测试步骤。
- 浏览器: Playwright 驱动实际的浏览器交互。
- 反馈循环:
- 详尽的安全报告(漏洞、位置、建议)通过 MCP 服务返回给AI 编码 Agent。
- AI 编码 Agent 将报告呈现给开发者,并可利用相关信息提出或应用修复方案。
- 目标是实现快速循环:代码生成 -> 安全扫描 -> AI 驱动修复 -> 重新扫描(可选)。
快速开始
前置条件
- Python 3.10+
- 可使用任意大模型(根据我的测试,gemini 2.0 flash 免费使用时效果最好)
- 已安装 MCP(
pip install mcp[cli]) - 已安装 Playwright 浏览器(
patchright install)
安装
- 克隆代码库:
git clone https://github.com/GroundNG/VibeShift cd VibeShift - 创建虚拟环境(推荐):
python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows - 安装依赖:
pip install -r requirements.txt - 安装 Playwright 浏览器:
patchright install --with-deps # Installs browsers and OS dependencies
配置
- 将项目根目录中的 .env.example 重命名为 .env。
- 添加你的 LLM API 密钥和其他必要信息:
# .env LLM_API_KEY="YOUR_LLM_API_KEY"- 将
YOUR_LLM_API_KEY替换为你的实际密钥。
- 将
添加 MCP 服务
将此内容添加到你的 MCP 配置中:
{
"mcpServers": {
"VibeShift":{
"command": "uv",
"args": ["--directory","path/to/cloned_repo", "run", "mcp_server.py"]
}
}
}
与 AI 编码助手交互期间,请保持此服务运行。
用法
使用自然语言,通过支持 MCP 的 AI 编码助手与 Agent 交互。
示例:
-
安全分析:
- 自动分析(推荐): VibeShift 会自动分析 AI 助手生成或大幅修改的代码片段。
- 明确指令:
“VibeShift,分析此函数是否存在安全漏洞。” “让 VibeShift 检查 Copilot 刚写的 Python 代码是否存在 SQL 注入。” “提交前,使用 VibeShift 保护生成的代码。”
-
录制测试:
“录制测试:访问 https://practicetestautomation.com/practice-test-login/,在用户名字段中输入 ‘student’,在密码字段中输入 ‘Password123’,点击提交按钮,并确认文本 ‘Congratulations student’ 可见。”
- (Agent 将自动执行这些操作,并在
output/中保存一个test_....json文件。)
- (Agent 将自动执行这些操作,并在
-
执行测试:
“运行回归测试
output/test_practice_test_login_20231105_103000.json”- (Agent 将执行指定文件中的步骤,并报告 PASS/FAIL 状态以及错误和详细信息。)
-
发现测试步骤:
“从 https://practicetestautomation.com/practice/ 开始发现潜在的测试步骤”
- (Agent 将爬取网站、分析页面,并返回每个页面的建议测试步骤。)
-
列出已录制的测试:
“列出可用的已录制网页测试。”
- (Agent 将返回在
output/目录中找到的.json文件列表。)
- (Agent 将返回在
输出:
- 安全报告: 返回给 AI 编码助手,详细说明:
- 漏洞类型(例如,CWE、OWASP 类别)
- 代码中的位置
- 严重程度
- 证据/说明
- 建议的修复措施(通常由 AI 执行)
- 已录制的测试: 保存为
output/目录中的 JSON 文件(格式请参阅test_schema.md)。 - 执行结果: 以 JSON 对象的形式返回,总结运行情况(状态、错误、证据路径)。完整结果也会保存到
output/execution_result_....json。 - 发现结果: 以 JSON 对象的形式返回,其中包含发现的 URL 和建议步骤。完整结果保存到
output/discovery_results_....json。
灵感来源
- Browser Use:DOM 上下文树的生成深受其启发,并经过修改以适应静态/动态/视觉元素。特别感谢他们为开源事业作出的贡献。
- Semgrep:我们借助这一强大的开源静态分析工具。
- Nuclei:用于支持基于模板的动态扫描能力。
贡献
欢迎贡献!请参阅 CONTRIBUTING.md,了解如何开始、报告问题和提交拉取请求。我们尤其欢迎:
- 新的安全分析器集成。
许可证
本项目采用 APACHE-2.0 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。

