NightVision MCP服务器使用说明
本项目是基于 Model Context Protocol (MCP) 构建的服务器端应用,它将NightVision安全平台的能力暴露给兼容MCP的AI客户端(如Claude Desktop、Cursor等),使您可以通过AI助手进行安全目标的管理、扫描、漏洞分析、API发现和流量记录等操作。
项目简介
该MCP服务器作为AI助手与NightVision平台之间的桥梁,通过调用本地安装的NightVision CLI或直接与NightVision API交互,响应AI客户端发出的工具调用请求。它管理与安全相关的“资源”(如目标、扫描结果、模板)和“工具”(如启动扫描、列出漏洞)。
主要功能点
- 目标管理: 列出、获取详情、创建和删除NightVision中的安全测试目标。
- 扫描管理: 发起针对目标的扫描,查看扫描状态和历史列表。
- 漏洞及路径分析: 查看扫描发现的漏洞详情,并列出扫描过程中探测到的路径(URL)。
- API端点发现: 分析代码库,生成OpenAPI规范,用于API目标的测试。
- Nuclei模板管理: 列出、创建、上传和分配自定义的Nuclei扫描模板。
- 流量记录与管理: 通过浏览器自动化记录目标应用的交互流量(生成HAR文件),列出并下载已记录的流量文件。
- 认证管理: 通过MCP工具完成NightVision平台的认证。
安装步骤
-
前提条件:
- 安装 Node.js 16+。
- 安装并配置 NightVision CLI (command line interface)。确保 'nightvision' 命令在系统 PATH 中可用,并且您已通过 'nightvision login' 完成认证。
- 拥有有效的 NightVision 账户和相应的权限。
-
克隆仓库:
git clone https://github.com/nvsecurity/nightvision-mcp.git cd nightvision-mcp -
安装依赖:
npm install -
构建项目:
npm run build构建成功后,可执行文件将位于 'build/index.js'。
MCP客户端配置
要让您的AI客户端(如Claude Desktop或Cursor)使用此MCP服务器,您需要在客户端的配置文件中添加服务器的启动信息。MCP客户端将通过标准输入/输出(Stdio)协议与服务器通信。
配置通常是一个JSON对象,指定服务器的名称、启动命令及其参数。
通用配置格式:
{ // ... 客户端的其他配置 ... "mcpServers": { "nightvision": { // 为您的NightVision MCP服务器指定一个独一无二的内部名称 "command": "node", // 启动服务器的可执行命令 (这里是node.js运行时) "args": ["/绝对路径/到/nightvision-mcp/build/index.js"] // 传递给 'command' 的参数,指定服务器主入口文件的绝对路径 } } // ... 其他MCP服务器或客户端配置 ... }
重要:
- 请将 '/绝对路径/到/nightvision-mcp/build/index.js' 替换为您系统中实际 'build/index.js' 文件的绝对路径。您可以使用 'pwd' (在项目根目录执行) 结合 'build/index.js' 来获取路径。
- 'command' 参数的值也应是 'node' 可执行文件的绝对路径,如果您遇到 'spawn node ENOENT' 错误。使用 'which node' 命令查找您的 Node.js 安装路径。
具体客户端配置位置:
- Claude for Desktop: 编辑 '~/Library/Application Support/Claude/claude_desktop_config.json' (macOS) 或 '%APPDATA%\Claude\claude_desktop_config.json' (Windows),在JSON根对象中添加 'mcpServers' 部分。
- Cursor: 在项目目录创建 '.cursor/mcp.json' 或在用户主目录创建 '~/.cursor/mcp.json',文件内容为上述JSON结构(不包含客户端其他配置,仅包含 'mcpServers' 根对象)。
添加配置后,请重启您的AI客户端。客户端启动时会自动启动并连接配置的MCP服务器。
基本使用方法
-
认证: 首次使用或认证过期时,您需要先进行认证。通过AI助手调用 'authenticate' 工具。例如:
- 询问AI:“Can you create a new NightVision authentication token?” (这会触发交互式CLI登录)
- 询问AI:“Can you authenticate with NightVision using token "YOUR_API_TOKEN"?” (使用已有的API token)
- 询问AI:“Can you check if I'm authenticated with NightVision?” (检查当前状态)
-
执行工具: 认证成功后,您可以通过自然语言或明确指定工具调用来使用各项功能。AI助手应能识别并调用已注册的工具。
- 示例(自然语言):
- “List all my NightVision targets.”
- “Start a scan on my target called "my-test-app" in the "Web Security" project.”
- “Show me high and critical severity vulnerabilities found in scan ID "SCAN_ID_HERE".”
- “Discover API endpoints in my JavaScript codebase in "./src/api" and save the spec to "./openapi.yml".” (这会触发询问项目路径的交互)
- 示例(模拟工具调用 - 具体交互方式取决于客户端):
Call Tool: list-targets Parameters: {"all": true, "format": "table"}
- 示例(自然语言):
-
交互: 部分工具(如 'discover-api' 和 'download-traffic')可能需要您在AI助手的对话中提供额外信息(如项目路径或下载路径),请根据提示回复。
该服务器将在后台运行,为AI助手提供能力。您可以在运行服务器的终端中看到详细的日志输出(通常是调试信息)。
故障排除
如果在安装或使用过程中遇到问题,请参考README中的 "Troubleshooting" 部分,其中包含了常见错误的解决方案,特别是关于Node.js路径和认证的问题。
信息
分类
开发者工具