Standalone governed multi-vendor network ops (NAPALM) — 13 MCP tools with audit/budget/undo/risk-tier harness
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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
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
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