mcp服务器nmap
MCP服务器,它将python nmap库作为MCP工具公开,用于网络扫描操作。
 
这是什么?
此MCP服务器封装了python nmap库,允许AI助手通过MCP工具执行网络侦察。它提供三个扫描界面:
- 端口扫描器 (同步)-阻止等待完成的扫描
- PortScannerAsync (异步)-带回调的非阻塞扫描
- PortScannerYield (生成器)-发现主机时流式传输结果
先决条件
- 扫描器 必须安装在系统上
- Python 3.10+
安装
pip install mcp-server-nmapmcp名称: io.github.daedalus/mcp-server-nmap
MCP服务器注册
将此添加到MCP设置文件中:
{
"mcpServers": {
"mcp-server-nmap": {
"command": "mcp-server-nmap"
}
}
}或者使用自定义nmap路径:
{
"mcpServers": {
"mcp-server-nmap": {
"command": "mcp-server-nmap",
"env": {
"PATH": "/custom/path:$PATH"
}
}
}
}可用工具
初始化
| 工具 | 说明 |
|---|---|
port_scanner_init | 初始化同步端口扫描程序 |
port_scanner_async_init | 初始化异步PortScannerAsync |
port_scanner_yield_init | 初始化基于生成器的PortScannerYield |
扫描
| 工具 | 说明 |
|---|---|
port_scanner_scan | 使用nmap扫描主机(同步) |
port_scanner_async_scan | 扫描主机(异步、非阻塞) |
port_scanner_yield_scan | 使用流式结果进行扫描 |
port_scanner_listscan | 列出主机而不进行扫描 |
结果与状态
| 工具 | 说明 |
|---|---|
port_scanner_all_hosts | 获取所有扫描的主机 |
port_scanner_has_host | 检查主机是否已被扫描 |
port_scanner_get_item | 获取详细的主机扫描数据 |
port_scanner_scaninfo | 获取扫描配置信息 |
port_scanner_scanstats | 获取扫描统计信息 |
port_scanner_command_line | 获取已使用的nmap命令 |
port_scanner_csv | 获取CSV输出 |
port_scanner_last_output | 获取原始nmap文本输出 |
异步控制
| 工具 | 说明 |
|---|---|
port_scanner_async_still_scanning | 检查扫描是否正在进行中 |
port_scanner_async_stop | 停止运行扫描 |
port_scanner_async_wait | 等待扫描完成 |
XML解析
| 工具 | 说明 |
|---|---|
port_scanner_analyse_xml | 解析现有nmap XML输出 |
常见扫描工作流
基本端口扫描
# Initialize scanner
port_scanner_init()
# Scan target
port_scanner_scan(hosts="192.168.1.1", ports="22,80,443", arguments="-sV")
# Get results
port_scanner_get_item(host="192.168.1.1")服务版本检测
port_scanner_scan(hosts="scanme.nmap.org", arguments="-sV -sC")扫描多台主机
port_scanner_scan(hosts="192.168.1.1-254", arguments="-sS -p 22")
port_scanner_all_hosts()网络扫描
port_scanner_scan(hosts="192.168.1.0/24", arguments="-sn")
port_scanner_csv() # Export to CSVnmap参数参考
| 参数 | 描述 |
|---|---|
-sn | Ping扫描(主机发现) |
-sS | TCP SYN扫描 |
-sT | TCP连接扫描 |
-sU | UDP扫描 |
-sV | 服务版本检测 |
-sC | 默认脚本 |
-O | 操作系统检测 |
-p | 端口范围 |
-oA | 输出所有格式 |
发展
git clone https://github.com/daedalus/mcp-server-nmap.git
cd mcp-server-nmap
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/