59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
# Cisco Switch MCP
|
|
|
|
MCP server for **Cisco Catalyst 3650** and other **IOS-XE** switches. Connects via SSH using [Netmiko](https://github.com/ktbyers/netmiko).
|
|
|
|
## Prerequisites on the switch
|
|
|
|
1. **SSH enabled**: `ip domain-name local.lan` + `crypto key generate rsa` + `ip ssh version 2`
|
|
2. **User account** with privilege 15 (or enable password configured)
|
|
3. **Management IP** reachable from the Hermes LXC
|
|
|
|
## Install
|
|
|
|
```bash
|
|
/usr/local/lib/hermes-agent/venv/bin/pip install -e /root/cisco-switch-mcp
|
|
```
|
|
|
|
## Hermes config
|
|
|
|
Add to `~/.hermes/config.yaml`:
|
|
|
|
```yaml
|
|
mcp_servers:
|
|
cisco-switch:
|
|
command: /usr/local/lib/hermes-agent/venv/bin/cisco-switch-mcp
|
|
timeout: 120
|
|
enabled: true
|
|
env:
|
|
CISCO_SWITCH_HOST: "10.77.30.40"
|
|
CISCO_SWITCH_USERNAME: "admin"
|
|
CISCO_SWITCH_PASSWORD: "your_password"
|
|
CISCO_SWITCH_DEVICE_TYPE: "cisco_xe"
|
|
CISCO_SWITCH_ALLOW_WRITES: "false"
|
|
```
|
|
|
|
Or: `echo Y | hermes mcp add cisco-switch --command /usr/local/lib/hermes-agent/venv/bin/cisco-switch-mcp --env CISCO_SWITCH_HOST=...`
|
|
|
|
Restart dashboard/gateway and start a **new chat session**.
|
|
|
|
## Tools (40+)
|
|
|
|
| Category | Examples |
|
|
|----------|----------|
|
|
| System | version, inventory, CPU, memory, environment, stack status |
|
|
| Interfaces | status, descriptions, counters, port-channels |
|
|
| VLAN/STP | vlan brief, spanning-tree |
|
|
| L2 | MAC table, CDP/LLDP neighbors, ARP |
|
|
| Diagnostics | logging, ping, traceroute, running-config |
|
|
| Writes | shutdown port, set access VLAN, description, save config |
|
|
|
|
## Safety
|
|
|
|
- Writes disabled by default (`CISCO_SWITCH_ALLOW_WRITES=false`)
|
|
- Blocks `reload`, `write erase`, `format`
|
|
- Audit log at `CISCO_SWITCH_AUDIT_LOG_PATH`
|
|
|
|
## device_type
|
|
|
|
Catalyst 3650 runs IOS-XE. Use `cisco_xe` (default). If connection fails, try `cisco_ios`.
|