关于 Nmap MCP Server
Nmap MCP 服务提供对 nmap 网络扫描功能的访问,可执行扫描、保存结果并借助提示词分析扫描内容。适用于需要在授权范围内进行网络探测的安全人员。
主要功能
- 01按指定目标和选项运行 nmap 扫描
- 02保存并检索扫描结果
- 03通过提示词分析扫描结果
- 04扫描结果以资源形式提供
适用场景
- 01对授权的 IP 或网段执行服务版本探测
- 02让 AI 助手查看历史扫描记录
- 03根据安全、服务或概览等关注点分析扫描结果
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端提供 run-nmap-scan、get-scan-details、list-all-scans 等工具、analyze-scan 提示词以及 nmap://scan/{scan_id} 资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
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
可用工具
-
run-nmap-scan
- 对指定目标运行 nmap 扫描
- 参数:
target:目标主机或网络(例如,192.168.1.1 或 192.168.1.0/24)options:Nmap 选项(例如,-sV -p 1-1000)
-
get-scan-details
- 获取特定扫描的详细信息
- 参数:
scan_id:要检索的扫描 ID
-
list-all-scans
- 列出所有可用的扫描结果
- 无需参数
可用提示词
- analyze-scan
- 分析 nmap 扫描结果
- 参数:
scan_id:要分析的扫描 IDfocus:关注领域(security/services/overview)
资源
扫描结果可通过 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": "<scan_id from previous step>"} -
列出所有扫描:
Call tool: list-all-scans -
分析扫描结果:
Get prompt: analyze-scan Parameters: {"scan_id": "<scan_id>", "focus": "security"}
安全注意事项
此服务会在你的系统上执行 nmap 命令。扫描不属于你或未经你许可的网络时请务必谨慎,因为在某些司法管辖区,未经授权的扫描可能违法。
故障排除
如果遇到与找不到 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 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。