该项目提供了一个基于Web的聊天界面,使用Gradio让用户能够与一个由OpenAI API驱动的AI助手进行交互。该助手配备了与本地文件系统交互以及使用容器化的Nmap服务器执行网络扫描的工具。
应用程序使用了OpenAI代理SDK框架。用户请求由一个AI代理处理,该代理可以对请求进行推理并决定是否使用可用的工具。其特点包括:
@modelcontextprotocol/server-filesystem)。Nmap服务器运行在一个Docker容器中,便于依赖管理和隔离。
ping_host [引用:14]scan_network(前100个端口) [引用:16]all_scan_network(-A综合扫描) [引用:18]all_ports_scan_network(所有65535个端口) [引用:20]smb_share_enum_scan(SMB共享枚举) [引用:22]app.txt):处理用户输入并显示对话历史。app.txt):
agents库):处理用户消息,在需要时调用工具,并生成响应[引用:1, 3]。npx运行以提供本地文件访问[引用:1]。nmap-server.txt在Docker中):在Docker容器内运行,通过MCP暴露Nmap扫描功能作为工具[引用:2, 14]。app.txt使用docker run为每个请求启动此服务器。npx运行文件系统MCP服务器。OPENAI_API_KEY。克隆仓库:
git clone <你的仓库URL>
cd <你的仓库目录>
设置OpenAI API密钥:
将您的API密钥导出为环境变量。将your_api_key_here替换为您实际的密钥。
export OPENAI_API_KEY='your_api_key_here'
set OPENAI_API_KEY=your_api_key_here
$env:OPENAI_API_KEY='your_api_key_here'
构建Nmap Docker镜像:
导航到包含nmap-server.py和Dockerfile的目录,然后运行:
docker build -t nmap-mcp-server .
(确保Dockerfile内容正确,特别是如果MCP包名不是modelcontextprotocol)
安装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服务器。