Nmap MCP服务器
这是一个模型控制协议(MCP)服务器,提供对nmap网络扫描功能的访问。
特性
- 使用可自定义选项对指定目标运行nmap扫描
- 存储和检索扫描结果
- 使用AI提示分析扫描结果
安装
要求:
- Python 3.10+
- python libnmap
- nmap(安装在系统上)
pip install python-libnmap确保您的系统上安装了nmap:
# On Debian/Ubuntu
sudo apt-get install nmap
# On Fedora/CentOS
sudo dnf install nmap用法
运行服务器
要直接从源代码运行服务器:
python -m src.nmap_mcp要安装软件包并作为命令运行,请执行以下操作:
pip install -e .
nmap-mcp可用工具
- 运行nmap扫描
- 对指定目标运行nmap扫描 - 参数: - target:目标主机或网络(例如192.168.1.1或192.168.1.0/24) - options:Nmap选项(例如,-sV-p 1-1000)
- 获取扫描详细信息
- 获取特定扫描的详细信息 - 参数: - scan_id:要检索的扫描ID
- 列出所有扫描
- 列出所有可用的扫描结果 - 无需参数
可用提示
- 分析扫描
- 分析nmap扫描结果 - 参数: - scan_id:要分析的扫描ID - focus:重点领域(安保/服务/概述)
资源
扫描结果可作为资源使用 nmap://scan/{scan_id} URI方案。
工作流示例
- 运行扫描:
Call tool: run-nmap-scan
Parameters: {"target": "192.168.1.0/24", "options": "-sV -p 22,80,443"}- 获取扫描详细信息:
Call tool: get-scan-details
Parameters: {"scan_id": ""}- 列出所有扫描:
Call tool: list-all-scans- 分析扫描结果:
Get prompt: analyze-scan
Parameters: {"scan_id": "", "focus": "security"}安全考虑
此服务器在您的系统上执行nmap命令。扫描您不拥有或无权扫描的网络时要小心,因为未经授权的扫描在某些司法管辖区可能是非法的。
故障排除
如果您遇到与nmap未找到或执行不正确相关的错误:
- 确保nmap已安装并在PATH中可用
- 检查正在使用nmap可执行文件的日志
- 服务器将尝试使用nmap的完整路径以避免冲突
Docker使用
您可以在Docker容器中运行MCP服务器:
# Build the Docker image
docker build -t nmap-mcp-server .
# Run the Docker container
docker run -it --rm nmap-mcp-server为了与Glama MCP目录集成,Docker容器允许其他人轻松使用此MCP服务器,而无需担心安装依赖性。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

