Files
cisco-switch-mcp/src/cisco_switch_mcp/tools/interfaces.py

42 lines
1.5 KiB
Python

"""Interface monitoring tools."""
from __future__ import annotations
from mcp.server.fastmcp import FastMCP
from cisco_switch_mcp.client import run_show_command
from cisco_switch_mcp.guards import validate_interface
def register(mcp: FastMCP) -> None:
@mcp.tool()
def cisco_switch_show_interfaces_status() -> str:
"""Get brief interface status (port, VLAN, speed, duplex, status)."""
return run_show_command("show interfaces status")
@mcp.tool()
def cisco_switch_show_interfaces_description() -> str:
"""Get interface descriptions."""
return run_show_command("show interfaces description")
@mcp.tool()
def cisco_switch_show_interface(interface: str) -> str:
"""Get detailed statistics for one interface (e.g. GigabitEthernet1/0/1)."""
iface = validate_interface(interface)
return run_show_command(f"show interfaces {iface}")
@mcp.tool()
def cisco_switch_show_interfaces_counters() -> str:
"""Get interface error and packet counters."""
return run_show_command("show interfaces counters errors")
@mcp.tool()
def cisco_switch_show_port_channel_summary() -> str:
"""Get EtherChannel / port-channel summary."""
return run_show_command("show etherchannel summary")
@mcp.tool()
def cisco_switch_show_ip_interface_brief() -> str:
"""Get L3 interface IP summary (SVIs and routed ports)."""
return run_show_command("show ip interface brief")