Cisco SSH MCP Server

Conecte-se, configure e monitore dispositivos de rede Cisco, como roteadores e switches, via SSH.

Documentação

Cisco SSH MCP Server

Um servidor Model Context Protocol (MCP) para gerenciar conexões SSH a dispositivos de rede Cisco. Este servidor fornece ferramentas para conectar, configurar e monitorar roteadores e switches Cisco via SSH.

Recursos

  • Múltiplas Conexões SSH: Gerencie conexões com vários dispositivos Cisco simultaneamente
  • Execução de Comandos: Execute qualquer comando CLI em dispositivos conectados
  • Gerenciamento de Configuração: Entre no modo de configuração e aplique alterações de configuração
  • Comandos Show: Execute comandos show com análise opcional de saída
  • Acesso Bruto ao Terminal: Envie texto bruto para sessões interativas
  • Gerenciamento de Conexões: Liste, conecte e desconecte de dispositivos
  • Autenticação Segura: Suporte para autenticação baseada em senha e chave

Instalação

npm install
npm run build

Uso

Como um Servidor MCP

Configure seu cliente MCP (como o Cline) para usar este servidor:

{
  "mcpServers": {
    "cisco-ssh": {
      "command": "node",
      "args": ["path/to/cisco-ssh-mcp/dist/index.js"]
    }
  }
}

Uso na Linha de Comando

# Start the MCP server
npm start

# Start with default connection parameters
cisco-ssh-mcp --host 192.168.1.1 --username admin

Ferramentas Disponíveis

cisco_connect

Conecte a um dispositivo Cisco via SSH.

Parâmetros:

  • host (obrigatório): Endereço IP ou nome de host
  • username (obrigatório): Nome de usuário SSH
  • password: Senha SSH
  • privateKey: Chave privada para autenticação
  • port: Porta SSH (padrão: 22)
  • connectionId: Identificador único para a conexão

cisco_exec

Execute um comando em um dispositivo conectado.

Parâmetros:

  • command (obrigatório): Comando a executar
  • connectionId: Qual conexão usar
  • timeout: Tempo limite do comando em milissegundos

cisco_config

Entre no modo de configuração e execute comandos de configuração.

Parâmetros:

  • commands (obrigatório): Matriz de comandos de configuração
  • connectionId: Qual conexão usar
  • save: Se deve salvar a configuração após as alterações

cisco_show

Execute comandos show com análise opcional de saída.

Parâmetros:

  • command (obrigatório): Comando show a executar
  • connectionId: Qual conexão usar
  • parseOutput: Analisar a saída em formato estruturado

cisco_send_raw

Envie texto bruto para a conexão SSH.

Parâmetros:

  • text (obrigatório): Texto bruto a enviar
  • connectionId: Qual conexão usar
  • waitForPrompt: Aguardar o prompt de comando

cisco_list_connections

Liste todas as conexões SSH ativas.

cisco_disconnect

Desconecte de um dispositivo.

Parâmetros:

  • connectionId: Conexão a desconectar

Exemplos

Conectando a um Dispositivo

// 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"
  }
}

Executando Comandos

// 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
  }
}

Considerações de Segurança

  • Use chaves SSH em vez de senhas quando possível
  • Implemente segmentação de rede adequada para tráfego de gerenciamento
  • Habilite o registro de todos os comandos executados
  • Use VLANs de gerenciamento dedicadas
  • Implemente controles de acesso e autenticação adequados

Solução de Problemas

  • Tempo Limite de Conexão: Verifique a conectividade de rede e o serviço SSH no dispositivo
  • Falha na Autenticação: Verifique as credenciais e a configuração SSH
  • Tempo Limite de Comando: Aumente os valores de tempo limite para dispositivos lentos
  • Permissão Negada: Garanta que o usuário tenha privilégios adequados

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes.