Nuclei MCP集成
一种模型上下文协议(MCP)服务器实现,将Nuclei(一种快速且可定制的漏洞扫描器)与MCP生态系统集成在一起。此服务器提供了一个标准化的接口,用于以编程方式执行安全扫描和管理漏洞评估。
特性
- 漏洞扫描:使用Nuclei强大的扫描引擎执行全面的安全扫描
- 模板管理:添加、列出和管理自定义Nuclei模板
- 结果缓存:可配置的缓存系统,可优化重复扫描
- 并行操作:高性能扫描的线程安全实现
- RESTful API:与其他MCP兼容工具集成的标准化接口
- 详细报告:具有严重性级别和补救指导的结构化漏洞报告
工具和端点
核心工具
- 核扫描:使用高级过滤选项执行完整的Nuclei扫描
- 基本扫描:快速扫描,配置最少
- 漏洞_来源:查询和检索扫描结果
- add_template:添加自定义Nuclei模板
- list_templates:查看可用模板
- get_template:检索特定模板的详细信息
入门指南
先决条件
- Nuclei(如果不存在,将自动下载)
- Node.js 14+(用于MCP检查器,可选)
安装
选项1:下载预构建二进制文件(推荐)
- 从以下网址下载适用于您平台的最新版本 发布页面
- 提取存档
- 运行二进制文件:
# Linux/macOS
./nuclei-mcp
# Windows
nuclei-mcp.exe选项2:使用Go安装
go install github.com/your-org/nuclei-mcp/cmd/nuclei-mcp@latest选项3:从源代码构建
- 克隆存储库:
git clone https://github.com/your-org/nuclei-mcp.git
cd nuclei-mcp- 安装依赖项:
go mod download- 构建并运行:
go build -o nuclei-mcp ./cmd/nuclei-mcp
./nuclei-mcp运行服务器
启动MCP服务器:
# If using pre-built binary
./nuclei-mcp
# If built from source
go run cmd/nuclei-mcp/main.go使用MCP检查器
对于开发和测试,请使用MCP检查器:
# Install the MCP Inspector globally
npm install -g @modelcontextprotocol/inspector
# Start the inspector with the Nuclei MCP server
npx @modelcontextprotocol/inspector go run cmd/nuclei-mcp/main.go检查器UI将在 http://localhost:5173
配置
配置可以通过YAML配置文件或环境变量进行管理。服务器在以下位置查找配置(按优先级顺序):
- 指定的文件
--config旗帜 config.yaml在当前目录中$HOME/.nuclei-mcp/config.yaml/etc/nuclei-mcp/config.yaml
配置文件示例
创建一个 config.yaml 具有以下结构的文件:
server:
name: "nuclei-mcp"
version: "1.0.0"
port: 3000
host: "127.0.0.1"
cache:
enabled: true
expiry: 1h
max_size: 1000
logging:
level: "info"
path: "./logs/nuclei-mcp.log"
max_size_mb: 10
max_backups: 5
max_age_days: 30
compress: true
nuclei:
templates_directory: "nuclei-templates"
timeout: 5m
rate_limit: 150
bulk_size: 25
template_threads: 10
headless: false
show_browser: false
system_resolvers: true环境变量
所有配置选项也可以使用环境变量进行设置 NUCLEI_MCP_ 前缀(例如。, NUCLEI_MCP_SERVER_PORT=3000).嵌套配置可以使用双下划线设置(例如。, NUCLEI_MCP_LOGGING_LEVEL=debug).
MCP客户端配置
要将MCP客户端连接到Nuclei MCP服务器,请使用以下连接参数:
- 运输:
stdio(作为子进程运行时)或http(作为独立服务器运行时) - 命令:
go run cmd/nuclei-mcp/main.go(用于开发)或编译的二进制路径 - 工作目录:nucles mcp项目的根目录
对于HTTP连接,服务器将在 http://127.0.0.1:3000 默认情况下(可通过配置 server.port 和 server.host 配置选项)。
MCP客户端配置示例(JSON):
{
"mcpServers": {
"nuclei-scanner": {
"command": "go",
"args": ["run", "cmd/nuclei-mcp/main.go"],
"env": {
"NUCLEI_MCP_SERVER_PORT": "3000",
"NUCLEI_MCP_CACHE_ENABLED": "true"
}
}
}
}发布
此项目使用 GoRelease 自动发布。每个版本包括:
- 跨平台二进制文件 适用于Linux、macOS和Windows(amd64和arm64)
- 校验和 用于完整性验证
- 自动更改日志 代
- GitHub操作 用于CI/CD
创建发布
要创建新版本,请执行以下操作:
- 标记发布:
git tag v1.0.0
git push origin v1.0.0- GitHub操作将自动:
- 为所有支持的平台构建二进制文件 - 创建发布档案 - 生成校验和 - 使用changelog创建GitHub版本 - 上传所有工件
手动发布(开发)
对于本地测试版本:
# Test release build (no publishing)
goreleaser release --snapshot --clean
# Check configuration
goreleaser check重要提示
该项目正在积极开发中。在未来的版本中可能会引入突破性的更改。在生产环境中使用时,请确保固定到特定版本。
文档
贡献
欢迎投稿!请阅读我们的 贡献指南 了解详情。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
相关项目
非常感谢以下项目,这些项目激励并促进了这一实施:
