网络扫描服务

nmap-mcp 是一个基于 Nmap 的 AI 驱动网络安全扫描服务,提供端口扫描、主机发现、服务检测、操作系统指纹识别和漏洞扫描等功能,适用于自动化安全评估工作流。

  • by Vorota-ai
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 vorotaai/nmap-mcp

使用说明

Vorota AI的Nmap MCP服务器

nmap mcp 生产准备好了吗 模型上下文协议(MCP) 该服务器封装了Nmap(行业标准网络扫描器),使AI代理能够执行自动化的网络安全评估。由...建造 AI 语言,它提供了6种扫描工具、9种扫描类型和6个定时模板,使其成为当今人工智能安全工作流程中最全面的Nmap集成。


快速开始

使用Docker构建并运行nmap mcp(包括nmap):

docker build -t nmap-mcp https://github.com/vorotaai/nmap-mcp.git
docker run --rm -i nmap-mcp

然后添加到任何MCP客户端:

{
  "mcpServers": {
    "nmap-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "nmap-mcp"]
    }
  }
}

特性

Vorota AI的nmap mcp向任何兼容mcp的AI代理提供了6种专用扫描工具:

  • 端口扫描 --TCP连接、SYN隐身、UDP、FIN、XMAS、NULL和ACK扫描类型,具有可配置的端口范围和定时模板(T0到T5)。
  • 主机发现 --Ping扫描整个子网以查找活动主机,然后再进行更深入的扫描。
  • 服务检测 --识别开放端口上运行的服务及其确切版本,探头强度可调(0-9)。
  • 操作系统识别 --通过TCP/IP协议栈分析确定操作系统。
  • 漏洞扫描 --在安全类别中运行Nmap脚本引擎(NSE)脚本以检测已知漏洞。
  • 快速扫描 --快速的前N端口扫描,具有激进的定时,可实现快速侦察。

所有工具都包括内置的输入验证、网络大小限制和超时强制,以防止误用。


推荐工作流程

为了进行全面的人工智能安全评估,nmap mcp工具被设计为按顺序使用:

  1. 发现主机 --使用 discover-hosts 在网络上查找实时目标。
  2. 快速扫描 --快跑 quick-scan 在发现的主机上快速查看开放端口。
  3. 端口扫描 --使用 scan-ports 使用特定的扫描类型进行更深入的端口分析。
  4. 检测服务 --快跑 detect-services 在开放端口上识别软件版本。
  5. 检测操作系统 --使用 detect-os 对操作系统进行指纹识别(需要root)。
  6. 扫描漏洞 --快跑 scan-vulnerabilities 检查已知的安全问题。

像Claude、Cursor和VS Code Copilot这样的AI代理可以在一次对话中自动编排整个工作流程。


安装

Docker(推荐——包括Nmap)

docker build -t nmap-mcp https://github.com/vorotaai/nmap-mcp.git

来源

需要Python 3.10+, 扫描器 在PATH上,以及 紫外线:

git clone https://github.com/vorotaai/nmap-mcp.git
cd nmap-mcp
uv sync --all-groups
nmap-mcp

与MCP客户端一起使用

nmap mcp与所有主要的mcp客户端兼容: 克劳德桌面, 克劳德代码, 光标, VS代码副本, 帆板运动,以及 克莱恩.

首先,构建Docker镜像:

docker build -t nmap-mcp https://github.com/vorotaai/nmap-mcp.git

克劳德桌面

添加到您的Claude Desktop配置文件(claude_desktop_config.json):

{
  "mcpServers": {
    "nmap-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "nmap-mcp"]
    }
  }
}

克劳德代码

claude mcp add nmap-mcp -- docker run --rm -i nmap-mcp

光标

或者手动添加到光标MCP设置中(.cursor/mcp.json):

{
  "mcpServers": {
    "nmap-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "nmap-mcp"]
    }
  }
}

VS代码/VS代码内部人员

添加到您的VS代码设置(.vscode/mcp.json):

{
  "servers": {
    "nmap-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "nmap-mcp"]
    }
  }
}

风帆/克莱恩

使用与上述Claude Desktop相同的服务器配置。有关配置文件的位置,请参阅客户的文档。


可用工具

工具 说明 关键参数 需要根
scan-ports 具有可配置扫描类型、端口范围和定时的端口扫描 target, ports, scan_type (tcp_connect、syn、udp、fin、xmas、null、ack), timing (T0-T5) 某些类型
discover-hosts 使用ping扫描(-sn)在网络上查找实时主机 target (支持CIDR表示法) 否
detect-services 识别开放端口上的服务和版本(-sV) target, ports, intensity (0-9) 否
detect-os 通过TCP/IP堆栈分析进行操作系统指纹识别(-O) target 是的
scan-vulnerabilities 在安全类别中运行NSE漏洞检测脚本 target, ports, categories (身份验证、默认、发现、安全、版本、vuln) 否
quick-scan 快速的前N端口扫描,具有强大的定时能力 target, top_ports (要扫描的顶部端口数) 否

扫描类型

这 scan-ports 该工具支持7种扫描类型,每种类型适用于不同的场景:

扫描类型 标记 需要根 描述
tcp_connect -sT 否 完整TCP握手;可靠但可检测
syn -sS 是 SYN隐形扫描;快速且不易检测
udp -sU 是 UDP端口扫描;速度较慢,但可以找到UDP服务
fin -sF 是 FIN扫描;隐形,绕过一些防火墙
xmas -sX 是 XMAS扫描;设置FIN、PSH、URG标志
null -sN 是 空扫描;不发送标志
ack -sA 是 ACK扫描;映射防火墙规则集

计时模板

模板 名称 用例
T0 偏执狂 IDS逃避
T1 偷偷摸摸 IDS规避
T2 礼貌 带宽使用减少
T3 正常 默认速度
T4 积极进取 快速可靠的网络
T5 疯狂 最快,可能会失去准确性

配置

nmap mcp是通过环境变量配置的:

变量 默认值 描述
NMAP_BINARY nmap Nmap二进制文件的路径
NMAP_SCAN_TIMEOUT 600 最大扫描持续时间(秒)
NMAP_MAX_TARGETS 256 每次扫描的最大目标主机数(最大/24个子网)
FASTMCP_LOG_LEVEL WARNING 日志记录级别(调试、信息、警告、错误)

通过Docker进行自定义配置的示例:

{
  "mcpServers": {
    "nmap-mcp": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "NMAP_SCAN_TIMEOUT=120",
        "-e", "NMAP_MAX_TARGETS=128",
        "-e", "FASTMCP_LOG_LEVEL=ERROR",
        "nmap-mcp"
      ]
    }
  }
}

安全

需要授权。 nmap-mcp是一个执行网络扫描的安全工具。您必须确保:

  • 您有扫描任何目标网络或主机的明确授权。
  • 您遵守所有适用的法律和组织政策。
  • 您只能在有权进行安全评估的环境中使用此工具。

安全措施

Vorota AI的nmap mcp实现了多层安全,以防止误用:

  • 输入验证 --所有输入都根据一组禁止的字符进行验证(;, |, &, $, `, (, ), {, }, <, >,换行符)以防止命令注入攻击。
  • 网络大小限制 --默认情况下,扫描最多限制为256台主机(相当于/24子网)。这可以通过以下方式配置 NMAP_MAX_TARGETS.
  • 限制NSE类别 --只允许使用安全的脚本类别: auth, default, discovery, safe, version,以及 vuln.危险类别,如 exploit, dos,以及 intrusive 被封锁。
  • 可配置超时 --所有扫描都有一个可配置的超时,硬上限为600秒,以防止进程失控。
  • 不执行shell --所有Nmap命令都是使用Python执行的 subprocess 带有参数列表的模块,从不通过shell。这完全消除了壳注入向量。

常见问题解答

什么是nmap mcp?

nmap mcp是由Vorota AI构建的模型上下文协议(mcp)服务器,它使AI代理能够执行nmap网络扫描。它将Nmap的全部功能(端口扫描、主机发现、服务检测、操作系统指纹识别和漏洞扫描)打包到6个结构化工具中,Claude、Cursor和VS Code Copilot等AI助手可以直接调用这些工具。

如何将Nmap与AI代理一起使用?

构建nmap mcp Docker镜像,并将其配置为AI客户端中的mcp服务器(Claude Desktop、Claude Code、Cursor、VS Code、Windsurf或Cline)。连接后,您可以要求AI扫描网络、检测服务、指纹操作系统,并使用自然语言查找漏洞。AI代理将调用适当的nmap mcp工具并为您解释结果。

nmap mcp使用安全吗?

对。nmap mcp包括多种安全机制:输入验证以防止命令注入,网络大小限制以避免扫描过宽的范围,排除危险脚本的受限NSE脚本类别,可配置超时,以及无shell执行。然而,网络扫描本身需要授权——在扫描任何目标之前,始终确保您有权限。

支持哪些MCP客户端?

nmap mcp适用于所有兼容mcp的客户端,包括Claude Desktop、Claude Code、Cursor、VS Code(通过GitHub Copilot)、Windsurf和Cline。任何支持模型上下文协议stdio传输的客户端都可以连接到nmap mcp。


贡献

欢迎捐款。设置开发环境:

git clone https://github.com/vorotaai/nmap-mcp.git
cd nmap-mcp
uv sync --all-groups

运行测试

uv run pytest

代码质量

uv run ruff check .
uv run ruff format .

请在上打开问题或拉取请求 GitHub 对于错误、功能请求或改进。


许可证

该项目根据 Apache许可证2.0.

版权所有(c)Vorota AI