NetsCLI について
NetsCLIは、ターミナルユーザーやAIエージェント向けのRust製ネットワークスキャナーです。CLI、ターミナルUI、デスクトップアプリと共通コアを使うMCPサーバーを備え、ホスト検出、ポートスキャン、DNS・mDNS照会に対応します。
主な機能
- 01ローカルホストの検出
- 02TCP・UDPポートスキャン
- 03DNS・mDNS照会
- 04ARPテーブルとインターフェースの確認
- 05CLI、ターミナルUI、デスクトップアプリ
活用シーン
- 01ローカルサブネット内の機器を特定
- 02指定ポートの開放状況を確認
- 03ドメインのDNSレコードを照会
MCP 対応
MCPサーバーは、検出、スキャン、ping、DNS、ARP、調査、スイープ、インターフェース、mDNSの9つのツールを標準で公開します。パケットキャプチャ対応ビルドでは、さらに4つのツールが加わります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| subnet | string | いいえ | IPv4 CIDR。最大で /16 です。デフォルトはローカルサブネットです。 |
| timeout | number | いいえ | ミリ秒単位で、各ステップに適用されます。省略した場合のデフォルト値:ping 1000、scan 500、DNS 1500。 |
| maxConcurrent | number | いいえ | |
| resolveHostnames | boolean | いいえ |
詳細
Rust で書かれたネットワークスキャナーです。CLI、ターミナル UI、デスクトップアプリ、MCP サーバーを備えています。4 つすべてを 1 つのライブラリで支えています。
開発の背景
最初に作ったのはターミナル UI でした。Claude Code のようなコーディングエージェントが力を入れている、新しい TUI の仕組みを理解したいと思ったからです。 自動補完、コマンド履歴、画面内での進捗表示、そしてターミナルを占有せず、スクロールバックやテキストのコピーも引き続き使える UI です。作ってみるのが学ぶ近道だと思い、ネットワークスキャナーに使い道を持たせました。
次に MCP サーバーを作りました。エージェントがネットワークを扱えるようにしたら面白そうだと思ったからです。別のツールをシェルから実行して、人が読むために書かれた出力を解析する代わりに、どのデバイスが接続したばかりか、あるホストのポート 22 が開いているか、といったことを尋ねられます。
その次に、プログラムから使うための CLI を作りました。スクリプトや cron ジョブで必要なのは、対話セッションではなく、1 つのコマンドと JSON の出力です。
最後にデスクトップアプリを作りました。ターミナルより GUI を使いたい人もいますし、正直なところ、私自身もローカルでコマンドを実行するよりこちらを好むことがあります。
このうち 3 つは同じバイナリです。netscli <command> は CLI、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
Windows、macOS、Linux 用のデスクトップインストーラーは、すべてのリリースに添付されています。
Scoop、AUR、1 行で実行できるインストールスクリプト、パケットキャプチャ対応ビルド、署名の検証については、**インストールガイド**で説明しています。
使い方
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 を実行すると、スラッシュコマンド、自動補完、コマンド履歴、スクロールバック、/export を備えたターミナル UI が開きます。
コマンドの全リファレンス:CLI · TUI · デスクトップアプリ
MCP サーバー
{
"mcpServers": {
"netscli": {
"command": "netscli",
"args": ["serve"]
}
}
}
この形式では netscli のインストールが必要です。インストールを省略するには、コマンドとして npx を使うか("command": "npx", "args": ["-y", "netscli", "serve"])、対応するクライアントで最新リリースの .mcpb バンドルを開きます。
デフォルトでは、discover、scan、ping、DNS、ARP、inspect、sweep、interfaces、mDNS の 9 つのツールが利用できます。パケットキャプチャ対応ビルドでは、さらに 4 つのツールが追加されます。詳細と完全なスキーマについては、**MCP ガイド**をご覧ください。
ドキュメント
| ページ | 内容 |
|---|---|
| 概要 | 機能、インターフェースモデル、安全上の制限 |
| インストール | プラットフォームごとのすべてのインストール方法 |
| CLI | コマンド、フラグ、構造化出力 |
| ターミナル UI | スラッシュコマンドとセッションの動作 |
| デスクトップアプリ | タブ、フィルター、エクスポート |
| MCP サーバー | ツール、スキーマ、エージェントのセットアップ |
| インターフェースの対応状況 | 各インターフェースが公開する機能 |
| 運用 | 各スキャンの実際の処理内容 |
| 結果モデル | JSON および YAML 出力の形式 |
| パケットキャプチャ | 要件と pcap ビルド |
| コアライブラリ | netscli-core を直接使用する方法 |
コントリビューション
Issue とプルリクエストを歓迎します。ソースからのビルド、デスクトップアプリの開発ループ、パケットキャプチャのビルド、リポジトリの構成については、CONTRIBUTING.md をご覧ください。
ライセンス
MIT。LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。