Trivy安全扫描器MCP服务器
一种模型上下文协议(MCP)服务器,通过以下方式提供安全漏洞扫描功能 Trivy,一个全面的安全扫描器。这允许您扫描漏洞,并直接从Claude Desktop、Cursor或任何兼容MCP的客户端自动修复它们。
特性
- 🔍 项目扫描:扫描目录以查找依赖关系中的安全漏洞
- 🔧 自动修复:自动将软件包更新为安全版本
- 📦 多语言支持:支持Python(pip)、Node.js(npm)、Go、Rust、PHP和Ruby
- 📊 详细报告:获取具有严重级别的全面漏洞报告
- 🤖 人工智能集成:与Claude Desktop和Cursor无缝协作
先决条件
1.安装Trivy
macOS:
brew install trivyLinux:
sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy窗户: 下载自 Trivy发布
2.Python 3.8+
请确保您已安装Python 3.8或更高版本。
安装
- 克隆此存储库:
git clone https://github.com/your-username/trivy-mcp-server.git
cd trivy-mcp-server- 安装依赖项:
pip install -r requirements.txt- 测试安装:
python server.py --help配置
🖥️ Claude桌面设置
- 找到您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 视窗: ~/AppData/Roaming/Claude/claude_desktop_config.json
- 将Trivy MCP服务器添加到您的配置中:
{
"mcpServers": {
"trivy-security-scanner": {
"command": "python",
"args": [
"/full/path/to/trivy-mcp-server/server.py",
"--transport",
"stdio"
],
"env": {}
}
}
}- 替换
/full/path/to/带有克隆存储库的实际路径
- 重新启动克劳德桌面
- 验证它是否正常工作:
在Claude Desktop中,您现在应该可以问:
> “扫描我的项目以查找安全漏洞”
🎯 光标设置
- 打开光标设置 (
Cmd/Ctrl + ,)
- 在设置中搜索“MCP”
- 添加Trivy MCP服务器配置:
{
"mcp.servers": {
"trivy-security-scanner": {
"command": "python",
"args": [
"/full/path/to/trivy-mcp-server/server.py",
"--transport",
"stdio"
]
}
}
}- 替换
/full/path/to/使用存储库的实际路径
- 重新启动游标
- 测试集成:
现在,您可以在Cursor的AI聊天中直接使用Trivy命令。
用法
一旦配置了Claude Desktop或Cursor,您就可以使用自然语言命令:
🔍 扫描漏洞
"Scan my current project for security vulnerabilities"
"Check for critical and high severity vulnerabilities only"
"Scan the /path/to/my/project directory for security issues"🔧 修复漏洞
"Fix the lodash vulnerability in my project"
"Update the vulnerable packages to secure versions"
"Do a dry run to see what packages would be updated"📚 研究漏洞
"Get details about CVE-2021-44228"
"Tell me more about this vulnerability: CVE-2021-23337"可用工具
MCP服务器提供三个主要工具:
1. scan_project
- 目的:扫描目录以查找安全漏洞
- 参数:
- workspace (必需):要扫描的目录路径 - severity_filter (可选):按严重程度过滤(例如,“高,临界”) - include_fixed (可选):包括已修复的漏洞
2. fix_vulnerability
- 目的:自动将软件包更新为安全版本
- 参数:
- workspace (必填):包含项目的目录 - pkg_name (必填):要更新的包的名称 - target_version (必填):要更新的版本 - dry_run (可选):模拟修复而不进行更改
3. get_vulnerability_details
- 目的:获取有关特定漏洞的详细信息
- 参数:
- vulnerability_id (必填):CVE ID(例如,“CVE-2021-44228”)
示例工作流
每日安全审查
- 晨间扫描:“扫描我的所有项目以查找新漏洞”
- 审查结果:检查发现问题的严重性和影响
- 应用修复程序:“修复发现的关键漏洞”
- 验证:重新扫描以确认已应用修复
拉取请求安全检查
- 合并前:“扫描此分支以查找任何新的安全漏洞”
- 如果发现问题,则阻止:如果引入了关键漏洞,请不要合并
- 可能时自动修复:“将易受攻击的依赖项更新为安全版本”
脆弱性研究
- 深潜:“获取有关CVE-2021-44228的详细信息,并检查我的任何项目是否受到影响”
- 影响评估:了解范围和严重程度
- 补救计划:计划更新和修复
支持的包管理器
- ✅ python:
requirements.txt,pyproject.toml - ✅ Node.js:
package.json - ✅ 去:
go.mod - 🔄 锈:
Cargo.toml(仅检测) - 🔄 PHP程序:
composer.json(仅检测) - 🔄 红宝石:
Gemfile(仅检测)
*注意:Python、Node.js和Go目前支持自动修复。其他语言具有手动修复指导的检测支持。*
故障排除
常见问题
1.“未找到Trivy”错误
- 确保Trivy已安装并位于您的PATH中
- 测试:
trivy --version
2.“权限被拒绝”错误
- 确保server.py文件具有执行权限
- 尝试:
chmod +x server.py
3.“找不到模块”错误
- 安装依赖项:
pip install -r requirements.txt - 检查Python版本:
python --version(应为3.8+)
4.Claude Desktop无法识别服务器
- 检查配置中的文件路径是否正确(使用绝对路径)
- 配置更改后重新启动Claude Desktop
- 检查Claude Desktop日志中的错误消息
获取帮助
- 检查Trivy安装:
trivy --version - 测试服务器:
python server.py --help - 验证MCP连接:在Claude Desktop/Cursor中查找服务器日志
- 检查文件路径:确保配置文件中的所有路径都是绝对正确的
发展
独立运行
# Start with default settings (SSE transport on port 54321)
python server.py
# Start with custom settings
python server.py --port 8080 --transport sse
# Start for Claude Desktop (stdio transport)
python server.py --transport stdio添加新的包管理器
要添加对其他包管理器的支持,请执行以下操作:
- 更新
detect_package_manager()函数 - 在中添加修复逻辑
fix_vulnerability()函数 - 使用示例项目进行测试
安全考虑
- 服务器执行系统命令(Trivy、包管理器)
- 在生产中应用修复程序之前,始终审查更改
- 考虑在生产环境中以有限权限运行
- 验证工作区路径以防止目录遍历攻击
贡献
欢迎投稿!请随时提交拉取请求。
许可证
这个项目是开源的。请参阅各自许可证的依赖关系。
______________________________________________________________________
🔒 通过自动漏洞扫描保护您的代码安全!
