aroshak/cisco-ssh-mcp
If you are the rightful owner of cisco-ssh-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for managing SSH connections to Cisco network devices.
cisco_connect
Connect to a Cisco device via SSH.
cisco_exec
Execute a command on a connected device.
cisco_config
Enter configuration mode and execute configuration commands.
cisco_show
Execute show commands with optional output parsing.
cisco_send_raw
Send raw text to the SSH connection.
cisco_list_connections
List all active SSH connections.
cisco_disconnect
Disconnect from a device.
Cisco SSH MCP Server
A Model Context Protocol (MCP) server for managing SSH connections to Cisco network devices. This server provides tools for connecting to, configuring, and monitoring Cisco routers and switches through SSH.
Features
- Multiple SSH Connections: Manage connections to multiple Cisco devices simultaneously
- Command Execution: Execute any CLI command on connected devices
- Configuration Management: Enter config mode and apply configuration changes
- Show Commands: Execute show commands with optional output parsing
- Raw Terminal Access: Send raw text for interactive sessions
- Connection Management: List, connect, and disconnect from devices
- Secure Authentication: Support for password and key-based authentication
Installation
npm install
npm run build
Usage
As an MCP Server
Configure your MCP client (like Cline) to use this server:
{
"mcpServers": {
"cisco-ssh": {
"command": "node",
"args": ["path/to/cisco-ssh-mcp/dist/index.js"]
}
}
}
Command Line Usage
# Start the MCP server
npm start
# Start with default connection parameters
cisco-ssh-mcp --host 192.168.1.1 --username admin
Available Tools
cisco_connect
Connect to a Cisco device via SSH.
Parameters:
host
(required): IP address or hostnameusername
(required): SSH usernamepassword
: SSH passwordprivateKey
: Private key for authenticationport
: SSH port (default: 22)connectionId
: Unique identifier for the connection
cisco_exec
Execute a command on a connected device.
Parameters:
command
(required): Command to executeconnectionId
: Which connection to usetimeout
: Command timeout in milliseconds
cisco_config
Enter configuration mode and execute configuration commands.
Parameters:
commands
(required): Array of configuration commandsconnectionId
: Which connection to usesave
: Whether to save config after changes
cisco_show
Execute show commands with optional output parsing.
Parameters:
command
(required): Show command to executeconnectionId
: Which connection to useparseOutput
: Parse output into structured format
cisco_send_raw
Send raw text to the SSH connection.
Parameters:
text
(required): Raw text to sendconnectionId
: Which connection to usewaitForPrompt
: Wait for command prompt
cisco_list_connections
List all active SSH connections.
cisco_disconnect
Disconnect from a device.
Parameters:
connectionId
: Connection to disconnect
Examples
Connecting to a Device
// Connect using password
{
"tool": "cisco_connect",
"arguments": {
"host": "192.168.1.1",
"username": "admin",
"password": "cisco123",
"connectionId": "router1"
}
}
// Connect using SSH key
{
"tool": "cisco_connect",
"arguments": {
"host": "192.168.1.1",
"username": "admin",
"privateKey": "-----BEGIN RSA PRIVATE KEY-----\\n...",
"connectionId": "router1"
}
}
Executing Commands
// Show interface status
{
"tool": "cisco_show",
"arguments": {
"command": "show ip interface brief",
"parseOutput": true
}
}
// Configure an interface
{
"tool": "cisco_config",
"arguments": {
"commands": [
"interface GigabitEthernet0/1",
"ip address 192.168.10.1 255.255.255.0",
"no shutdown"
],
"save": true
}
}
Security Considerations
- Use SSH keys instead of passwords when possible
- Implement proper network segmentation for management traffic
- Enable logging for all commands executed
- Use dedicated management VLANs
- Implement proper access controls and authentication
Troubleshooting
- Connection Timeout: Check network connectivity and SSH service on device
- Authentication Failed: Verify credentials and SSH configuration
- Command Timeout: Increase timeout values for slow devices
- Permission Denied: Ensure user has appropriate privileges
License
MIT License - see LICENSE file for details.