AI Assistant Chat with Nmap Tool Integration

AI Assistant Chat with Nmap Tool Integration

好的,这是将英文文本“An example MCP server with a couple of nmap scans as tools.”翻译成中文的几种选择,根据不同的语境和侧重点,可以选择最合适的翻译: **选项 1 (比较直白):** * 一个示例 MCP 服务器,带有几个 nmap 扫描作为工具。 **选项 2 (更流畅,强调工具的作用):** * 一个示例 MCP 服务器,使用 nmap 扫描作为工具。 **选项 3 (更强调服务器的功能):** * 一个示例 MCP 服务器,它配备了几个 nmap 扫描工具。 **选项 4 (更技术化,适合专业人士):** * 一个示例 MCP 服务器,集成了几个 nmap 扫描功能。 **解释:** * **MCP Server:** 通常直接翻译为 "MCP 服务器"。 * **nmap scans:** "nmap 扫描" 是一个常用的技术术语,可以直接使用。 * **as tools:** 这部分可以有多种翻译方式,取决于你想强调的是 nmap 扫描是 *什么* (工具) 还是 *如何使用* (作为工具)。 **选择哪个翻译取决于你的目标读者和你想表达的重点。** 如果你的读者是技术人员,选项 4 可能更合适。 如果你想表达更通俗易懂的意思,选项 2 或 3 可能更好。 希望这些选项对您有帮助!

jarrodcoulter

开发者工具
访问服务器

README

AI助手与Nmap工具集成聊天

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

概述

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

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

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

特性

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

架构

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

前提条件

  • Python: 3.9+
  • Docker: 已安装并运行的最新版本。
  • Node.js/npm: 运行文件系统 MCP 服务器的 npx 所需。
  • 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.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
    # 安装 requirements
    pip install -r requirements.txt
    

运行应用程序

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

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

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript