使用说明

项目简介

Trivy Security Scanner MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在通过标准化的接口为 LLM 客户端(如 Cursor IDE)提供 Trivy 漏洞扫描能力。作为一个概念验证项目,它演示了 MCP、Cursor IDE 和 Trivy 的集成潜力,用于实验和学习目的。

主要功能点

  • 项目安全扫描: 使用 Trivy 自动扫描项目目录,检测安全漏洞。
  • 自动修复漏洞: 自动更新有漏洞的依赖包到安全版本。
  • 多语言包支持: 支持多种包管理器,包括 Python, Node.js, Ruby, Go 等。

安装步骤

  1. 安装 Python 3.12 或更高版本:请确保您的系统已安装 Python 3.12 或更高版本。
  2. 安装 Trivy:根据您的操作系统安装 Trivy 漏洞扫描器。例如,在 macOS 上可以使用 Homebrew:
    brew install trivy
    请参考 Trivy 官方文档 获取更详细的安装指导。
  3. 克隆仓库:将 Trivy Security Scanner MCP Server 仓库克隆到本地:
    git clone https://github.com/norbinsh/cursor-mcp-trivy.git
    cd cursor-mcp-trivy
  4. 创建并激活虚拟环境
    python -m venv .venv
    source .venv/bin/activate  # 或 .venv\Scripts\activate (Windows)
  5. 安装依赖
    pip install -r requirements.txt

服务器配置

为了让 MCP 客户端(例如 Cursor IDE)连接到 Trivy Security Scanner MCP Server,您需要在客户端中配置服务器信息。以下是使用 SSE 传输协议的配置示例(JSON 格式):

{
  "servers": [
    {
      "name": "Trivy Security Scanner",  // MCP 服务器名称,可自定义
      "command": "python",           // 启动服务器的命令
      "args": [                      // 启动服务器的参数
        "server.py",                  // 服务器脚本文件名
        "--transport",                // 指定传输协议
        "sse",                        // 使用 SSE 协议
        "--port",                     // 指定端口号
        "54321"                       // 服务器监听端口为 54321
      ]
    }
  ]
}

配置说明:

  • '"name"': 服务器的名称,在 MCP 客户端中用于标识和选择该服务器。
  • '"command"': 启动服务器的可执行命令,这里使用 'python' 来运行 'server.py' 脚本。
  • '"args"': 传递给 'server.py' 脚本的命令行参数。
    • '"server.py"': 指定要运行的服务器脚本文件。
    • '"--transport", "sse"': 指定服务器使用 SSE (Server-Sent Events) 传输协议。
    • '"--port", "54321"': 指定服务器监听的端口为 54321。您可以根据需要修改端口号,但要确保与客户端配置一致。

在 Cursor IDE 中配置 MCP 服务器:

  1. 打开 Cursor IDE 的设置 (Settings)。
  2. 导航到 "Features" -> "MCP Servers"。
  3. 点击 "Add Server" 添加新的 MCP 服务器配置。
  4. 将上述 JSON 配置信息填入 Cursor IDE 的 MCP 服务器配置中。 (通常 Cursor IDE 会提供界面来填写这些信息,而不是直接编辑 JSON,请参考 Cursor IDE 的文档)
  5. 确保配置中的端口号和 'server.py' 启动时使用的端口号一致。

基本使用方法

  1. 启动服务器:在终端中,激活虚拟环境,并使用以下命令启动 Trivy Security Scanner MCP Server (使用 SSE 传输协议,端口 54321):

    python server.py --transport sse --port 54321

    服务器成功启动后,会显示 "Starting Trivy Security Scanner MCP server..." 的信息。

  2. 在 Cursor IDE 中使用

    • 自动扫描 (通过 '.cursorrules' 文件): 在您的项目根目录下创建或编辑 '.cursorrules' 文件,添加以下内容以配置在依赖文件变更时自动触发安全扫描:

      After making changes in any of the package dependency/manifest files, scan the project for security vulnerabilities.
      Fixes should only be according to the desired version reported by the scanner.
      If the scanner reports a fix unrelated to our change, ignore it.
      After performing the fix, scan the project for security vulnerabilities again.

      这样,当您修改 'requirements.txt', 'package.json' 等依赖文件后,Cursor IDE 将自动调用 'scan_project' 工具进行安全扫描。

    • 手动触发扫描和修复 (通过 Composer 界面): 您可以在 Cursor IDE 的 Composer 界面 (聊天窗口) 中,使用自然语言提示 Agent 调用工具。例如:

      • 扫描项目: 'Please scan my project for security vulnerabilities'
      • 修复漏洞: 'Please fix the vulnerability in package <package_name> to version <target_version>' (需要替换 '<package_name>' 和 '<target_version>' 为具体的包名和目标版本,例如: 'Please fix the vulnerability in package requests to version 2.30.0')

注意:

  • 本项目是一个 Proof of Concept,仅供学习和实验使用,不适用于生产环境。
  • 使用 'fix_vulnerability' 工具会自动修改项目中的依赖文件,请务必谨慎操作,并建议在代码提交前进行版本控制和代码审查。
  • 确保您的系统已正确安装并配置 Trivy,并且 Trivy 可执行文件在系统 PATH 环境变量中。

信息

分类

开发者工具