NetsCLI

Official registry Search and web

Network scanner for AI agents: discover hosts, scan TCP and UDP ports, query DNS and mDNS.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package netscli
Claude Code
claude mcp add netscli -e 'NETSCLI_MCP_ALLOW_PUBLIC_TARGETS=<NETSCLI_MCP_ALLOW_PUBLIC_TARGETS>' -- npx -y netscli@0.3.4 serve
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "netscli": {
            "command": "npx",
            "args": [
                "-y",
                "netscli@0.3.4",
                "serve"
            ],
            "env": {
                "NETSCLI_MCP_ALLOW_PUBLIC_TARGETS": "<NETSCLI_MCP_ALLOW_PUBLIC_TARGETS>"
            }
        }
    }
}

Environment variables

  • NETSCLI_MCP_ALLOW_PUBLIC_TARGETS Set to 1 to allow targets outside your own networks. Off by default.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Why this exists
  2. Screenshots
  3. Install
  4. Usage
  5. MCP server
  6. Documentation
  7. Contributing
  8. License

A network scanner written in Rust. CLI, terminal UI, desktop app, and MCP server. One library behind all four.

Documentation · Install · Changelog

Why this exists

The terminal UI came first. I wanted to understand how the newer TUIs work, the ones coding agents like Claude Code have put real effort into. Autocomplete, command history, in-place progress, and a UI that does not take over the terminal, so scrollback and copying text keep working. Building one seemed like the way to learn it, and a network scanner gave it something to do.

The MCP server came next. I thought it would be interesting to let an agent work with a network that way. Ask which device just joined, or whether port 22 is open on some host, instead of shelling out to another tool and parsing output that was written for a person to read.

Then the CLI, for programmatic use. A script or a cron job wants one command and JSON back, not an interactive session.

The desktop app came last. Some people would rather have a GUI than a terminal, and honestly I sometimes prefer it myself over running the commands locally.

Three of them are the same binary. netscli <command> is the CLI, netscli on its own opens the terminal UI, and netscli serve starts the MCP server. The desktop app is a separate download over the same core.

Screenshots

Install

# 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

Desktop installers for Windows, macOS and Linux are attached to every release.

Scoop, the AUR, the one-line install scripts, packet-capture builds and signature verification are all covered in the install guide.

Usage

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

Every command that returns a result takes --json or --yaml, so results pipe straight into jq, and the ones that return a list also take --csv and --md.

Run netscli with no arguments for the terminal UI: slash commands with autocomplete, command history, scrollback and /export.

Full command reference: CLI · TUI · desktop app

MCP server

{
  "mcpServers": {
    "netscli": {
      "command": "netscli",
      "args": ["serve"]
    }
  }
}

That form needs netscli installed. To skip the install, use npx as the command ("command": "npx", "args": ["-y", "netscli", "serve"]), or open an .mcpb bundle from the latest release in a client that supports them.

Nine tools by default: discover, scan, ping, DNS, ARP, inspect, sweep, interfaces and mDNS. Packet-capture builds add four more. Details and the full schemas are in the MCP guide.

Documentation

PageCovers
OverviewWhat it does, the interface model, safety limits
InstallationEvery install route, per platform
CLICommands, flags, structured output
Terminal UISlash commands and session behaviour
Desktop appTabs, filters, exports
MCP serverTools, schemas, agent setup
Interface coverageWhich capabilities each interface exposes
OperationsWhat each scan actually does
Result modelShape of the JSON and YAML output
Packet captureRequirements and the pcap builds
Core libraryUsing netscli-core directly

Contributing

Issues and pull requests are welcome. Building from source, the desktop app dev loop, packet-capture builds and the repository layout are all in CONTRIBUTING.md.

License

MIT. See LICENSE.

Frequently asked questions

What is NetsCLI?

Network scanner for AI agents: discover hosts, scan TCP and UDP ports, query DNS and mDNS.

How do I install NetsCLI?

It runs on your machine. In Claude Code: claude mcp add netscli -e 'NETSCLI_MCP_ALLOW_PUBLIC_TARGETS=<NETSCLI_MCP_ALLOW_PUBLIC_TARGETS>' -- npx -y netscli@0.3.4 serve. For other clients, paste the JSON configuration from this page into their MCP settings.

Does NetsCLI need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is NetsCLI open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains NetsCLI?

It is published by fstubner. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.