Skip to main content
Glama
marc-shade

Network Scanner MCP

by marc-shade

Network Scanner MCPnetwork_scanner_mcp

MCP Python-3.10+ License Part of Agentic System

Network discovery and port scanning for infrastructure mapping.

Part of the Agentic System - a 24/7 autonomous AI framework with persistent memory.

Environmental awareness for the AGI cluster through network device discovery, port scanning, and service detection.

Features

Device Discovery

  • ARP Network Scanning: Discover all devices on the local network

  • MAC Vendor Lookup: Identify device manufacturers

  • Hostname Resolution: Resolve device hostnames via reverse DNS

  • Device History: Track when devices first/last appeared

  • Anomaly Detection: Alert when unknown devices join

Port Scanning & Service Detection

  • Port Scanning: Scan specific ports or common service ports

  • Service Fingerprinting: Identify services by port and banner

  • Quick Scan Mode: Fast scan of common ports (22, 80, 443, etc.)

  • Full Port Scan: Comprehensive scan of ports 1-1024

  • Banner Grabbing: Capture service banners for identification

Cluster Monitoring

  • Cluster Node Status: Monitor AGI cluster node connectivity

  • Health Checks: Ping-based reachability testing with latency

  • Alert Daemon: Continuous monitoring with voice and cluster alerts

  • Node Recovery Detection: Alerts when nodes come back online

Alerting

  • Voice Alerts: TTS alerts via edge-tts

  • Node-Chat Integration: Broadcast alerts to cluster nodes

  • Alert History: Persistent alert log with history

Defense & Federal Compliance

SCAP Compliance Output

  • XCCDF 1.2: Generates Extensible Configuration Checklist Description Format results per NIST SP 800-126 Rev. 3

  • OVAL 5.11: Produces Open Vulnerability and Assessment Language definitions for automated assessment

  • CPE 2.3: Common Platform Enumeration for asset identification with vendor/product/version resolution

  • CCE References: Common Configuration Enumeration identifiers linked to check results

CIS Benchmark Checking

  • Unused high-risk ports detection (telnet, FTP, rlogin, etc.)

  • Default credential detection via banner analysis

  • TLS 1.2+ enforcement verification (per NIST SP 800-52 Rev. 2)

  • SNMP community string brute-force testing (SNMPv2c packet construction)

  • SSH configuration audit (protocol version, server currency)

  • NTP synchronization verification (UDP NTP client probe)

  • Syslog forwarding configuration check

  • Access control list posture assessment

  • Each check returns: benchmark_id, title, description, level (L1/L2), status, rationale, remediation

NIST CSF Asset Inventory

  • ID.AM-1: Physical devices and systems inventoried with type classification

  • ID.AM-2: Software platforms and applications catalogued from port/banner data

  • ID.AM-3: Organizational data flows mapped (direction, encryption status)

  • ID.AM-4: External information systems identified via RFC 1918 boundary analysis

  • ID.AM-5: Resources prioritized by classification (PUBLIC/INTERNAL/CONFIDENTIAL/RESTRICTED) and risk score

  • Multi-factor risk scoring: exposure (30%), criticality (25%), vulnerability (25%), patch status (20%)

Zero Trust Architecture Assessment (NIST SP 800-207 + DISA ZTA)

  • Pillar 1 - Identity: Authentication strength, MFA indicators, centralized identity services

  • Pillar 2 - Device: Inventory completeness, device health, endpoint management coverage

  • Pillar 3 - Network: Micro-segmentation, encrypted transport ratio, lateral movement risk

  • Pillar 4 - Application: HTTPS coverage, API security, web application posture

  • Pillar 5 - Data: Database exposure, data-in-transit encryption, storage security

  • Maturity scoring per CISA ZT Maturity Model: TRADITIONAL / ADVANCED / OPTIMAL

  • DoD ZTA Reference Architecture alignment assessment

  • OMB M-22-09 Federal Zero Trust Strategy gap analysis

  • Phased transformation roadmap generation

NIST SP 800-53 Rev. 5 Control Mapping

  • Maps findings to: CA-7, CM-8, RA-5, SC-7, SI-4, PM-5, AC-17

  • Control satisfaction assessment: satisfied / partially_satisfied / not_satisfied

  • FIPS 199 baseline coverage (LOW / MODERATE / HIGH)

  • POA&M generation with severity-based SLAs (30/90/180 days)

  • Phased remediation milestones per NIST SP 800-37 Rev. 2

Multi-Framework Vulnerability Scoring

  • CVSS v3.1: Complete base, temporal, and environmental score computation per FIRST specification

  • SSVC: Stakeholder-Specific Vulnerability Categorization using CISA decision tree (Track/Track*/Attend/Act)

  • KEV: Known Exploited Vulnerabilities cross-reference with ransomware indicators

  • Mission Impact: Defense-grade impact assessment considering service criticality and asset classification

  • Composite priority scoring combining all frameworks

Installation

cd ${AGENTIC_SYSTEM_PATH:-/opt/agentic}/mcp-servers/network-scanner-mcp
source ${AGENTIC_SYSTEM_PATH:-/opt/agentic}/.venv/bin/activate

# Install the package
pip install -e .

# For development (includes tests)
pip install -e ".[dev]"

# Install system dependencies (Fedora)
sudo dnf install arp-scan

# For voice alerts (optional)
pip install edge-tts
sudo dnf install mpv

Configuration

MCP Server Configuration

Add to ~/.claude.json:

{
  "mcpServers": {
    "network-scanner": {
      "command": "${AGENTIC_SYSTEM_PATH:-/opt/agentic}/.venv/bin/python",
      "args": ["-m", "network_scanner_mcp.server"],
      "cwd": "${AGENTIC_SYSTEM_PATH:-/opt/agentic}/mcp-servers/network-scanner-mcp/src"
    }
  }
}

Environment Variables

Variable

Default

Description

NETWORK_SCANNER_DATA_DIR

$AGENTIC_SYSTEM_PATH/databases/network-scanner

Data storage directory

NETWORK_INTERFACE

Auto-detected

Network interface to use

DEFAULT_SCAN_SUBNET

Auto-detected

Default subnet for scans

LOG_LEVEL

INFO

Logging level

LOG_TO_FILE

false

Enable file logging

CLUSTER_NODES_JSON

None

JSON string of cluster nodes

Alert Daemon Environment Variables

Variable

Default

Description

SCAN_INTERVAL_SECONDS

300

Seconds between scans

VOICE_ALERTS_ENABLED

true

Enable voice alerts

NODE_CHAT_ALERTS_ENABLED

true

Enable cluster alerts

ALERT_ON_NEW_DEVICES

true

Alert on new device detection

ALERT_ON_CLUSTER_NODE_DOWN

true

Alert when cluster nodes go offline

TTS_VOICE

en-IE-EmilyNeural

Voice for TTS alerts

MAX_ALERT_HISTORY

1000

Maximum alerts to retain

Cluster Nodes Configuration

Create cluster_nodes.json in the data directory:

{
  "192.0.2.146": {
    "name": "orchestrator",
    "role": "orchestrator",
    "type": "cluster_node"
  },
  "192.0.2.196": {
    "name": "builder",
    "role": "builder",
    "type": "cluster_node"
  },
  "192.0.2.233": {
    "name": "researcher",
    "role": "researcher",
    "type": "cluster_node"
  }
}

Or set via environment variable:

export CLUSTER_NODES_JSON='{"192.0.2.146": {"name": "orchestrator", "role": "orchestrator"}}'

MCP Tools

Device Discovery

Tool

Description

scan_network(subnet?, resolve_names?)

ARP scan for all devices on subnet

detect_new_devices()

Find only new devices since last scan

get_unknown_devices()

List unidentified devices

Device Information

Tool

Description

get_device_info(identifier)

Details about device (by IP or MAC)

get_device_history(mac?)

Historical data for devices

mark_device_known(mac, label, device_type)

Label a device as trusted

remove_device_known(mac)

Remove device from known list

Network Topology

Tool

Description

get_network_topology()

Full topology with categorization

Port Scanning

Tool

Description

scan_device_ports(target, ports?, quick?)

Scan ports on specific device

discover_services()

Quick scan all devices for services

Cluster Monitoring

Tool

Description

get_cluster_nodes()

Status of configured cluster nodes

check_cluster_health()

Ping all nodes and report health

Defense & Federal Compliance

Tool

Description

network_scap_report(target?)

Generate SCAP-compliant results (XCCDF, OVAL, CPE)

network_cis_check(target, known_services?)

Run CIS benchmark assessment

network_asset_inventory()

NIST CSF-aligned asset inventory with risk scoring

network_zero_trust_assess()

Zero Trust posture assessment (NIST 800-207/DISA ZTA)

network_compliance_map(include_cis?)

Map findings to NIST 800-53 controls

network_vuln_prioritize(vulns_json)

Defense-grade vulnerability prioritization (CVSS+SSVC+KEV)

network_generate_poam()

Generate Plan of Action & Milestones

Utilities

Tool

Description

ping_device(target, count?)

Ping device for reachability

resolve_device_hostname(target)

Resolve hostname via DNS

get_scanner_status()

Get scanner status and configuration

export_for_security_scan()

Export IPs for security-scanner-mcp

Usage Examples

Basic Network Discovery

# Scan the network
scan_network()

# Scan with hostname resolution
scan_network(resolve_names=True)

# Check for new devices
detect_new_devices()

# Find unknown devices
get_unknown_devices()

Device Management

# Mark your phone as known
mark_device_known(
    mac="00:00:00:00:00:63",
    label="Marc's iPhone",
    device_type="trusted"
)

# Get device details
get_device_info("192.0.2.217")
get_device_info("00:00:00:00:00:63")

# View device history
get_device_history()

Port Scanning

# Quick port scan (common ports)
scan_device_ports("192.0.2.217", quick=True)

# Scan specific ports
scan_device_ports("192.0.2.217", ports="22,80,443,8080")

# Full port scan (1-1024)
scan_device_ports("192.0.2.217", ports="all")

# Discover services on all devices
discover_services()

Cluster Monitoring

# Check cluster node status
get_cluster_nodes()

# Full health check with latency
check_cluster_health()

Network Topology

# Get full network topology
topology = get_network_topology()

# Returns categorized lists:
# - cluster_nodes: Configured cluster nodes
# - known_devices: Devices marked as trusted
# - unknown_devices: Unidentified devices

Alert Daemon

The alert daemon provides continuous network monitoring with alerts.

Running the Daemon

# Run directly
python -m network_scanner_mcp.alert_daemon

# Or use the installed script
network-scanner-daemon

Systemd Service

Install as a systemd service:

sudo cp network-scanner-daemon.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable network-scanner-daemon
sudo systemctl start network-scanner-daemon

Check status:

sudo systemctl status network-scanner-daemon
journalctl -u network-scanner-daemon -f

Alert Types

Type

Trigger

Priority

new_device

Unknown device detected

High

node_offline

Cluster node unreachable

Critical

node_recovered

Cluster node back online

Normal

Data Storage

All data is stored in the configured data directory (default: ${AGENTIC_SYSTEM_PATH:-/opt/agentic}/databases/network-scanner/):

File

Description

device_history.json

All discovered devices with metadata

known_devices.json

Devices marked as known/trusted

cluster_nodes.json

Cluster node configuration

alert_history.json

Alert log (last 1000 alerts)

pending_alerts.json

Queued alerts for delivery

server.log

MCP server logs (if enabled)

alert_daemon.log

Alert daemon logs

Integration

Enhanced Memory MCP

Device discoveries can be stored in enhanced-memory for pattern analysis and learning.

Node-Chat MCP

Alerts are broadcast to cluster nodes via node-chat when enabled.

Security Scanner MCP

Use export_for_security_scan() to get IP lists for vulnerability scanning with security-scanner-mcp.

Development

Running Tests

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run with coverage
pytest --cov=network_scanner_mcp --cov-report=html

# Run specific test file
pytest tests/test_utils.py -v

Code Structure

src/network_scanner_mcp/
├── __init__.py                  # Package exports
├── server.py                    # MCP server with tools
├── scanner.py                   # Scanning functionality
├── alert_daemon.py              # Continuous monitoring daemon
├── utils.py                     # Shared utilities
└── compliance/                  # Defense & federal compliance
    ├── __init__.py              # Compliance module exports
    ├── scap_output.py           # SCAP output (XCCDF, OVAL, CPE)
    ├── cis_benchmarks.py        # CIS Benchmark checking
    ├── nist_csf_inventory.py    # NIST CSF asset inventory
    ├── zero_trust.py            # Zero Trust assessment (800-207)
    ├── nist_800_53.py           # NIST 800-53 control mapping + POA&M
    └── vuln_scoring.py          # CVSS v3.1, SSVC, KEV scoring

Requirements

  • Python 3.10+

  • Root/sudo access for ARP scanning

  • Network interface access

System Dependencies

  • arp-scan - Required for ARP scanning

  • edge-tts - Optional for voice alerts

  • mpv - Optional for audio playback

Changelog

v0.3.0

  • Added SCAP-compliant output (XCCDF 1.2, OVAL 5.11, CPE 2.3)

  • Added CIS Benchmark checking with 8 network device hardening checks

  • Added NIST CSF asset inventory (ID.AM-1 through ID.AM-5) with risk scoring

  • Added Zero Trust Architecture assessment (NIST 800-207, DISA ZTA, CISA ZT Maturity Model)

  • Added NIST SP 800-53 Rev. 5 control mapping (7 control families)

  • Added POA&M generation per NIST SP 800-37 Rev. 2

  • Added multi-framework vulnerability scoring (CVSS v3.1, SSVC, KEV, mission impact)

  • 7 new MCP tools for defense and federal compliance

  • Asset classification: PUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED

  • DoD ZTA Reference Architecture and OMB M-22-09 alignment

v0.2.0

  • Added port scanning and service detection

  • Added hostname resolution

  • Implemented proper node-chat integration

  • Refactored with shared utilities module

  • Added comprehensive type hints

  • Added thread-safe device registry

  • Removed unused dependencies

  • Added unit tests

  • Fixed data format inconsistencies

  • Auto-detect network interface

v0.1.0

  • Initial release

  • ARP scanning

  • Device history tracking

  • Basic cluster monitoring

  • Alert daemon


Part of the AGI Agentic System - Environmental Awareness Component

Part of the MCP Ecosystem

This server integrates with other MCP servers for comprehensive AGI capabilities:

Server

Purpose

enhanced-memory-mcp

4-tier persistent memory with semantic search

agent-runtime-mcp

Persistent task queues and goal decomposition

agi-mcp

Full AGI orchestration with 21 tools

cluster-execution-mcp

Distributed task routing across nodes

node-chat-mcp

Inter-node AI communication

ember-mcp

Production-only policy enforcement

See agentic-system-oss for the complete framework.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marc-shade/network-scanner-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server