使用说明
项目简介
DefectDojo MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它为 DefectDojo 漏洞管理工具提供了一个 MCP 接口。通过这个服务器,AI Agent 和其他 MCP 客户端可以程序化地与 DefectDojo API 进行交互,从而实现自动化漏洞数据访问和管理。
主要功能点
- 漏洞 (Findings) 管理工具: 提供检索、搜索、创建、更新状态和添加备注等功能,方便 AI Agent 获取和操作 DefectDojo 中的漏洞信息。
- 产品 (Products) 管理工具: 允许 AI Agent 列出 DefectDojo 中管理的产品信息,用于上下文理解和操作范围限定。
- 渗透测试活动 (Engagements) 管理工具: 支持列出、检索详情、创建、更新和关闭渗透测试活动,帮助 AI Agent 理解和管理安全测试流程。
总而言之,该MCP服务器将 DefectDojo 的核心功能以工具的形式暴露出来,使得 LLM 可以通过标准化的 MCP 协议,安全、可扩展地访问和操作 DefectDojo 平台的数据,实现漏洞管理的自动化。
安装步骤
本MCP服务器可以使用 'uvx' 或 'pip' 进行安装和运行。
方法一:使用 'uvx' (推荐)
'uvx' 可以隔离 Python 应用的依赖,推荐使用此方法。
-
确保已安装 'uvx'。
-
在命令行中执行以下命令即可运行 DefectDojo MCP Server:
uvx defectdojo-mcp
方法二:使用 'pip'
-
确保已安装 Python 和 'pip'。
-
如果需要从源代码安装,请先克隆仓库到本地,然后进入仓库目录执行安装命令:
pip install .或者,如果该软件包发布在 PyPI 上,可以直接使用以下命令安装:
pip install defectdojo-mcp -
安装完成后,在命令行中执行以下命令运行服务器:
defectdojo-mcp
服务器配置
MCP 客户端需要配置 MCP 服务器的连接信息才能正常使用。以下是两种安装方式对应的 MCP 客户端配置示例 (JSON 格式):
使用 'uvx' 安装的配置:
{ "mcpServers": { "defectdojo": { // 服务器名称,客户端用此名称引用 "command": "uvx", // 启动命令,这里使用 uvx "args": ["defectdojo-mcp"], // 命令参数,指定运行 defectdojo-mcp "env": { // 环境变量配置 "DEFECTDOJO_API_TOKEN": "YOUR_API_TOKEN_HERE", // 必须配置:DefectDojo API Token "DEFECTDOJO_API_BASE": "https://your-defectdojo-instance.com" // 必须配置:DefectDojo API Base URL } } } }
使用 'pip' 安装的配置:
{ "mcpServers": { "defectdojo": { // 服务器名称,客户端用此名称引用 "command": "defectdojo-mcp", // 启动命令,这里直接运行 defectdojo-mcp "args": [], // 命令参数,这里为空 "env": { // 环境变量配置 "DEFECTDOJO_API_TOKEN": "YOUR_API_TOKEN_HERE", // 必须配置:DefectDojo API Token "DEFECTDOJO_API_BASE": "https://your-defectdojo-instance.com" // 必须配置:DefectDojo API Base URL } } } }
配置说明:
- 'server name': 自定义服务器名称,在 MCP 客户端中通过此名称调用工具。例如示例中的 'defectdojo'。
- 'command': 启动 MCP 服务器的命令。根据安装方式选择 'uvx' 或 'defectdojo-mcp'。
- 'args': 启动命令的参数,通常为空列表 '[]'。
- 'env': 环境变量配置,用于服务器连接 DefectDojo 实例。
- 'DEFECTDOJO_API_TOKEN': 必须配置,DefectDojo 平台的 API Token,用于身份验证。请替换 'YOUR_API_TOKEN_HERE' 为您实际的 Token。
- 'DEFECTDOJO_API_BASE': 必须配置,DefectDojo 平台的 API 基础 URL,例如 'https://your-defectdojo-instance.com'。请替换为您的 DefectDojo 实例地址。
注意: 请务必配置正确的 'DEFECTDOJO_API_TOKEN' 和 'DEFECTDOJO_API_BASE' 环境变量,否则 MCP 服务器将无法连接到 DefectDojo 实例。
基本使用方法
配置完成后,在 MCP 客户端中可以使用 'use_mcp_tool' 函数调用 DefectDojo MCP Server 提供的工具。以下是一些示例,展示如何使用不同的工具:
获取漏洞 (Findings):
# 获取状态为 "Active" 且严重等级为 "High" 的漏洞 (最多返回 10 条) result = await use_mcp_tool("defectdojo", "get_findings", { "status": "Active", "severity": "High", "limit": 10 })
搜索漏洞 (Findings):
# 搜索包含关键词 "SQL Injection" 的漏洞 result = await use_mcp_tool("defectdojo", "search_findings", { "query": "SQL Injection" })
更新漏洞状态 (Findings):
# 将 ID 为 123 的漏洞状态更新为 "Verified" result = await use_mcp_tool("defectdojo", "update_finding_status", { "finding_id": 123, "status": "Verified" })
列出产品 (Products):
# 列出产品名称包含 "Web App" 的产品 (最多返回 10 条) result = await use_mcp_tool("defectdojo", "list_products", { "name": "Web App", "limit": 10 })
列出渗透测试活动 (Engagements):
# 列出产品 ID 为 42 且状态为 "In Progress" 的渗透测试活动 result = await use_mcp_tool("defectdojo", "list_engagements", { "product_id": 42, "status": "In Progress" })
更多工具的使用方法请参考仓库 'README.md' 文件中的 "Usage Examples" 部分。
信息
分类
开发者工具