返回市场
核子-MCP

核子-MCP

作者:addcontent28 星标更新:2025-08-04

项目介绍

Nuclei MCP 集成

这是一个实现了Model Context Protocol (MCP)服务器,该服务器集成了Nuclei,一个快速且可定制的漏洞扫描器,与MCP生态系统相结合。此服务器提供了一个标准化接口,用于执行安全扫描和管理漏洞评估。

功能

  • 漏洞扫描:使用Nuclei的强大扫描引擎进行全面的安全扫描。
  • 模板管理:添加、列出并管理自定义的Nuclei模板。
  • 结果缓存:可配置的缓存系统以优化重复扫描。
  • 并发操作:线程安全实现以支持高性能扫描。
  • RESTful API:标准化接口,便于与其他符合MCP标准的工具集成。
  • 详细报告:结构化的漏洞报告,包括严重程度和修复建议。

工具与端点

核心工具

  • nuclei_scan:执行带有高级过滤选项的完整Nuclei扫描。
  • basic_scan:快速扫描,配置最少。
  • vulnerability_resource:查询和检索扫描结果。
  • add_template:添加自定义Nuclei模板。
  • list_templates:查看可用模板。
  • get_template:检索特定模板的详细信息。

快速开始

先决条件

  • Nuclei(如果不存在,将会自动下载)
  • Node.js 14+(仅用于MCP Inspector,可选)

安装

方案1:下载预构建二进制文件(推荐)

  1. 发布页面下载适用于您平台的最新版本。

  2. 解压档案。

  3. 运行二进制文件:

    # Linux/macOS
    ./nuclei-mcp
    
    # Windows
    nuclei-mcp.exe
    

方案2:使用Go安装

go install github.com/your-org/nuclei-mcp/cmd/nuclei-mcp@latest

方案3:从源码构建

  1. 克隆仓库:

    git clone https://github.com/your-org/nuclei-mcp.git
    cd nuclei-mcp
    
  2. 安装依赖:

    go mod download
    
  3. 构建并运行:

    go build -o nuclei-mcp ./cmd/nuclei-mcp
    ./nuclei-mcp
    

运行服务器

启动MCP服务器:

# 如果使用预构建二进制文件
./nuclei-mcp

# 如果从源码构建
go run cmd/nuclei-mcp/main.go

使用MCP Inspector

在开发和测试时,可以使用MCP Inspector:

# 全局安装MCP Inspector
npm install -g @modelcontextprotocol/inspector

# 启动Inspector并与Nuclei MCP服务器一起运行
npx @modelcontextprotocol/inspector go run cmd/nuclei-mcp/main.go

Inspector UI将在http://localhost:5173可用。

配置

可以通过YAML配置文件或环境变量来管理配置。服务器按以下顺序查找配置(优先级递减):

  1. --config标志指定的文件。
  2. 当前目录下的config.yaml
  3. $HOME/.nuclei-mcp/config.yaml
  4. /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: 10
  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(用于开发)或编译后的二进制文件路径。
  • 工作目录:nuclei-mcp项目的根目录。

对于HTTP连接,默认情况下服务器将在http://127.0.0.1:3000可用(可通过server.portserver.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"
      }
    }
  }
}

发布

该项目使用GoReleaser进行自动化发布。每个发布包括:

  • 跨平台二进制文件,适用于Linux、macOS和Windows(amd64和arm64)。
  • 校验和,用于完整性验证。
  • 自动生成变更日志
  • GitHub Actions,用于持续集成和交付。

创建发布

要创建新发布:

  1. 标记发布

    git tag v1.0.0
    git push origin v1.0.0
    
  2. GitHub Actions将自动

    • 为所有支持的平台构建二进制文件。
    • 创建发布归档。
    • 生成校验和。
    • 创建带有变更日志的GitHub发布。
    • 上传所有工件。

手动发布(开发)

为了本地测试发布:

# 测试发布构建(不发布)
goreleaser release --snapshot --clean

# 检查配置
goreleaser check

重要提示

此项目正在积极开发中。未来版本可能会引入破坏性更改。请确保在生产环境中使用时固定到特定版本。

文档

贡献

欢迎贡献!请阅读我们的贡献指南了解详情。

许可证

本项目采用MIT许可证 - 详情见LICENSE文件。

相关项目

特别感谢以下项目,它们启发并贡献了此实现: