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

网络映射MCP服务器

作者:jarrodcoulter7 星标更新:2025-04-07

项目介绍

使用Nmap工具集成的AI助手聊天

该项目提供了一个基于Web的聊天界面,使用Gradio让用户能够与一个由OpenAI API驱动的AI助手进行交互。该助手配备了与本地文件系统交互以及使用容器化的Nmap服务器执行网络扫描的工具。

概述

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

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

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

功能

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

架构

  1. Gradio UI (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+
  • Docker:安装并运行最新版本。
  • Node.js/npm:用于npx运行文件系统MCP服务器。
  • OpenAI API密钥:设置为环境变量OPENAI_API_KEY

安装与配置

  1. 克隆仓库:

    git clone <你的仓库URL>
    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内容正确,特别是如果MCP包名不是modelcontextprotocol)

  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

一个带有几个Nmap扫描工具的示例MCP服务器。