网络扫描服务

Nmap MCP Server 是一个提供网络扫描功能的服务器,支持自定义扫描选项、存储和检索扫描结果,并使用AI提示分析扫描结果。

  • by imjdl
  • Python
  • 本地部署
  • 19 星标
  • 更新于
在 GitHub 查看 imjdl/nmap-mcpserver

使用说明

Nmap MCP服务器

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

特性

  • 使用可自定义选项对指定目标运行nmap扫描
  • 存储和检索扫描结果
  • 使用AI提示分析扫描结果

安装

要求:

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

确保您的系统上安装了nmap:

# On Debian/Ubuntu
sudo apt-get install nmap

# On Fedora/CentOS
sudo dnf install nmap

用法

运行服务器

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

python -m src.nmap_mcp

要安装软件包并作为命令运行,请执行以下操作:

pip install -e .
nmap-mcp

可用工具

  1. 运行nmap扫描

    • 对指定目标运行nmap扫描
    • 参数:
      • target:目标主机或网络(例如192.168.1.1或192.168.1.0/24)
      • options:Nmap选项(例如,-sV-p 1-1000)
  2. 获取扫描详细信息

    • 获取特定扫描的详细信息
    • 参数:
      • scan_id:要检索的扫描ID
  3. 列出所有扫描

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

可用提示

  1. 分析扫描
    • 分析nmap扫描结果
    • 参数:
      • scan_id:要分析的扫描ID
      • focus:重点领域(安保/服务/概述)

资源

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

工作流示例

  1. 运行扫描:

    Call tool: run-nmap-scan
    Parameters: {"target": "192.168.1.0/24", "options": "-sV -p 22,80,443"}
    
  2. 获取扫描详细信息:

    Call tool: get-scan-details
    Parameters: {"scan_id": "<scan_id from previous step>"}
    
  3. 列出所有扫描:

    Call tool: list-all-scans
    
  4. 分析扫描结果:

    Get prompt: analyze-scan
    Parameters: {"scan_id": "<scan_id>", "focus": "security"}
    

安全考虑

此服务器在您的系统上执行nmap命令。扫描您不拥有或无权扫描的网络时要小心,因为未经授权的扫描在某些司法管辖区可能是非法的。

故障排除

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

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

Docker使用

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

# Build the Docker image
docker build -t nmap-mcp-server .

# Run the Docker container
docker run -it --rm nmap-mcp-server

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

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。