ssh-licco
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SSH_HOST | No | SSH server address | 127.0.0.1 |
| SSH_PORT | No | SSH port | 22 |
| SSH_USER | No | SSH username | root |
| SSH_TIMEOUT | No | Connection timeout in seconds | 60 |
| SSH_BASE_DIR | No | Base directory for path validation | /home |
| SSH_PASSWORD | No | SSH password | |
| SSH_RATE_LIMIT | No | Rate limiting toggle (true/false) | true |
| SSH_CLIENT_TYPE | No | SSH client implementation: paramiko, asyncssh, fabric | paramiko |
| SSH_SUDO_PASSWORD | No | Sudo password for use_sudo | |
| SSH_AUDIT_LOG_PATH | No | File path for audit logs | |
| SSH_RATE_LIMIT_MAX | No | Rate limit maximum requests | 30 |
| SSH_SECURITY_LEVEL | No | Security level: strict, balanced, relaxed | balanced |
| SSH_SESSION_TIMEOUT | No | Session timeout in seconds | 7200 |
| SSH_FORCE_ENV_CONFIG | No | Force env config over hosts.json | false |
| SSH_RATE_LIMIT_WINDOW | No | Rate limit window in seconds | 60 |
| SSH_KEEPALIVE_INTERVAL | No | Keepalive interval in seconds | 30 |
| SSH_ALLOWED_COMMANDS_FILE | No | Path to command whitelist JSON file | |
| SSH_EXTRA_ALLOWED_COMMANDS | No | Additional allowed commands (comma separated) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ssh_connectB | Establish an SSH connection to a remote server. If no parameters are provided, auto-connects using environment variables or saved config. Supports password, private key, and agent authentication. Optionally save the config and/or execute a command after connecting. |
| ssh_executeA | Execute a command on a remote server. If session_id is omitted, auto-connects using environment variables. Supports background execution for long-running tasks (auto-detected or manual). Use session_type='screen' or 'tmux' for persistent sessions that survive SSH disconnect. |
| ssh_disconnectA | Close an active SSH session. If no session_id is provided, lists all currently active sessions with connection details. |
| ssh_file_transferA | Transfer and manage files between local and remote server via SFTP. Supports upload, download, list, write (write content directly to remote file), append, delete, mkdir, stat, and remote_copy (server-to-server direct transfer via scp/rsync, avoiding local relay). |
| ssh_hostA | Manage SSH server configurations in hosts.json. Use action=list to view all hosts, action=add to register a new server, action=remove to delete a server. |
| ssh_dockerA | Manage Docker on the remote server. Supports ps (list containers), images (list images), build (build an image in background), and logs (view container logs). |
| ssh_generate_keyB | Generate a new SSH key pair (RSA or Ed25519) for secure key-based authentication. Optionally save to a file path. |
| ssh_sessionA | Manage persistent screen/tmux sessions on the remote server for long-running interactive tasks (deploy, build, test, REPL). Sessions survive SSH disconnect. Actions: create (new detached session running a command), send (send keys/command to a session), capture (read current screen), list (list sessions), kill (kill a session). |
| ssh_processA | Manage background processes and SSH tunnels on the remote server. Actions: start (launch a detached background process, returns PID), stop (stop a process by PID), status (check if a PID is running), list (list tracked background tasks), tunnel_open (local port forward to remote host:port), tunnel_close (close a tunnel), tunnel_list (list active tunnels). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
ssh_execute, ssh_session, and ssh_process all overlap in running commands, background execution, and persistent sessions, making it unclear which tool to select for a given task. ssh_connect and ssh_disconnect also blur the line between network connections and screen/tmux sessions.
All tools share the ssh_ prefix, but the pattern mixes verb-style names (ssh_connect, ssh_execute, ssh_disconnect) with noun-style names (ssh_session, ssh_process, ssh_host, ssh_docker) and one verb_noun compound (ssh_generate_key). This is readable but not a fully consistent convention.
Nine tools form a reasonable surface for an SSH remote-management server, covering connection, execution, file transfer, sessions, processes, host config, Docker, and keys. Each tool is broad enough to avoid requiring an excessive number of separate tools.
The toolkit covers most core SSH workflows: connect/disconnect, execute, persistent sessions, file transfer, background processes, host management, Docker, and key generation. Minor gaps like reverse SSH tunneling and key listing/removal are missing, but agents can work around these via ssh_execute.