使用说明
项目简介
Trivy Security Scanner MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在通过标准化的接口为 LLM 客户端(如 Cursor IDE)提供 Trivy 漏洞扫描能力。作为一个概念验证项目,它演示了 MCP、Cursor IDE 和 Trivy 的集成潜力,用于实验和学习目的。
主要功能点
- 项目安全扫描: 使用 Trivy 自动扫描项目目录,检测安全漏洞。
- 自动修复漏洞: 自动更新有漏洞的依赖包到安全版本。
- 多语言包支持: 支持多种包管理器,包括 Python, Node.js, Ruby, Go 等。
安装步骤
- 安装 Python 3.12 或更高版本:请确保您的系统已安装 Python 3.12 或更高版本。
- 安装 Trivy:根据您的操作系统安装 Trivy 漏洞扫描器。例如,在 macOS 上可以使用 Homebrew:
请参考 Trivy 官方文档 获取更详细的安装指导。brew install trivy - 克隆仓库:将 Trivy Security Scanner MCP Server 仓库克隆到本地:
git clone https://github.com/norbinsh/cursor-mcp-trivy.git cd cursor-mcp-trivy - 创建并激活虚拟环境:
python -m venv .venv source .venv/bin/activate # 或 .venv\Scripts\activate (Windows) - 安装依赖:
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 服务器:
- 打开 Cursor IDE 的设置 (Settings)。
- 导航到 "Features" -> "MCP Servers"。
- 点击 "Add Server" 添加新的 MCP 服务器配置。
- 将上述 JSON 配置信息填入 Cursor IDE 的 MCP 服务器配置中。 (通常 Cursor IDE 会提供界面来填写这些信息,而不是直接编辑 JSON,请参考 Cursor IDE 的文档)
- 确保配置中的端口号和 'server.py' 启动时使用的端口号一致。
基本使用方法
-
启动服务器:在终端中,激活虚拟环境,并使用以下命令启动 Trivy Security Scanner MCP Server (使用 SSE 传输协议,端口 54321):
python server.py --transport sse --port 54321服务器成功启动后,会显示 "Starting Trivy Security Scanner MCP server..." 的信息。
-
在 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 环境变量中。
信息
分类
开发者工具