AI助手聊天与Nmap工具集成

一个基于Gradio的Web聊天界面,集成了OpenAI API的AI助手,能够通过容器化的Nmap服务器进行网络扫描和文件系统访问。

  • by jarrodcoulter
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 jarrodcoulter/nmap-mcp-server

使用说明

AI助手聊天与Nmap工具集成

该项目使用Gradio提供了一个基于网络的聊天界面,用户可以在其中与由OpenAI API提供支持的人工智能助手进行交互。该助手配备了与本地文件系统交互的工具,并使用容器化的Nmap服务器执行网络扫描。

概述

该应用程序使用OpenAI代理SDK框架。用户请求由AI代理处理,AI代理可以对请求进行推理并决定是否使用可用工具。它的特点是:

  • Gradio前端,便于交互。
  • 利用OpenAI模型的AI代理后端(需要API密钥)。
  • 用于文件系统访问的模型上下文协议(MCP)服务器(使用 @modelcontextprotocol/server-filesystem).
  • 提供Nmap扫描功能(ping、端口扫描、服务发现、SMB共享枚举)的容器化MCP服务器[引用:14,16,18,20,22]。

Nmap服务器在Docker容器内运行,便于依赖管理和隔离。

特性

  • 对话式AI助手。
  • 文件系统访问工具(作用域为应用程序目录)。
  • 通过Nmap的网络扫描工具:
    • ping_host [引用:14]
    • scan_network (前100个端口)[引用:16]
    • all_scan_network (-全面扫描)[引用:18]
    • all_ports_scan_network (共65535个端口)[引用:20]
    • smb_share_enum_scan (SMB共享枚举)[引用:22]
  • 使用Gradio的基于Web的UI[引用:11,12]。
  • 使用Docker的容器化Nmap工具服务器。

建筑

  1. Gradio用户界面(app.txt):处理用户输入并显示对话历史记录。
  2. 主要应用(app.txt):
    • 初始化Gradio接口。
    • 管理对话状态。
    • 设置和管理MCP服务器。
    • 实例化并运行OpenAI代理。
  3. OpenAI代理(agents 图书馆):处理用户消息,在需要时调用工具,并生成响应[引用:1,3]。
  4. MCP服务器:
    • 文件系统服务器:通过运行 npx 提供本地文件访问[引用:1]。
    • Nmap工具包服务器(nmap-server.txt 在Docker中):在Docker容器内运行,通过MCP将Nmap扫描函数作为工具公开[引用:2,14]。 app.txt 用途 docker run 为每个请求启动此服务器。

先决条件

  • python: 3.9+
  • 码头工人:已安装并正在运行的最新版本。
  • Node.js/npm:必需 npx 运行文件系统MCP服务器。
  • OpenAI API密钥:设置为环境变量 OPENAI_API_KEY.

安装和设置

  1. 克隆存储库:

    git clone <your-repository-url>
    cd <your-repository-directory>
    
  2. 设置OpenAI API密钥: 将API密钥导出为环境变量。替换 your_api_key_here 用你真正的钥匙。

    • Linux/macOS:
      export OPENAI_API_KEY='your_api_key_here'
      
    • Windows(命令提示符):
      set OPENAI_API_KEY=your_api_key_here
      
    • Windows(PowerShell):
      $env:OPENAI_API_KEY='your_api_key_here'
      
  3. 构建Nmap Docker镜像: 导航到包含以下内容的目录 nmap-server.py 和 Dockerfile,然后运行:

    docker build -t nmap-mcp-server .
    

    (确保 Dockerfile 内容正确,特别是MCP包名称(如果不正确) modelcontextprotocol)

  4. 安装Python依赖项: 建议使用虚拟环境。

    python -m venv venv
    # Activate the virtual environment
    # Linux/macOS:
    source venv/bin/activate
    # Windows:
    .\venv\Scripts\activate
    # Install requirements
    pip install -r requirements.txt
    

运行应用程序

确保您的OpenAI API密钥已设置,Docker正在运行,并且您位于项目的根目录中,虚拟环境已激活。

python app.py
 An example MCP server with a couple nmap scans as tools.