这是一个实现了Model Context Protocol (MCP)服务器,该服务器集成了Nuclei,一个快速且可定制的漏洞扫描器,与MCP生态系统相结合。此服务器提供了一个标准化接口,用于执行安全扫描和管理漏洞评估。
从发布页面下载适用于您平台的最新版本。
解压档案。
运行二进制文件:
# Linux/macOS
./nuclei-mcp
# Windows
nuclei-mcp.exe
go install github.com/your-org/nuclei-mcp/cmd/nuclei-mcp@latest
克隆仓库:
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服务器:
# 如果使用预构建二进制文件
./nuclei-mcp
# 如果从源码构建
go run cmd/nuclei-mcp/main.go
在开发和测试时,可以使用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配置文件或环境变量来管理配置。服务器按以下顺序查找配置(优先级递减):
--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: 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客户端到Nuclei MCP服务器,请使用以下连接参数:
stdio(当作为子进程运行时)或http(当作为独立服务器运行时)。go run cmd/nuclei-mcp/main.go(用于开发)或编译后的二进制文件路径。对于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"
}
}
}
}
该项目使用GoReleaser进行自动化发布。每个发布包括:
要创建新发布:
标记发布:
git tag v1.0.0
git push origin v1.0.0
GitHub Actions将自动:
为了本地测试发布:
# 测试发布构建(不发布)
goreleaser release --snapshot --clean
# 检查配置
goreleaser check
此项目正在积极开发中。未来版本可能会引入破坏性更改。请确保在生产环境中使用时固定到特定版本。
欢迎贡献!请阅读我们的贡献指南了解详情。
本项目采用MIT许可证 - 详情见LICENSE文件。
特别感谢以下项目,它们启发并贡献了此实现: