netscan MCP服务器
MCP服务器包装 netscan --将Claude连接到您的网络扫描工具包,并通过自然语言启动扫描。
______________________________________________________________________
需求
- netscan (分支:
dev)安装和工作 - Python 3.12+
- 克劳德桌面版
______________________________________________________________________
安装
1.克隆并设置虚拟环境
git clone https://github.com/elweth-sec/netscan-mcpserver
cd netscan-mcpserver
python3.12 -m venv .venv
.venv/bin/pip install -r requirements.txt2.运行MCP服务器
运行以下命令以启动MCP服务器
.venv/bin/python server.py3.配置克劳德桌面
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json :
{
"mcpServers": {
"netscan": {
"command": "/path/to/netscan-mcpserver/.venv/bin/python",
"args": ["/path/to/netscan-mcpserver/server.py"],
"env": {
"NETSCAN_PATH": "/path/to/netscan/netscan",
"NETSCAN_SCAN_TIMEOUT": "600",
"NETSCAN_HISTORY_FILE": "/tmp/netscan_history.log"
}
}
}
}| 变量 | 默认值 | 描述 |
|---|---|---|
NETSCAN_PATH | netscan | netscan二进制文件的路径 |
NETSCAN_SCAN_TIMEOUT | 600 | 每次扫描的最大秒数 |
NETSCAN_HISTORY_FILE | ~/.netscan_history.log | 命令历史记录日志 |
4.重新启动克劳德桌面
netscan工具出现在“设置”菜单中:
______________________________________________________________________
用法
只需描述你想做什么。克劳德会自动选择正确的工具和参数。
Launch a ping scan on 192.168.1.0/24 with 300 workersScan ports 22, 80, 443, 8080 on the hosts in /tmp/ips.txtEnumerate SMB shares on 10.0.0.0/24 with a null sessionRun an AD scan on 10.0.0.1, dump users and check for kerberoastable accounts
domain: corp.local user: jdoe password: P@ssw0rdScan for unauthenticated Redis and MongoDB instances on 10.0.0.0/16其他示例:
可用扫描仪
| 类别 | 工具 |
|---|---|
| 发现 | pingscan, portscan |
| 远程访问 | sshscan, rdpscan, vncscan, telnetscan, winrmscan |
| Windows/AD | smbscan, adscan |
| Web | httpscan, tlsscan |
| DNS | dnsscan |
| 数据库 | mysqlscan, mssqlscan, postgrescan, mongoscan, redisscan |
| 网络服务 | snmpscan, ftpscan, rsyncscan, rpcscan, rtspscan, jdwpscan |
______________________________________________________________________
历史
每个命令及其输出都会自动记录。
show me the last 5 scansclear the scan history日志格式:
────────────────────────────────────────────────────────────────────────
[2026-02-25 21:45:12] exit 0
CMD: netscan pingscan 192.168.1.0/24 -w 300 --nodb
────────────────────────────────────────────────────────────────────────
192.168.1.1 - alive
192.168.1.10 - alive
192.168.1.254 - alive______________________________________________________________________
添加新扫描仪
放入文件 netscan/scanners/ --下次启动时会自动拾取。
# netscan/scanners/myscanner.py
from typing import Optional
from netscan import mcp
from netscan.core import add_common, add_targets, base_cmd, run
@mcp.tool()
async def myscanner(targets: Optional[str] = None, ...) -> str:
"""Description shown to Claude."""
c = base_cmd("myscanner")
add_targets(c, targets, target_file)
add_common(c, workers, timeout, delay, resume, nodb)
return await run(c)