README
🚀 Nessus MCP 服务器
Nessus MCP 服务器是一个用于与 Tenable Nessus 漏洞扫描程序交互的 Model Context Protocol (MCP) 服务器。它允许 AI 助手通过 MCP 协议执行漏洞扫描和分析,为安全检测工作提供了便利。
✨ 主要特性
- 漏洞扫描:可启动并监控针对指定目标的漏洞扫描,及时发现潜在安全风险。
- 扫描管理:能够列出、跟踪并检索已完成扫描的结果,方便对扫描情况进行管理和查看。
- 漏洞分析:支持搜索并获取特定漏洞的详细信息,有助于深入了解漏洞情况。
- 模拟模式:具备完全功能的模拟模式,无需 Nessus API 密钥即可进行测试,降低了测试门槛。
📦 安装指南
先决条件
- Node.js 16 或更高版本
- TypeScript(用于开发)
从源代码构建
- 克隆仓库:
git clone https://github.com/Cyreslab-AI/nessus-mcp-server.git
cd nessus-mcp-server
- 安装依赖项:
npm install
- 构建服务器:
npm run build
💻 使用示例
在模拟模式下运行
默认情况下,服务器以模拟模式运行,不需要 Nessus API 密钥:
node build/index.js
与 Nessus API 连接
要连接到真实的 Nessus 实例,请设置以下环境变量:
NESSUS_URL=https://your-nessus-instance:8834
NESSUS_ACCESS_KEY=your-access-key
NESSUS_SECRET_KEY=your-secret-key
然后运行服务器:
node build/index.js
与 Claude for Desktop 使用
要将此服务器与 Claude for Desktop 一起使用:
- 编辑您的 Claude for Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 添加服务器配置:
{
"mcpServers": {
"nessus": {
"command": "node",
"args": ["/path/to/nessus-mcp-server/build/index.js"],
"env": {
"NESSUS_URL": "https://your-nessus-instance:8834",
"NESSUS_ACCESS_KEY": "your-access-key",
"NESSUS_SECRET_KEY": "your-secret-key"
}
}
}
}
在模拟模式下,可以省略 env 部分。
示例交互
基础用法
# 启动扫描
start_scan:
target: 192.168.1.1
scan_type: basic-network-scan
# 获取扫描结果
get_scan_results:
scan_id: scan-1234567890
# 搜索漏洞
search_vulnerabilities:
keyword: log4j
📚 详细文档
工具
服务器提供的工具如下:
| 工具名称 | 描述 |
| ---- | ---- |
| list_scan_templates | 列出可用的 Nessus 扫描模板 |
| start_scan | 启动针对目标的新漏洞扫描 |
| get_scan_status | 检查运行中扫描的状态 |
| get_scan_results | 获取已完成扫描的结果 |
| list_scans | 列出所有扫描及其状态 |
| get_vulnerability_details | 获取特定漏洞的详细信息 |
| search_vulnerabilities | 搜索关键字相关的漏洞 |
🔧 技术细节
项目结构
src/index.ts:服务器主入口点src/nessus-api.ts:带有模拟回退的 Nessus API 客户端src/mock-data.ts:测试用的模拟漏洞数据src/tools/:工具实现src/utils/:实用函数
添加新工具
- 在适当的文件中定义工具架构和处理程序
src/tools/ - 在
src/index.ts中导入并注册工具
📄 许可证
本项目采用 MIT 许可证。
⚠️ 免责声明
此服务器与 Tenable 或其 Nessus 标记没有关联或得到认可。Nessus 是 Tenable, Inc. 的商标。
扫码联系在线客服