关于 NetsCLI
NetsCLI 是面向终端用户和 AI Agent 的 Rust 网络扫描器,提供命令行、终端界面、桌面应用及共用核心的 MCP 服务,支持主机发现、端口扫描以及 DNS 和 mDNS 查询。
主要功能
- 01发现本地网络主机
- 02扫描 TCP 和 UDP 端口
- 03查询 DNS 和 mDNS
- 04检查 ARP 表和网络接口
- 05提供命令行、终端界面和桌面应用
适用场景
- 01查找本地子网中的设备
- 02检查指定端口是否开放
- 03查询域名的 DNS 记录
MCP 相关
MCP 服务默认提供主机发现、扫描、ping、DNS、ARP、检查、网段探测、网络接口和 mDNS 共九种工具。数据包捕获构建版本另增四种工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
9收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| subnet | string | 否 | IPv4 CIDR,最大为 /16。默认为本地子网。 |
| timeout | number | 否 | 毫秒,适用于每个步骤。省略时使用默认值:ping 1000、scan 500、DNS 1500。 |
| maxConcurrent | number | 否 | |
| resolveHostnames | boolean | 否 |
详细介绍
为什么要做这个项目
我最先开发的是终端 UI。我想了解新一代 TUI 是如何运作的,尤其是 Claude Code 等编码 Agent 真正投入精力打造的那类 TUI。它支持自动补全、命令历史、原地显示进度,而且 UI 不会接管整个终端,因此滚动查看历史内容和复制文本都能正常使用。开发一个这样的 TUI 似乎是学习的好方法,而网络扫描器也正好能让它派上用场。
接下来开发的是 MCP 服务。我觉得让 Agent 以这种方式与网络交互会很有意思。比如询问刚加入网络的是哪台设备,或者某台主机的 22 端口是否开放,而不必调用其他工具,再解析那些面向人类阅读的输出。
然后是命令行,供程序调用。脚本或 cron 任务只需要一条命令和 JSON 返回结果,而不是交互式会话。
最后是桌面应用。有些人更喜欢 GUI 而不是终端,说实话,有时我自己也更愿意用桌面应用,而不是在本地运行命令。
其中三种形式使用同一个二进制文件。netscli <command> 是命令行,单独运行 netscli 会打开终端 UI,而 netscli serve 会启动 MCP 服务。桌面应用则是基于同一核心的独立下载版本。
截图
安装
# macOS / Linux
brew tap fstubner/tap && brew install netscli
# Windows
winget install netscli # CLI, TUI and MCP server
winget install netscli-gui # desktop app
# Any platform, via cargo
cargo install netscli
每个 release 都附带适用于 Windows、macOS 和 Linux 的桌面安装程序。
Scoop、AUR、单行安装脚本、数据包捕获版构建以及签名验证,都有详细介绍,请参阅**安装指南**。
用法
netscli discover # find hosts on the local subnet
netscli scan 192.168.1.10 -p 22,80,443
netscli inspect example.com # ping + scan + resolve
netscli dns example.com # all record types
netscli arp # ARP table with vendor lookup
netscli interfaces
每个会返回结果的命令都支持 --json 或 --yaml,因此结果可以直接传给 jq。返回列表的命令还支持 --csv 和 --md。
不带参数运行 netscli 即可打开终端 UI:支持自动补全的斜杠命令、命令历史、滚动查看历史内容以及 /export。
MCP 服务
{
"mcpServers": {
"netscli": {
"command": "netscli",
"args": ["serve"]
}
}
}
这种方式需要先安装 netscli。若要跳过安装,请将 npx 用作命令("command": "npx", "args": ["-y", "netscli", "serve"]),或者在支持 .mcpb 的客户端中打开最新 release 中的 .mcpb bundle。
默认提供九种工具:发现、扫描、ping、DNS、ARP、检查、扫描网段、网络接口和 mDNS。数据包捕获版构建还会增加四种工具。详情和完整架构请参阅**MCP 指南**。
文档
| 页面 | 内容 |
|---|---|
| 概览 | 功能、界面模型、安全限制 |
| 安装 | 各平台的所有安装方式 |
| CLI | 命令、标志、结构化输出 |
| 终端 UI | 斜杠命令和会话行为 |
| 桌面应用 | 标签页、筛选器、导出 |
| MCP 服务 | 工具、架构、Agent 设置 |
| 界面覆盖范围 | 各界面提供的功能 |
| 操作 | 每项扫描的实际操作 |
| 结果模型 | JSON 和 YAML 输出的结构 |
| 数据包捕获 | 要求和 pcap 构建版本 |
| 核心库 | 直接使用 netscli-core |
贡献
欢迎提交问题和拉取请求。如何从源代码构建、桌面应用开发循环、数据包捕获构建版本以及仓库布局,均见 CONTRIBUTING.md。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。