Ai Assistant Chat With Nmap Tool Integration

Ai Assistant Chat With Nmap Tool Integration

🚀 AI代理聊天工具集成Nmap工具

本项目提供了一个基于网络的Gradio聊天界面,用户可通过该界面与由OpenAI API驱动的AI助手进行交互。此AI助手具备使用本地文件系统和借助容器化Nmap服务器开展网络扫描的能力,为网络安全检测和信息收集提供了便利。

🚀 快速开始

确保满足以下先决条件,然后按照安装与设置步骤操作,最后运行应用程序即可开始使用。

先决条件

  • Python:3.9+
  • Docker:安装最新版本并运行。
  • Node.js/npm:需要npx来运行文件系统MCP服务器。
  • OpenAI API密钥:设置为环境变量OPENAI_API_KEY

安装与设置

  1. 克隆仓库
    git clone 
    cd 
    
  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.pyDockerfile的目录,然后运行:
    docker build -t nmap-mcp-server .
    
    (确保Dockerfile内容正确,特别是如果不是modelcontextprotocol,请检查MCP包名称)
  4. 安装Python依赖项: 建议使用虚拟环境。
    python -m venv venv
    # 激活虚拟环境
    # Linux/macOS:
    source venv/bin/activate
    # Windows:
    .\venv\Scripts\activate
    # 安装需求
    pip install -r requirements.txt
    

运行应用程序

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

python app.py
# 一个示例MCP服务器,其中包含几个Nmap扫描功能。

✨ 主要特性

  • 对话式AI助手:用户可与AI助手进行自然流畅的对话交互。
  • 文件系统访问工具:可对应用程序目录进行文件系统访问。
  • Nmap网络扫描工具
    • ping_host [citation: 14]
    • scan_network(前100个端口)[citation: 16]
    • all_scan_network(全面扫描)[-A][citation: 18]
    • all_ports_scan_network(所有65535个端口)[citation: 20]
    • smb_share_enum_scan(SMB共享枚举)[citation: 22]
  • 基于网络的UI:使用Gradio构建,方便用户操作。
  • 容器化Nmap工具服务器:采用Docker容器化技术,便于依赖管理和隔离。

🔧 技术细节

架构

  1. Gradio UI (app.txt):负责处理用户输入,并显示对话历史,为用户提供直观的交互界面。
  2. 主要应用程序 (app.txt)
    • 初始化Gradio界面,确保界面正常显示。
    • 管理对话状态,保证对话的连续性和准确性。
    • 设置和管理MCP服务器,为文件系统访问和Nmap扫描提供支持。
    • 实例化并运行OpenAI代理,实现与AI助手的交互。
  3. OpenAI代理 (agents库):处理用户消息,根据需求调用工具,并生成响应[citation: 1, 3]。
  4. MCP服务器
    • 文件系统服务器:通过npx运行,提供本地文件访问[citation: 1]。
    • Nmap工具包服务器 (nmap-server.txt在Docker中):在Docker容器中运行,通过MCP将Nmap扫描功能作为工具暴露出来[citation: 2, 14]。app.txt使用docker run为每个请求启动此服务器。

应用程序原理

应用程序使用了OpenAI代理SDK框架,用户的请求由AI代理处理。该代理能够理解请求内容,并根据需求决定是否调用可用工具。具体具有以下特点:

  • 使用Gradio提供基于网络的界面,方便用户与AI助手进行交互。
  • 后端采用OpenAI模型驱动的AI代理,需要设置OpenAI API密钥。
  • 借助模型上下文协议(MCP)服务器实现文件系统访问,使用@modelcontextprotocol/server-filesystem
  • 包装在Docker容器中的MCP服务器,可提供Nmap扫描功能,包括ping、端口扫描、服务发现、SMB共享枚举等[citation: 14, 16, 18, 20, 22]。Nmap服务器在Docker容器中运行,便于依赖管理和隔离。
  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-30 03:57

相似服务问题