使用说明
NMAP MCP服务器
用于与 Claude Desktop 集成 NMAP 的 MCP(模型上下文协议)服务器,可通过 AI 对话直接实现网络扫描自动化和五测试。
🔧 特征
- 主机 发现Ping 扫描以识别网络上的活动主机
- 扫描门户TCP端口扫描与服务检测
- 服务检测识别正在运行的版本和服务
- 自定义命令灵活执行任何 NMAP 命令
- 结构化输出格式化且易于解释的结果
- 异步执行长时间扫描时不锁定
📋 先决条件
- 操作系统:Linux(测试没有Kali Linux)
- python3.13+ 支持虚拟环境
- NMAP安装并通过 PATH 访问
- 克劳德桌面支持 MCP 的版本
- 权限某些扫描可能需要更高的特权
🚀 安装
1. 克隆仓库
git clone https://github.com/coliovacruz/nmap-mcp-server.git
cd nmap-mcp-server
2. 设置虚拟环境
# Criar ambiente virtual
python3 -m venv venv
# Ativar ambiente virtual
source venv/bin/activate
# Instalar dependências
pip install mcp
3.验证NMAP
# Verificar se NMAP está instalado
nmap --version
# Instalar se necessário (Ubuntu/Debian)
sudo apt update && sudo apt install nmap
# Instalar no macOS
brew install nmap
4. 测试服务器
# Testar execução
python nmap_server.py
# Se funcionar, pressione Ctrl+C para parar
⚙️ Claude 桌面配置
1. 查找配置文件
Linux:
~/.config/Claude/claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
2. 编辑设置
将 NMAP 服务器添加到现有配置中:
{
"mcpServers": {
"nmap": {
"command": "/caminho/para/nmap-mcp-server/venv/bin/python",
"args": ["/caminho/para/nmap-mcp-server/nmap_server.py"],
"env": {
"PATH": "/usr/bin:/bin:/usr/local/bin:/usr/sbin"
}
}
}
}
重要的: 替换 /caminho/para/nmap-mcp-server/ 您克隆仓库的实际路径。
3.Reiniciar克劳德桌面
完全关闭并重新打开 Claude Desktop 以加载新配置。
🛠️ 可用工具
nmap_host_discovery
使用 ping 扫描检测网络上的活动主机 。
参数 :
targetIP、主机名或范围(例如:192.168.1.0/24)
使用范例:
"Execute um scan de descoberta na rede 192.168.1.0/24"
nmap_port_scan
基本的 TCP 端口扫描。
参数 :
target(必填): 目标 IP 或主机名ports(可选):扫描端口(默认:1-1000)
使用范例:
"Faça um scan de portas no host 192.168.1.100"
"Scan as portas 22,80,443 do servidor 10.0.0.1"
nmap_service_detection
扫描检测服务和版本。
参数 :
target(必填): 目标 IP 或主机名ports(可选):特定端口(默认:普通端口)
使用范例:
"Execute detecção de serviços no servidor web 192.168.1.50"
nmap_custom
执行自定义 NMAP 命令 。
参数 :
arguments(必填): NMAP 参数(不包括 nmap)
使用范例:
"Execute um comando NMAP customizado: -sS -O -sV --script vuln 192.168.1.1"
📝 使用范例
网络 发现
"Execute um scan de descoberta para encontrar hosts ativos na rede 10.0.0.0/24"
Web 服务器分析
"Faça um scan completo do servidor 192.168.1.100 incluindo detecção de serviços nas portas web"
漏洞扫描
"Execute um scan de vulnerabilidades usando scripts NSE no host 10.0.0.5"
侵略性扫描
"Execute um comando NMAP customizado: -A -T4 -p- 192.168.1.1"
⚠️ 安全考虑
- 仅在授权网络上使用 - 永远不要在您不拥有或没有明确权限的系统上运行扫描
- 高级特权 某些类型的扫描(如SYN扫描)可能需要
sudo - 速率限制 -考虑使用
-T控制扫描速度 - 日志 -Monitore记录审计和故障排除
- 防火墙 - 扫描可以被监控系统检测到
🐛 解决问题
服务器未出现在 Claude 桌面上
- 检查配置文件中的路径是否正确
- 测试服务器是否手动运行 :
python nmap_server.py - 检查 Claude 桌面日志
- 确认虚拟环境处于活动状态
权限错误
# Para scans que requerem privilégios elevados
sudo /caminho/para/venv/bin/python nmap_server.py
# Ou executar Claude Desktop com sudo (não recomendado)
找不到 NMAP
# Verificar se NMAP está no PATH
which nmap
# Adicionar ao PATH se necessário
export PATH="/usr/local/bin:$PATH"
Python 依赖错误
# Reinstalar dependências
pip uninstall mcp -y
pip install mcp
# Verificar versão compatível
pip show mcp
🤝 贡献
- 分叉工程
- 为您的功能创建一个分支 (
git checkout -b feature/nova-funcionalidade) - 提交您的更改(
git commit -am 'Adiciona nova funcionalidade') - 推动一个分支(
git push origin feature/nova-funcionalidade) - 打开 Pull Request
📄 许可证
本项目在MIT许可证下授权 - 查看文件 许可证 为了细节。
⚡ 兼容性
- MCP版本: 1.13.1+
- python: 3.13+
- NMAP: 7.0+
- 克劳德桌面支持 MCP 的版本
🔗 相关链接
📞 支持
要报告错误或请求功能,请打开 问题 没有GitHub。