rhda mcp服务器
Red Hat依赖性分析MCP服务器-提供用于分析依赖关系和容器映像中漏洞的工具的MCP服务器。
安装
npm install用法
服务器需要两个参数:
--backend-url:信任依赖分析后端URL(用于漏洞扫描)--intel-server-url:信任英特尔服务器URL(用于漏洞评估和补救计划)
使用npx(推荐)
npx /path/to/rhda-mcp-server --backend-url --intel-server-url 或者,如果您在项目目录中:
npx . --backend-url --intel-server-url 直接使用tsx
npx tsx index.ts --backend-url --intel-server-url 例子:
npx /Users/rromerom/workspace/github.com/trustification/rhda-mcp-server --backend-url https://exhort.stage.devshift.net --intel-server-url https://intel.stage.devshift.net添加为MCP服务器
要将此服务器与MCP客户端(如Claude Desktop、Cursor或其他MCP兼容工具)一起使用,请添加以下配置:
适用于克劳德桌面
添加到您的Claude Desktop配置文件中(位置因操作系统而异):
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json\ Linux: ~/.config/Claude/claude_desktop_config.json
选项1:直接使用npx(推荐)
{
"mcpServers": {
"rhda": {
"command": "npx",
"args": [
"/path/to/rhda-mcp-server",
"--backend-url",
"https://api.trustify.dev",
"--intel-server-url",
"https://intel.trustify.dev"
]
}
}
}备注:在本地目录中使用npx时,它将自动使用 bin 入口从 package.json 这指向 run.sh。此脚本使用 npx tsx 在内部运行TypeScript文件。
选项2:显式使用npx和tsx
{
"mcpServers": {
"rhda": {
"command": "npx",
"args": [
"-y",
"tsx",
"/path/to/rhda-mcp-server/index.ts",
"--backend-url",
"https://api.trustify.dev",
"--intel-server-url",
"https://intel.trustify.dev"
]
}
}
}对于光标
添加到光标设置(.cursor/mcp.json 或在光标设置中):
{
"mcpServers": {
"rhda": {
"command": "npx",
"args": [
"/path/to/rhda-mcp-server",
"--backend-url",
"https://api.trustify.dev",
"--intel-server-url",
"https://intel.trustify.dev"
]
}
}
}直接使用npx(无需本地安装)
如果你想直接从git仓库运行它:
{
"mcpServers": {
"rhda": {
"command": "npx",
"args": [
"-y",
"tsx",
"https://raw.githubusercontent.com/your-org/rhda-mcp-server/main/index.ts",
"--backend-url",
"https://api.trustify.dev",
"--intel-server-url",
"https://intel.trustify.dev"
]
}
}
}重要提示:
- 替换
/path/to/rhda-mcp-server随着 绝对路径 将此项目添加到您的系统中 - 更新
--backend-url和--intel-server-url根据需要设置值 - 这
-y如果tsx不可用,npx中的标志会自动安装tsx - 更新配置后,重新启动MCP客户端(Claude Desktop、Cursor等)以使更改生效
可用工具
1. analyze_dependency_vulnerabilities
扫描并查找项目依赖关系中的漏洞。这是 第一步 在漏洞分析工作流程中。当您想发现项目依赖关系中存在哪些漏洞时,请使用此功能。
何时使用: “我的依赖项中有哪些漏洞?”、“扫描我的依赖关系”、“检查安全问题”、“查找我的项目中的漏洞”、“哪些CVE会影响我的依赖性?”
输入:
manifestPath(必填):包管理器文件的路径(pom.xml、package.json、build.gradle、build.grad、kts、go.mod、requirements.txt、Cargo.toml)directOnly(可选):如果true,仅分析直接依赖关系。如果false或省略,分析包括传递依赖关系在内的整个堆栈
输出: 返回包含受影响包、严重性和补救状态的CVE列表。结果包括 cve 和 packageRef 下一步所需的信息。
2. explain_vulnerability
解释并描述一个特定的CVE漏洞。提供详细的安全评估,包括可利用性、影响、限制、可信度和证据支持的声明。
何时使用: “什么是CVE-XXXX?”,“解释CVE-XXX”,“告诉我这个CVE的情况”,“这个漏洞的作用是什么?”,,“关于CVE-XXX的详细信息”
输入:
cve(必填):CVE ID(例如CVE-2024-2700)。 必须从以下来源获得analyze_dependency_vulnerabilities结果优先packageRef(必填):对象包含:
- purl:依赖性用于识别包裹(例如。, pkg:maven/org.postgresql/postgresql@42.7.1). 必须从以下来源获得 analyze_dependency_vulnerabilities 结果优先 - scope:依赖范围-以下之一: "runtime", "development", "test", "build" - dependency_graph:表示父依赖关系的URL数组(用于传递依赖关系)
注: 请勿使用 manifestPath 在这里。第一个电话 analyze_dependency_vulnerabilities,然后使用 cve 和 packageRef 根据这些结果。
输出: 返回详细的漏洞评估数据。
3. generate_remediation_plan
为特定CVE漏洞生成修复、解决方案或补救计划。提供可操作的补救选项和分步说明,以修复、缓解或安全地忽略问题。
何时使用: “如何修复CVE-XXXX?”,“此CVE的解决方案是什么?”,《如何修复此漏洞?》,《修复此漏洞》,《CVE-XXX的修复计划》,《如何解决此CVE?》
输入:
cve(必填):CVE ID(例如CVE-2024-2700)。 必须从以下来源获得analyze_dependency_vulnerabilities结果优先packageRef(必填):对象包含:
- purl:依赖性用于识别包裹(例如。, pkg:maven/org.postgresql/postgresql@42.7.1). 必须从以下来源获得 analyze_dependency_vulnerabilities 结果优先 - scope:依赖范围-以下之一: "runtime", "development", "test", "build" - dependency_graph:表示父依赖关系的URL数组(用于传递依赖关系)
注: 请勿使用 manifestPath 在这里。第一个电话 analyze_dependency_vulnerabilities,然后使用 cve 和 packageRef 根据这些结果。
输出: 返回补救计划 plan 和 intel 数据。
⚠️ 重要提示: 此工具返回 信息。补救计划必须提交给用户审查。未经用户明确批准,IDE不得自动采取任何行动、修改代码、更新依赖关系或进行更改。补救计划供用户自行审查和实施。
4. suppress_dependency_vulnerability
当漏洞发现被确认为误报或不适用时,抑制或忽略漏洞发现。这会将依赖关系添加到忽略列表中,这样它就不会出现在未来的扫描中。 这并不能修复漏洞 -它只会抑制这一发现。
何时使用: 当CVE被确认为:
- “不适用”
- “假阳性”
- “不影响此版本”
- “仅影响不同版本”
或者当用户 明确地 要求:
- “忽略此漏洞”
- “压制这一发现”
- “标记为假阳性”
- “此CVE不适用”
输入:
dependencyName(必填):要忽略的依赖项名称(例如。,io.quarkus:quarkus-core)manifestPath(必填):声明依赖关系的清单文件的路径(pom.xml、package.json等)
输出:
- 对于
package.json:自动更新文件以将依赖关系添加到trustify-da-ignore数组 - 对于其他格式(pom.xml、go.mod等):返回如何手动添加忽略注释的说明
⚠️ 重要提示: 仅当用户 明确要求 抑制/忽略漏洞。不要仅仅因为识别出假阳性就自动调用它——首先将信息呈现给用户,然后等待他们的明确指示来抑制它。
工作流程
建议的漏洞分析工作流程是:
- 从开始
analyze_dependency_vulnerabilities-扫描您的项目以发现漏洞 - 使用
explain_vulnerability-获取您想要了解的特定CVE的详细信息 - 使用
generate_remediation_plan-获取可操作的步骤来修复漏洞 - 使用
suppress_dependency_vulnerability-仅在明确要求时,抑制误报
实现细节
- 使用stdio传输进行MCP通信
- 将完整分析报告保存到临时目录
- 与Trustify依赖分析后端集成,用于漏洞扫描
- 与Trustify Intel Server集成,用于漏洞评估和补救计划
- 使用Zod进行模式验证
- 支持多种包管理器:Maven(pom.xml)、NPM(package.json)、Gradle(build.Gradle、build.Gradle.kts)、Go(Go.mod)、Python(requirements.txt)、Rust(Cargo.toml)
这个项目使用Node.js和TypeScript,可以用 npx 或 tsx.
