本项目提供了一个基于网络的Gradio聊天界面,用户可通过该界面与由OpenAI API驱动的AI助手进行交互。此AI助手具备使用本地文件系统和借助容器化Nmap服务器开展网络扫描的能力,为网络安全检测和信息收集提供了便利。
确保满足以下先决条件,然后按照安装与设置步骤操作,最后运行应用程序即可开始使用。
npx
来运行文件系统MCP服务器。OPENAI_API_KEY
。git clone
cd
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-server.py
和Dockerfile
的目录,然后运行:docker build -t nmap-mcp-server .
(确保Dockerfile
内容正确,特别是如果不是modelcontextprotocol
,请检查MCP包名称)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扫描功能。
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]app.txt
):负责处理用户输入,并显示对话历史,为用户提供直观的交互界面。app.txt
):
agents
库):处理用户消息,根据需求调用工具,并生成响应[citation: 1, 3]。npx
运行,提供本地文件访问[citation: 1]。nmap-server.txt
在Docker中):在Docker容器中运行,通过MCP将Nmap扫描功能作为工具暴露出来[citation: 2, 14]。app.txt
使用docker run
为每个请求启动此服务器。应用程序使用了OpenAI代理SDK框架,用户的请求由AI代理处理。该代理能够理解请求内容,并根据需求决定是否调用可用工具。具体具有以下特点:
@modelcontextprotocol/server-filesystem
。