G

GroundNG

@GroundNG/QA-MCP
0 Stars 375 次浏览 GroundNG 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "VibeShift": {
      "args": [
        "--directory",
        "path/to/cloned_repo",
        "run",
        "mcp_server.py"
      ],
      "command": "uv"
    }
  }
}

服务介绍

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

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

Twitter Follow
Twitter Follow

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

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

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

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

演示(点击播放视频)

演示
点击播放

功能特性

  • 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_scanrecord_test_flowrun_regression_testdiscover_test_flowslist_recorded_tests)。
4. VibeShift代理:
* 传统安全扫描: 在代码上调用静态分析工具(例如,Semgrep)。
* 录制: WebAgent(在自动化模式下)与LLM交互以规划步骤,通过BrowserController(Playwright)控制浏览器,处理HTML/视觉,并将生成的测试步骤保存到output/目录中的JSON文件中。
* 执行: TestExecutor加载指定的JSON测试文件,使用BrowserController根据录制的步骤与浏览器交互,并捕获结果、截图和控制台日志。
* 发现: CrawlerAgent使用BrowserControllerLLMClient来爬取页面并建议测试步骤。
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: DOM 上下文树生成大量借鉴了他们的工作,并进行了修改以适应静态/动态/视觉元素。特别感谢他们对开源的贡献。
  • Semgrep: 我们利用的一款强大的开源静态分析工具。
  • Nuclei: 用于基于模板的动态扫描功能。

贡献

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

  • 新的安全分析器集成。

许可证

本项目根据 APACHE-2.0 许可证发布。

相关 MCP 服务