# SSH LICCO MCP server

> Enables AI models to manage remote servers through natural language for command execution, file management, and Docker orchestration.

- Repository: https://github.com/Echoqili/ssh-licco
- Page: https://hostedmcp.org/servers/echoqili/ssh-licco
- Transport: stdio
- Stars: 4
- License: MIT
- Latest version: 2.7.3

## Install

### Claude Code

```sh
claude mcp add --env 'SSH_HOST=<SSH_HOST>' --env 'SSH_USER=<SSH_USER>' --env 'SSH_PASSWORD=<YOUR_SSH_PASSWORD>' ssh-licco -- uvx ssh-licco
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "ssh-licco": {
      "command": "uvx",
      "args": [
        "ssh-licco"
      ],
      "env": {
        "SSH_HOST": "<SSH_HOST>",
        "SSH_USER": "<SSH_USER>",
        "SSH_PASSWORD": "<YOUR_SSH_PASSWORD>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "ssh-licco": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "ssh-licco"
      ],
      "env": {
        "SSH_HOST": "<SSH_HOST>",
        "SSH_USER": "<SSH_USER>",
        "SSH_PASSWORD": "<YOUR_SSH_PASSWORD>"
      }
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"ssh-licco","type":"stdio","command":"uvx","args":["ssh-licco"],"env":{"SSH_HOST":"<SSH_HOST>","SSH_USER":"<SSH_USER>","SSH_PASSWORD":"<YOUR_SSH_PASSWORD>"}}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "ssh-licco": {
      "command": "uvx",
      "args": [
        "ssh-licco"
      ],
      "env": {
        "SSH_HOST": "<SSH_HOST>",
        "SSH_USER": "<SSH_USER>",
        "SSH_PASSWORD": "<YOUR_SSH_PASSWORD>"
      }
    }
  }
}
```

### Codex

```sh
codex mcp add ssh-licco --env 'SSH_HOST=<SSH_HOST>' --env 'SSH_USER=<SSH_USER>' --env 'SSH_PASSWORD=<YOUR_SSH_PASSWORD>' -- uvx ssh-licco
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.ssh-licco]
command = "uvx"
args = ["ssh-licco"]

[mcp_servers.ssh-licco.env]
SSH_HOST = "<SSH_HOST>"
SSH_USER = "<SSH_USER>"
SSH_PASSWORD = "<YOUR_SSH_PASSWORD>"
```

### Gemini CLI

```sh
gemini mcp add -s user -e 'SSH_HOST=<SSH_HOST>' -e 'SSH_USER=<SSH_USER>' -e 'SSH_PASSWORD=<YOUR_SSH_PASSWORD>' ssh-licco uvx -- ssh-licco
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "ssh-licco": {
      "command": "uvx",
      "args": [
        "ssh-licco"
      ],
      "env": {
        "SSH_HOST": "<SSH_HOST>",
        "SSH_USER": "<SSH_USER>",
        "SSH_PASSWORD": "<YOUR_SSH_PASSWORD>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `SSH_HOST` | yes | no | SSH server hostname or IP address |
| `SSH_USER` | yes | no | SSH username for authentication |
| `SSH_PASSWORD` | no | yes | SSH password for authentication |
| `SSH_BASE_DIR` | no | no |  |
| `SSH_CLIENT_TYPE` | no | no |  |
| `SSH_EXTRA_ALLOWED_COMMANDS` | no | no |  |
| `SSH_KEEPALIVE_INTERVAL` | no | no |  |
| `SSH_PORT` | no | no | SSH port number |
| `SSH_SECURITY_LEVEL` | no | no |  |
| `SSH_SESSION_TIMEOUT` | no | no |  |
| `SSH_TIMEOUT` | no | no |  |

## FAQ

### How can I prevent accidental destructive commands?

The server includes unconditional hard interception for catastrophic commands like 'rm -rf' on absolute paths, disk formatting, and fork bombs, which cannot be bypassed.

### Can I manage Docker containers via this server?

Yes, it provides tools for the full lifecycle management of Docker, including listing containers, images, building, and viewing logs.

### Does it support persistent remote sessions?

Yes, it supports screen/tmux session management so that processes remain alive even after the SSH connection is disconnected.
