网络扫描器MCP
   
用于基础设施映射的网络发现和端口扫描。
部分 代理系统 -具有持久内存的24/7自主AI框架。
通过网络设备发现、端口扫描和服务检测提高AGI集群的环境意识。
特性
设备发现
- ARP网络扫描:发现本地网络上的所有设备
- MAC供应商查找:确定设备制造商
- 主机名解析:通过反向DNS解析设备主机名
- 设备历史记录:跟踪设备首次/最后一次出现的时间
- 异常检测:未知设备加入时发出警报
端口扫描和服务检测
- 端口扫描:扫描特定端口或通用服务端口
- 服务指纹:按端口和横幅标识服务
- 快速扫描模式:快速扫描常用端口(22、80、443等)
- 全端口扫描:端口1-1024的全面扫描
- 横幅抓取:捕获服务横幅以供识别
集群监控
- 群集节点状态:监视AGI群集节点连接
- 健康检查:基于Ping的延迟可达性测试
- 警报守护进程:通过语音和集群警报进行持续监控
- 节点恢复检测:节点重新联机时发出警报
告警
- 警报声:通过边缘TTS发出TTS警报
- 节点聊天集成:向群集节点广播警报
- 警报历史记录:具有历史记录的持久警报日志
国防与联邦合规
SCAP合规性输出
- XCCDF 1.2:根据NIST SP 800-126第3版生成可扩展配置清单描述格式结果
- 椭圆形5.11:为自动评估生成开放漏洞和评估语言定义
- CPE 2.3:用于通过供应商/产品/版本解析进行资产识别的通用平台枚举
- CCE参考:链接到检查结果的通用配置枚举标识符
CIS基准检查
- 未使用的高风险端口检测(telnet、FTP、rlogin等)
- 通过横幅分析进行默认凭据检测
- TLS 1.2+强制验证(根据NIST SP 800-52第2版)
- SNMP社区字符串暴力测试(SNMPv2c数据包构造)
- SSH配置审核(协议版本、服务器货币)
- NTP同步验证(UDP NTP客户端探测)
- Syslog转发配置检查
- 访问控制列表姿势评估
- 每次检查返回:benchmark_id、标题、描述、级别(L1/L2)、状态、基本原理、补救措施
NIST CSF资产清单
- ID.AM-1:按类型分类清点的物理设备和系统
- ID.AM-2:从端口/横幅数据编目的软件平台和应用程序
- ID.AM-3:组织数据流映射(方向、加密状态)
- ID.AM-4:通过RFC 1918边界分析确定的外部信息系统
- ID.AM-5:按分类(公共/内部/机密/受限)和风险评分优先的资源
- 多因素风险评分:暴露(30%)、关键性(25%)、漏洞(25%)和补丁状态(20%)
零信任架构评估(NIST SP 800-207+DISA ZTA)
- 支柱1-身份:身份验证强度、MFA指标、集中式身份服务
- 支柱2-装置:库存完整性、设备健康状况、端点管理覆盖率
- 支柱3-网络:微细分、加密传输率、横向移动风险
- 支柱4-应用:HTTPS覆盖率、API安全性、web应用程序姿态
- 支柱5-数据:数据库暴露、传输中的数据加密、存储安全
- 根据CISA ZT成熟度模型的成熟度评分:传统/高级/最优
- 国防部ZTA参考架构对齐评估
- OMB M-22-09联邦零信任战略差距分析
- 分阶段转型路线图生成
NIST SP 800-53第5版控制映射
- 将结果映射到:CA-7、CM-8、RA-5、SC-7、SI-4、PM-5、AC-17
- 控制满意度评估:满意/部分满意/不满意
- FIPS 199基线覆盖率(低/中/高)
- 基于严重性SLA的POA&M生成(30/90/180天)
- 根据NIST SP 800-37第2版分阶段补救里程碑
多框架漏洞评分
- CVSS v3.1:根据FIRST规范完成基础、时间和环境得分计算
- 音量控制器:使用CISA决策树对利益相关者特定的漏洞进行分类(跟踪/跟踪\*/参加/行动)
- 千电子伏:已知利用漏洞与勒索软件指标的交叉引用
- 任务影响:考虑服务关键性和资产分类的国防级影响评估
- 结合所有框架的综合优先级评分
安装
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配置
MCP服务器配置
增添 ~/.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"
}
}
}环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
NETWORK_SCANNER_DATA_DIR | $AGENTIC_SYSTEM_PATH/databases/network-scanner | 数据存储目录 |
NETWORK_INTERFACE | 自动检测 | 要使用的网络接口 |
DEFAULT_SCAN_SUBNET | 自动检测 | 扫描的默认子网 |
LOG_LEVEL | INFO | 日志记录级别 |
LOG_TO_FILE | false | 启用文件日志记录 |
CLUSTER_NODES_JSON | 无 | 集群节点的JSON字符串 |
警报守护进程环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
SCAN_INTERVAL_SECONDS | 300 | 扫描间隔秒数 |
VOICE_ALERTS_ENABLED | true | 启用语音警报 |
NODE_CHAT_ALERTS_ENABLED | true | 启用群集警报 |
ALERT_ON_NEW_DEVICES | true | 检测到新设备时发出警报 |
ALERT_ON_CLUSTER_NODE_DOWN | true | 群集节点脱机时发出警报 |
TTS_VOICE | en-IE-EmilyNeural | TTS警报语音 |
MAX_ALERT_HISTORY | 1000 | 要保留的最大警报数 |
群集节点配置
创建 cluster_nodes.json 在数据目录中:
{
"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"
}
}或通过环境变量设置:
export CLUSTER_NODES_JSON='{"192.0.2.146": {"name": "orchestrator", "role": "orchestrator"}}'MCP工具
设备发现
| 工具 | 说明 |
|---|---|
scan_network(subnet?, resolve_names?) | 子网上所有设备的ARP扫描 |
detect_new_devices() | 仅查找自上次扫描以来的新设备 |
get_unknown_devices() | 列出未识别的设备 |
设备信息
| 工具 | 说明 |
|---|---|
get_device_info(identifier) | 设备详细信息(按IP或MAC) |
get_device_history(mac?) | 设备的历史数据 |
mark_device_known(mac, label, device_type) | 将设备标记为可信 |
remove_device_known(mac) | 从已知列表中删除设备 |
网络拓扑
| 工具 | 说明 |
|---|---|
get_network_topology() | 具有分类功能的完整拓扑 |
端口扫描
| 工具 | 说明 |
|---|---|
scan_device_ports(target, ports?, quick?) | 扫描特定设备上的端口 |
discover_services() | 快速扫描所有设备以查找服务 |
集群监控
| 工具 | 说明 |
|---|---|
get_cluster_nodes() | 已配置群集节点的状态 |
check_cluster_health() | Ping所有节点并报告运行状况 |
国防与联邦合规
| 工具 | 说明 |
|---|---|
network_scap_report(target?) | 生成符合SCAP的结果(XCCDF、OVAL、CPE) |
network_cis_check(target, known_services?) | 运行CIS基准评估 |
network_asset_inventory() | NIST CSF将资产库存与风险评分相一致 |
network_zero_trust_assess() | 零信任态势评估(NIST 800-207/DISA ZTA) |
network_compliance_map(include_cis?) | 将调查结果映射到NIST 800-53控制中 |
network_vuln_prioritize(vulns_json) | 防御级漏洞优先级(CVSS+SSVC+KEV) |
network_generate_poam() | 制定行动计划和里程碑 |
公用事业
| 工具 | 说明 |
|---|---|
ping_device(target, count?) | Ping设备用于可达性 |
resolve_device_hostname(target) | 通过DNS解析主机名 |
get_scanner_status() | 获取扫描仪状态和配置 |
export_for_security_scan() | 导出安全扫描程序mcp的IP地址 |
使用示例
基本网络发现
# 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()设备管理
# 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()端口扫描
# 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()集群监控
# Check cluster node status
get_cluster_nodes()
# Full health check with latency
check_cluster_health()网络拓扑
# 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警报守护进程
警报守护进程通过警报提供持续的网络监控。
运行守护进程
# Run directly
python -m network_scanner_mcp.alert_daemon
# Or use the installed script
network-scanner-daemon系统化服务
作为systemd服务安装:
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检查状态:
sudo systemctl status network-scanner-daemon
journalctl -u network-scanner-daemon -f警报类型
| 类型 | 触发器 | 优先级 |
|---|---|---|
new_device | 检测到未知设备 | 高 |
node_offline | 群集节点无法访问 | 严重 |
node_recovered | 群集节点重新联机 | 正常 |
数据存储
所有数据都存储在配置的数据目录中(默认值: ${AGENTIC_SYSTEM_PATH:-/opt/agentic}/databases/network-scanner/):
| 文件 | 描述 |
|---|---|
device_history.json | 所有已发现的带有元数据的设备 |
known_devices.json | 标记为已知/可信的设备 |
cluster_nodes.json | 群集节点配置 |
alert_history.json | 警报日志(最近1000个警报) |
pending_alerts.json | 排队等待送达的警报 |
server.log | MCP服务器日志(如果启用) |
alert_daemon.log | 警报守护进程日志 |
整合
增强型内存MCP
设备发现可以存储在增强的内存中,用于模式分析和学习。
节点聊天MCP
启用后,警报将通过节点聊天广播到集群节点。
安全扫描器MCP
使用 export_for_security_scan() 使用安全扫描程序mcp获取漏洞扫描的IP列表。
发展
运行测试
# 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代码结构
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需求
- Python 3.10+
- ARP扫描的Root/sudo访问权限
- 网络接口访问
系统相关性
arp-scan-ARP扫描所需edge-tts-语音警报可选mpv-音频播放可选
更新日志
v0.3.0
- 添加了符合SCAP的输出(XCCDF 1.2、OVAL 5.11、CPE 2.3)
- 添加了8个网络设备强化检查的CIS基准检查
- 增加了NIST CSF资产清单(ID.AM-1至ID.AM-5),并进行了风险评分
- 增加了零信任架构评估(NIST 800-207、DISA ZTA、CISA ZT成熟度模型)
- 增加了NIST SP 800-53第5版控制映射(7个控制系列)
- 根据NIST SP 800-37第2版增加了POA&M生成
- 增加了多框架漏洞评分(CVSS v3.1、SSVC、KEV、任务影响)
- 7种新的MCP工具,用于国防和联邦合规
- 资产分类:公共、内部、机密、受限
- 国防部ZTA参考架构和OMB M-22-09对齐
v0.2.0版本
- 增加了端口扫描和服务检测
- 添加主机名解析
- 实现了适当的节点聊天集成
- 使用共享实用程序模块进行重构
- 添加了全面的类型提示
- 添加了线程安全设备注册表
- 已删除未使用的依赖项
- 增加了单元测试
- 修复了数据格式不一致的问题
- 自动检测网络接口
v0.1.0
- 初始版本
- ARP扫描
- 设备历史跟踪
- 基本集群监控
- 警报守护进程
______________________________________________________________________
*AGI代理系统的一部分——环境意识部分*
MCP生态系统的一部分
该服务器与其他MCP服务器集成,以实现全面的AGI功能:
| 服务器 | 用途 |
|---|---|
| 增强记忆mcp | 语义搜索的四层持久记忆 |
| 代理运行时mcp | 持久任务队列和目标分解 |
| agi mcp | 使用21个工具进行完整的AGI编排 |
| 集群执行mcp | 跨节点的分布式任务路由 |
| 节点聊天mcp | 节点间AI通信 |
| 恩伯·麦克普 | 仅生产政策执行 |
看 代理系统oss 对于完整的框架。
