github Python re-analysis due

AIops-tools/Network-AIops

github

Standalone governed multi-vendor network ops (NAPALM) — 13 MCP tools with audit/budget/undo/risk-tier harness

maintainer
AIops-tools
license
MIT
first seen
2026-06-22
last seen
2026-09-02
releases · 30d
1
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 33 tools
transport stdio · http verified reported listed in the official MCP registry counts 33 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • bgp_neighbor_rca
  • config_backup
  • config_diff
  • config_merge
  • config_replace
  • config_rollback
  • confirm_commit
  • device_facts
  • device_health
  • get_arp_table
  • get_bgp_neighbors
  • get_bgp_neighbors_detail
  • get_environment
  • get_interfaces
  • get_interfaces_counters
  • get_interfaces_ip
  • get_lldp_neighbors
  • get_lldp_neighbors_detail
  • get_mac_address_table
  • get_network_instances
  • get_ntp_servers
  • get_ntp_stats
  • get_optics
  • get_route_to
  • get_snmp_information
  • get_users
  • get_vlans
  • interface_health_rca
  • netbox_device_interfaces
  • netbox_get_device
  • netbox_list_devices
  • undo_apply
  • undo_list
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit f0e3582 · analyzer v33 · 2w ago

skills & prompt files 1

code evidence vv0.10.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 73

filesystem 18

  • fs AIops-tools-Network-AIops-f0e3582/mcp_server/_shared.py :19 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/cli/_common.py :7 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/cli/config.py :16 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/config.py :24 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/connection.py :130 device.open()
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/governance/audit.py :16 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/governance/paths.py :11 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/governance/patterns.py :34 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/governance/undo.py :34 from pathlib import Path
  • fs AIops-tools-Network-AIops-f0e3582/network_aiops/secretstore.py :42 from pathlib import Path
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/conftest.py :44 def open(self):
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/test_cli_governed_exit.py :23 import pathlib
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/test_config_lockout.py :42 def open(self):
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/test_config_redaction.py :22 from pathlib import Path
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/test_connection_extra.py :146 def open(self):
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/test_gov_patterns.py :384 import shutil
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/test_ops_diagnostics.py :196 def open(self):
  • fs (weak) AIops-tools-Network-AIops-f0e3582/tests/test_smoke.py :89 from pathlib import Path

shell / exec 1

  • shell (weak) AIops-tools-Network-AIops-f0e3582/tests/test_undo_executor.py :238 import subprocess

secrets 5

  • secrets AIops-tools-Network-AIops-f0e3582/network_aiops/cli/init.py :13 import getpass
  • secrets AIops-tools-Network-AIops-f0e3582/network_aiops/cli/secret.py :11 import getpass
  • secrets AIops-tools-Network-AIops-f0e3582/network_aiops/governance/audit.py :9 import getpass
  • secrets AIops-tools-Network-AIops-f0e3582/network_aiops/secretstore.py :35 import getpass
  • secrets (weak) AIops-tools-Network-AIops-f0e3582/tests/test_gov_audit.py :240 import getpass

database 8

  • db AIops-tools-Network-AIops-f0e3582/network_aiops/governance/audit.py :13 import sqlite3
  • db AIops-tools-Network-AIops-f0e3582/network_aiops/governance/undo.py :30 import sqlite3
  • db (weak) AIops-tools-Network-AIops-f0e3582/tests/test_cli_writes.py :12 import sqlite3
  • db (weak) AIops-tools-Network-AIops-f0e3582/tests/test_gov_audit.py :14 import sqlite3
  • db (weak) AIops-tools-Network-AIops-f0e3582/tests/test_gov_decorators.py :22 import sqlite3
  • db (weak) AIops-tools-Network-AIops-f0e3582/tests/test_governance_persistence.py :13 import sqlite3
  • db (weak) AIops-tools-Network-AIops-f0e3582/tests/test_mcp_tools.py :10 import sqlite3
  • db (weak) AIops-tools-Network-AIops-f0e3582/tests/test_undo_executor.py :12 import sqlite3

tool registrations 33

  • config_backup AIops-tools-Network-AIops-f0e3582/mcp_server/tools/config_ops.py :65
  • config_diff AIops-tools-Network-AIops-f0e3582/mcp_server/tools/config_ops.py :93
  • config_merge AIops-tools-Network-AIops-f0e3582/mcp_server/tools/config_ops.py :123
  • config_replace AIops-tools-Network-AIops-f0e3582/mcp_server/tools/config_ops.py :164
  • confirm_commit AIops-tools-Network-AIops-f0e3582/mcp_server/tools/config_ops.py :203
  • config_rollback AIops-tools-Network-AIops-f0e3582/mcp_server/tools/config_ops.py :226
  • interface_health_rca AIops-tools-Network-AIops-f0e3582/mcp_server/tools/diagnostics.py :18
  • bgp_neighbor_rca AIops-tools-Network-AIops-f0e3582/mcp_server/tools/diagnostics.py :37
  • get_environment AIops-tools-Network-AIops-f0e3582/mcp_server/tools/environment.py :15
  • get_optics AIops-tools-Network-AIops-f0e3582/mcp_server/tools/environment.py :27
  • get_ntp_servers AIops-tools-Network-AIops-f0e3582/mcp_server/tools/environment.py :39
  • get_ntp_stats AIops-tools-Network-AIops-f0e3582/mcp_server/tools/environment.py :51
  • get_users AIops-tools-Network-AIops-f0e3582/mcp_server/tools/environment.py :63
  • get_snmp_information AIops-tools-Network-AIops-f0e3582/mcp_server/tools/environment.py :75
  • get_network_instances AIops-tools-Network-AIops-f0e3582/mcp_server/tools/environment.py :87
  • device_facts AIops-tools-Network-AIops-f0e3582/mcp_server/tools/facts.py :15
  • get_interfaces AIops-tools-Network-AIops-f0e3582/mcp_server/tools/facts.py :30
  • get_interfaces_ip AIops-tools-Network-AIops-f0e3582/mcp_server/tools/facts.py :42
  • get_bgp_neighbors AIops-tools-Network-AIops-f0e3582/mcp_server/tools/facts.py :54
  • get_lldp_neighbors AIops-tools-Network-AIops-f0e3582/mcp_server/tools/facts.py :66
  • get_arp_table AIops-tools-Network-AIops-f0e3582/mcp_server/tools/facts.py :78
  • device_health AIops-tools-Network-AIops-f0e3582/mcp_server/tools/health.py :14
  • get_interfaces_counters AIops-tools-Network-AIops-f0e3582/mcp_server/tools/inventory.py :14
  • get_mac_address_table AIops-tools-Network-AIops-f0e3582/mcp_server/tools/inventory.py :26
  • get_vlans AIops-tools-Network-AIops-f0e3582/mcp_server/tools/inventory.py :38
  • get_route_to AIops-tools-Network-AIops-f0e3582/mcp_server/tools/inventory.py :50
  • get_bgp_neighbors_detail AIops-tools-Network-AIops-f0e3582/mcp_server/tools/neighbors.py :15
  • get_lldp_neighbors_detail AIops-tools-Network-AIops-f0e3582/mcp_server/tools/neighbors.py :27
  • netbox_list_devices AIops-tools-Network-AIops-f0e3582/mcp_server/tools/netbox.py :14
  • netbox_get_device AIops-tools-Network-AIops-f0e3582/mcp_server/tools/netbox.py :34
  • netbox_device_interfaces AIops-tools-Network-AIops-f0e3582/mcp_server/tools/netbox.py :46
  • undo_list AIops-tools-Network-AIops-f0e3582/mcp_server/tools/undo.py :43
  • undo_apply AIops-tools-Network-AIops-f0e3582/mcp_server/tools/undo.py :115

declared dependencies 8

  • mcp@>=2.0,<3.0
  • napalm@>=4.1,<6
  • pynetbox@>=7,<8
  • typer@>=0.12,<1.0
  • rich@>=13.0,<16.0
  • pyyaml@>=6.0,<7.0
  • python-dotenv@>=1.0,<2.0
  • cryptography@>=42.0