返回市场
网络映射-MCP服务器

网络映射-MCP服务器

作者:imjdl12 星标更新:2025-04-24

项目介绍

Nmap MCP 服务器

这是一个提供访问 nmap 网络扫描功能的模型控制协议(MCP)服务器。

特性

  • 在指定目标上运行具有可定制选项的 nmap 扫描
  • 存储和检索扫描结果
  • 使用 AI 提示分析扫描结果

安装

需求:

  • Python 3.10+
  • python-libnmap
  • nmap(系统已安装)
pip install python-libnmap

确保 nmap 已安装在您的系统上:

# 在 Debian/Ubuntu 上
sudo apt-get install nmap

# 在 Fedora/CentOS 上
sudo dnf install nmap

使用方法

运行服务器

从源代码直接运行服务器:

python -m src.nmap_mcp

安装包并作为命令运行:

pip install -e .
nmap-mcp

可用工具

  1. run-nmap-scan

    • 在指定目标上运行 nmap 扫描
    • 参数:
      • target:目标主机或网络(例如,192.168.1.1 或 192.168.1.0/24)
      • options:Nmap 选项(例如,-sV -p 1-1000)
  2. get-scan-details

    • 获取特定扫描的详细信息
    • 参数:
      • scan_id:要检索的扫描的ID
  3. list-all-scans

    • 列出所有可用的扫描结果
    • 不需要参数

可用提示

  1. analyze-scan
    • 分析 nmap 扫描结果
    • 参数:
      • scan_id:要分析的扫描的ID
      • focus:关注区域(安全/服务/概述)

资源

扫描结果作为资源可用,URI 方案为 nmap://scan/{scan_id}

示例工作流程

  1. 运行扫描:

    调用工具:run-nmap-scan
    参数:{"target": "192.168.1.0/24", "options": "-sV -p 22,80,443"}
    
  2. 获取扫描详情:

    调用工具:get-scan-details
    参数:{"scan_id": "<来自上一步的 scan_id>"}
    
  3. 列出所有扫描:

    调用工具:list-all-scans
    
  4. 分析扫描结果:

    获取提示:analyze-scan
    参数:{"scan_id": "<scan_id>", "focus": "security"}
    

安全注意事项

此服务器会在您的系统上执行 nmap 命令。当扫描您没有所有权或未获授权的网络时,请谨慎行事,因为未经授权的扫描在某些司法管辖区可能是非法的。

故障排除

如果您遇到与 nmap 未找到或执行错误相关的错误:

  1. 确保 nmap 已安装并在您的 PATH 中可用
  2. 检查日志以查看正在使用的哪个 nmap 可执行文件
  3. 服务器将尝试使用 nmap 的完整路径来避免冲突

Docker 使用

您可以将 MCP 服务器运行在一个 Docker 容器中:

# 构建 Docker 镜像
docker build -t nmap-mcp-server .

# 运行 Docker 容器
docker run -it --rm nmap-mcp-server

为了与 Glama MCP 目录集成,Docker 容器允许其他人轻松使用此 MCP 服务器,而无需担心安装依赖项。

许可证

本项目根据 MIT 许可证发布 - 详情见 LICENSE 文件。