项目简介
MCP Nuclei Server 是一个基于 Model Context Protocol (MCP) 协议构建的 Nuclei 安全扫描服务。它允许大型语言模型(LLM)通过调用工具的方式执行 Nuclei 漏洞扫描,并支持多种扫描选项和结果输出格式,为LLM应用集成安全扫描能力提供了便利。
主要功能点
- Nuclei安全扫描:提供核心的漏洞扫描功能。
- 灵活的扫描配置:支持通过参数配置扫描目标、指定模板、按严重程度过滤漏洞等。
- JSON格式输出:扫描结果以结构化的JSON格式返回,方便LLM解析和利用。
- 易于集成:遵循MCP协议,可以轻松集成到支持MCP协议的LLM客户端。
安装步骤
-
克隆仓库
git clone https://github.com/crazyMarky/mcp_nuclei_server.git cd mcp_nuclei_server -
安装UV (用于创建和管理Python虚拟环境)
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/Mac powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Windows -
安装依赖
uv venv # 创建虚拟环境 source .venv/bin/activate # 激活虚拟环境 (Linux/Mac) .venv\Scripts\activate # 激活虚拟环境 (Windows) uv pip install mcp # 安装 mcp 库
服务器配置
为了让MCP客户端(例如CLINE)连接到 MCP Nuclei Server,您需要在客户端配置中添加服务器信息。以下是一个 JSON 格式的配置示例,您需要根据实际情况修改路径:
{ "mcpServers": { "nuclei_mcp_server": { // 服务器名称,客户端用此名称引用 "command": "/path/to/uv", // uv 命令的路径,请替换为您的 uv 可执行文件路径 "args": [ "--directory", "/path/to/nuclei_mcp_server/", // mcp_nuclei_server 仓库的路径,请替换为您的仓库目录 "run", "main.py" // 运行服务器的 Python 脚本 ], "env": { "NUCLEI_BIN_PATH": "/path/to/nuclei" // nuclei 可执行文件的路径,请替换为您的 nuclei 可执行文件路径 } } } }
配置参数说明:
- 'mcpServers': 定义 MCP 服务器列表。
- 'nuclei_mcp_server': 您为该服务器定义的名称,在客户端配置中会使用这个名称。
- 'command': 启动服务器的命令,这里使用 'uv' 来运行 Python 脚本。
- 'args': 传递给 'command' 的参数列表。
- '--directory': 指定工作目录为 'mcp_nuclei_server' 仓库目录。
- 'run main.py': 使用 'uv run' 命令执行 'main.py' 脚本,启动 MCP 服务器。
- 'env': 设置环境变量。
- 'NUCLEI_BIN_PATH': 必须配置。指定 Nuclei 扫描工具可执行文件的路径。请确保 Nuclei 已经安装并配置正确。
请务必将上述配置中的 '/path/to/uv', '/path/to/nuclei_mcp_server/', '/path/to/nuclei' 替换为您实际的路径。
基本使用方法
-
启动 MCP Nuclei Server: 按照上述服务器配置,在 MCP 客户端中配置并启动 'nuclei_mcp_server'。
-
客户端调用工具: 在 LLM 客户端中,可以使用 'nuclei_scan_start' 工具进行漏洞扫描。工具参数包括:
- 'target': 扫描目标 URL 或 IP 地址 (必填)。
- 'templates': 指定 Nuclei 模板列表 (可选)。
- 'severity': 漏洞严重程度过滤 (可选,例如 "critical", "high", "medium", "low", "info")。
- 'template_tags': 指定模板标签列表 (可选)。
- 'output_format': 输出格式,默认为 "json" (可选)。
例如,在支持 MCP 协议的 LLM 客户端中,可以构造如下请求来调用 'nuclei_scan_start' 工具:
{ "jsonrpc": "2.0", "method": "call", "params": { "server": "nuclei_mcp_server", // 使用之前配置的服务器名称 "tool": "nuclei_scan_start", "arguments": { "target": "https://example.com", "severity": "high" } }, "id": "scan-1" } -
获取扫描结果: MCP 服务器会将 Nuclei 扫描结果以 JSON 格式返回给客户端。客户端可以解析 JSON 结果,并根据需要进行后续处理。
信息
分类
开发者工具