使用说明
项目简介
MCP NMAP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 AI 助手提供网络扫描功能。通过此服务器,AI 助手可以利用 NMAP 工具执行各种网络扫描任务,例如快速扫描、全端口扫描和版本检测,从而进行网络安全评估和分析。
主要功能点
- NMAP 功能集成: 将强大的 NMAP 网络扫描工具集成到 MCP 服务器中。
- 多种扫描类型: 支持快速扫描、全端口扫描和版本检测等常用 NMAP 扫描类型。
- 灵活的参数配置: 允许配置扫描目标、端口范围、扫描时间和额外 NMAP 参数。
- 标准 MCP 接口: 通过标准的 MCP 协议与 AI 客户端进行通信,易于集成和使用。
- 工具注册与调用: 作为一个 MCP 服务器,它注册了 'run_nmap_scan' 工具,供 MCP 客户端调用。
安装步骤
- 环境准备: 确保已安装 Windows 操作系统、 Node.js (v18 或更高版本) 和 NMAP,并将 NMAP 添加到系统环境变量 'PATH' 中,确保可以在命令行中直接运行 'nmap' 命令。
- 安装 MCP NMAP Server:
- 全局安装 (推荐): 打开命令提示符或 PowerShell,运行以下命令全局安装 'mcp-nmap-server':
npm install -g mcp-nmap-server - 本地安装: 如果您希望在项目中使用,可以在您的项目目录下运行:
npm install mcp-nmap-server
- 全局安装 (推荐): 打开命令提示符或 PowerShell,运行以下命令全局安装 'mcp-nmap-server':
服务器配置
要将 MCP NMAP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要在客户端的配置文件中添加服务器配置信息。以 Claude Desktop 为例,您需要编辑 'config.json' 文件(通常位于 'C:\Users\YOUR_USERNAME\AppData\Roaming\Claude\config.json')。在 'mcpServers' 字段中添加以下配置:
{ "mcpServers": { "nmap": { // 服务器名称,您可以自定义,例如 "nmap-scanner" "command": "node", // 启动服务器的命令,这里使用 Node.js 运行 "args": [ "path/to/mcp-nmap-server/dist/index.js" // 服务器入口文件路径,**请替换为实际的安装路径** ] } } // ... 其他 Claude Desktop 配置 }
配置参数说明:
- 'server name': 'nmap' (服务器名称,客户端用此名称标识和调用该服务器,可以自定义)
- 'command': '"node"' (运行 Node.js 环境的命令)
- 'args': '["path/to/mcp-nmap-server/dist/index.js"]' (启动服务器的参数,指向 'mcp-nmap-server' 包中编译后的 'index.js' 文件。 请务必将 'path/to/mcp-nmap-server' 替换为 MCP NMAP Server 的实际安装路径。 如果您是全局安装,可能需要找到 npm 全局包的安装目录,然后定位到 'mcp-nmap-server' 包下的 'dist/index.js'。 如果是本地安装,则使用相对路径或绝对路径指向您项目中的 'node_modules/mcp-nmap-server/dist/index.js')
基本使用方法
配置完成后,您的 AI 助手 (如 Claude) 就可以通过 'run_nmap_scan' 工具使用 NMAP 服务器了。例如,在与 AI 助手的对话中,您可以提出类似这样的指令:
"请扫描一下 localhost 的开放端口"
AI 助手如果配置了 MCP NMAP Server,就可以解析这个指令,并调用 'run_nmap_scan' 工具,设置 'target' 为 "localhost" 等参数来执行 NMAP 扫描,并将扫描结果返回给您。
'run_nmap_scan' 工具参数示例:
{ target: string; // 扫描目标主机或网络地址 ports?: string; // 可选,指定扫描端口,例如 "80,443" 或 "1-1000",不填则扫描默认端口 scanType?: 'quick' | 'full' | 'version'; // 可选,扫描类型,'quick' (快速扫描), 'full' (全端口扫描), 'version' (版本检测),默认为 'quick' timing?: number; // 可选,NMAP 时间模板 0-5,数字越大扫描越慢但更准确,默认为 3 additionalFlags?: string; // 可选,额外的 NMAP 命令行参数,例如 "-sV -A" }
信息
分类
开发者工具