# GroundNG
## 基本信息
- Slug: `groundng-qa-mcp`
- Source: modelscope
- Publisher: @GroundNG/QA-MCP
- Categories: testing-and-qa-tools / app-automation / browser-automation
- Hosted: No
- License: Apache License 2.0
- Source URL: https://www.modelscope.cn/mcp/servers/@GroundNG/QA-MCP
## 简介
暂无描述。
## MCP Server 详情

# VibeShift：为Vibe编码者设计的安全工程师

**VibeShift** 是一个智能安全代理，旨在与AI编码助手（如Cursor、GitHub Copilot、Claude Code等）无缝集成。它充当您的自动化安全工程师，分析由AI生成的代码，识别漏洞，并在不安全的代码进入您的代码库之前促进基于AI的修复。它利用**MCP（模型上下文协议）**来在您现有的AI编码环境中实现平滑交互。

[![Twitter Follow](https://img.shields.io/twitter/follow/Omiiee_Chan?style=social)](https://x.com/Omiiee_Chan)
[![Twitter Follow](https://img.shields.io/twitter/follow/_gauravkabra_?style=social)](https://x.com/_gauravkabra_)
![](https://img.shields.io/github/stars/groundng/vibeshift)

**问题所在：** AI编码助手极大地加速了开发过程，但它们也可能生成带有细微或明显安全漏洞的代码。手动审查所有AI生成的代码以查找安全缺陷既慢又容易出错，并且无法跟上AI开发的速度。这种“氛围驱动的开发”可能会使应用程序暴露于风险之中。

**解决方案：GroundNG的VibeShift** 通过以下方式弥补了这一关键的安全缺口：

1. **自动分析AI生成的代码：** 当AI助手生成或修改代码时，可以触发VibeShift使用一系列工具（SAST、DAST组件）和基于AI的检查执行安全分析。
2. **识别安全漏洞：** 在AI生成的代码片段或较大的代码块中精确定位常见的及复杂的漏洞（例如XSS、SQLi、不安全配置、逻辑错误）。
3. **促进基于AI的修复：** 向AI编码助手提供详细的反馈和漏洞信息，使其能够建议甚至自动应用修复措施。
4. **创建安全反馈循环：** 确保开发者及其AI助手立即意识到潜在的安全风险，从而快速纠正并学习。

这为AI辅助编码创造了一个“左移”的安全范式，将安全直接嵌入到开发工作流程中，帮助更快地发布更安全的代码。

# 演示（点击播放视频）
[![演示](https://img.youtube.com/vi/bN_RgQGa8B0/maxresdefault.jpg)](https://www.youtube.com/watch?v=bN_RgQGa8B0)
[![点击播放](https://img.youtube.com/vi/wCbCUCqjnXQ/maxresdefault.jpg)](https://youtu.be/wCbCUCqjnXQ)

## 功能特性

*   **MCP集成：** 与Cursor/Windsurf/Github Copilot/Roo Code无缝集成
*   **自动化安全扫描：** 在AI生成或修改代码时触发：
    *   **静态代码分析（SAST）：** 集成Semgrep等工具来查找源代码中的漏洞。
    *   **动态分析（DAST基础）：** 可调用Nuclei或ZAP等工具对运行中的组件进行检查（如果适用）。
*   **基于AI的测试录制：** 从自然语言描述自动生成基于Playwright的测试脚本（在自动化模式下）。
*   **确定性测试执行：** 使用Playwright可靠地运行记录的JSON测试文件。
*   **基于AI的测试发现：** 爬取网站并利用任何符合OpenAI格式的大规模语言模型(LLM)为发现的页面建议测试步骤。
*   **回归测试：** 轻松运行现有测试套件以捕获回归。
*   **自动化反馈循环：** 执行结果（包括失败、截图、控制台日志）被返回，直接向AI助手提供反馈。
*   **自我修复：** 如果代码发生变化，现有测试会自我修复。无需手动更新。
*   **UI测试：** 支持Playwright直接不支持的UI测试。例如，“检查文本是否溢出了div”。
*   **视觉回归测试**：使用传统的pixelmatch和视觉LLM方法。

## 工作原理


+-------------+       +-----------------+       +---------------------+       +-----------------+       +-------------+
|    用户     | ----> | AI编码助手      | ----> |     MCP服务器       | ----> | 扫描, 测试, 执行| ----> | 浏览器       |
| (开发者)    |       | (例如Copilot)   |       | (mcp_server.py)     |       | (SAST, 录制)   |       | (Playwright)|
+-------------+       +-----------------+       +---------------------+       +-----------------+       +-------------+
      ^                                                  |                            |                     |
      |--------------------------------------------------+----------------------------+---------------------+
                                      [测试结果/反馈]1.  **用户：** 向其AI编码助手发出提示（例如，“测试此仓库的安全漏洞”，“记录登录流程的测试”，“运行回归测试 test_login.json”）。
2.  **AI编码代理：** 识别意图并通过MCP调用`MCP Server`提供的适当工具。
3.  **MCP服务器：** 将请求路由到相应的函数（`get_security_scan`，`record_test_flow`，`run_regression_test`，`discover_test_flows`，`list_recorded_tests`）。
4.  **VibeShift代理：**
    *   **传统安全扫描：** 在代码上调用**静态分析工具**（例如，Semgrep）。
    *   **录制：** `WebAgent`（在自动化模式下）与LLM交互以规划步骤，通过`BrowserController`（Playwright）控制浏览器，处理HTML/视觉，并将生成的测试步骤保存到`output/`目录中的JSON文件中。
    *   **执行：** `TestExecutor`加载指定的JSON测试文件，使用`BrowserController`根据录制的步骤与浏览器交互，并捕获结果、截图和控制台日志。
    *   **发现：** `CrawlerAgent`使用`BrowserController`和`LLMClient`来爬取页面并建议测试步骤。
5.  **浏览器：** Playwright驱动实际的浏览器交互。
6.  **反馈循环：**
    *   综合安全报告（漏洞、位置、建议）通过MCP服务器返回给**AI编码代理**。
    *   AI编码代理将这些信息呈现给开发者，并可以利用这些信息**建议或应用修复**。
    *   目标是实现快速的代码生成 -> 安全扫描 -> AI驱动的修复 -> 重新扫描（可选）。

## 入门指南

### 前提条件

*   Python 3.10+
*   访问任何LLM（在我的测试中，gemini 2.0 flash免费版效果最佳）
*   安装MCP (`pip install mcp[cli]`)
*   安装Playwright浏览器 (`patchright install`)

### 安装

1.  **克隆仓库：**
    bash
    git clone https://github.com/GroundNG/VibeShift
    cd VibeShift
    
2.  **创建虚拟环境（推荐）：**
    bash
    python -m venv venv
    source venv/bin/activate # Linux/macOS
    # venvScriptsactivate # Windows
    
3.  **安装依赖项：**
    bash
    pip install -r requirements.txt
    
4.  **安装Playwright浏览器：**
    bash
    patchright install --with-deps # 安装浏览器和操作系统依赖项
    

### 配置

1.  将项目根目录中的`.env.example`重命名为`.env`文件。
2.  添加您的LLM API密钥和其他必要详细信息：
    dotenv
    # .env
    LLM_API_KEY="YOUR_LLM_API_KEY"
    
    *   将`YOUR_LLM_API_KEY`替换为您的实际密钥。

### 添加MCP服务器
将以下内容添加到您的MCP配置中：
json
{
  "mcpServers": {
    "VibeShift":{
      "command": "uv",
      "args": ["--directory","path/to/cloned_repo", "run", "mcp_server.py"]
    }
  }
}


在与您的AI编码助手交互时，请保持该服务器运行。

## 使用方法

通过支持MCP的AI编码助手使用自然语言与代理进行交互。

**示例：**
*   **安全分析：**
     *   **自动（首选）：** VibeShift自动分析由AI助手生成或显著修改的代码片段。
     *   **显式命令：**
          > "VibeShift，分析此函数的安全漏洞。"
          > "让VibeShift检查Copilot刚刚编写的Python代码是否存在SQL注入。"
          > "在提交之前，使用VibeShift确保生成的代码安全。"

*   **录制测试：**
    > "录制一个测试：访问https://practicetestautomation.com/practice-test-login/，在用户名字段中输入student，在密码字段中输入Password123，点击提交按钮，并验证文本Congratulations student是否可见。"
    *   *(代理将自动执行这些操作并将`test_....json`文件保存到`output/`目录中)*

*   **执行测试：**> "运行回归测试 `output/test_practice_test_login_20231105_103000.json`"
*   *(代理将执行指定文件中的步骤，并报告通过/失败状态以及错误和详细信息。)*

*   **发现测试步骤：**
    > "从 https://practicetestautomation.com/practice/ 开始发现潜在的测试步骤"
    *   *(代理将爬取网站，分析页面，并为每个页面返回建议的测试步骤。)*

*   **列出已记录的测试：**
    > "列出可用的已记录 Web 测试。"
    *   *(代理将返回在 `output/` 目录中找到的 `.json` 文件列表。)*

**输出：**
* **安全报告：** 返回给 AI 编码助手，详细说明：
    *   漏洞类型（例如，CWE、OWASP 类别）
    *   代码中的位置
    *   严重性
    *   证据/解释
    *   建议的修复措施（通常由 AI 执行）
*   **已记录的测试：** 保存为 `output/` 目录中的 JSON 文件（请参阅 `test_schema.md` 获取格式）。
*   **执行结果：** 以 JSON 对象形式返回，总结运行情况（状态、错误、证据路径）。完整结果也保存到 `output/execution_result_....json`。
*   **发现结果：** 以 JSON 对象形式返回，包含发现的 URL 和建议的步骤。完整结果保存到 `output/discovery_results_....json`。

## 灵感来源
* **[Browser Use](https://github.com/browser-use/browser-use/)**: DOM 上下文树生成大量借鉴了他们的工作，并进行了修改以适应静态/动态/视觉元素。特别感谢他们对开源的贡献。
* **[Semgrep](https://github.com/returntocorp/semgrep)**: 我们利用的一款强大的开源静态分析工具。
* **[Nuclei](https://github.com/projectdiscovery/nuclei)**: 用于基于模板的动态扫描功能。

  
## 贡献

我们欢迎贡献！请参阅 `CONTRIBUTING.md` 了解如何开始、报告问题和提交拉取请求的详细信息。我们特别感兴趣的是：

*   新的安全分析器集成。

## 许可证

本项目根据 [APACHE-2.0](LICENSE) 许可证发布。

