Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
keyNoPath to private SSH key
hostYesHostname or IP of the Linux or Windows server
portNoSSH port (default: 22)22
userYesSSH username
timeoutNoCommand execution timeout in milliseconds (default: 60000ms = 1 minute)60000
maxCharsNoMaximum allowed characters for the command input (default: 1000). Use none or 0 to disable the limit.1000
passwordNoSSH password (or use key for key-based auth)
suPasswordNoPassword for su elevation (when you need a persistent root shell)
disableSudoNoFlag to disable the sudo-exec tool completely. Useful when sudo access is not needed or not available.
sudoPasswordNoPassword for sudo elevation (when executing commands with sudo)

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

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list-connectionsA

List all configured SSH profiles and their connection status. Use this to discover available hosts before running commands.

list-sessionsB

List active sessions for a given SSH profile.

open-sessionA

Open a named session on a remote host. Use type="interactive" for stateful shell (CWD/env persists between commands) or type="background" for long-running processes.

close-sessionA

Close a named session. A background session's command is signalled on the host (INT, then TERM, then KILL) before its channel is dropped; an interactive session's shell is ended. The response says so if the command could not be signalled or had not stopped in time.

read-session-outputA

Read recent output from a background session (e.g., tail -f logs).

read-commandA

Execute a READ-ONLY command from an allowlist (ls, cat, grep, find, stat, df, etc.). This tool does NOT modify the system. Prefer this tool for all read operations. Single-line only: a command containing a line break is refused, so upload a multi-line script with sftp-upload and run it by path.

run-commandA

Execute an arbitrary shell command on the remote server. May modify the system. Commands classified destructive or privileged go through the approval gate; approvalPolicy on the profile decides whether that is a prompt, an automatic allow, or a refusal. Single-line only: a command containing a line break is refused, so upload a multi-line script with sftp-upload and run it by path.

privileged-commandA

Execute a command with sudo elevation. Goes through the approval gate; approvalPolicy on the profile decides whether that is a prompt, an automatic allow, or a refusal. The sudo password is piped via stdin for the prompt only (never visible in process list); the command itself runs with stdin at /dev/null, so it can never read the password back. Single-line only: a command containing a line break is refused, so upload a multi-line script with sftp-upload and run it by path.

signal-processA

Send a signal (INT, TERM, KILL) to a remote process by PID.

sftp-uploadA

Upload a file to the remote server via SFTP (secure file transfer, not shell-based). Replaces an existing file at that path unconditionally — there is no overwrite flag and no way to require a new destination.

sftp-downloadB

Download a file from the remote server via SFTP.

sftp-listA

List a remote directory over SFTP, with a bounded number of entries and a bounded response size. Read-only.

sftp-upload-fileA

Upload a local file to the remote host over SFTP, streaming it without passing the contents through model context. The local file must be inside the transferRoot directory the operator configured; without that setting this tool refuses. Use this for binary or large files; use sftp-upload for short text you already have.

sftp-download-fileA

Download a remote file to local disk over SFTP, streaming it without passing the contents through model context. The destination must be inside the transferRoot directory the operator configured; without that setting this tool refuses. Use this for binary or large files; use sftp-download when you need to read the contents.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
connectionsList all SSH profiles and their connection status

TDQS

A3.9/5.0

Scored across 14 tools

Disambiguation3/5

Most tools are distinct, but the sftp-upload/sftp-upload-file and sftp-download/sftp-download-file pairs are nearly identical in name and require careful reading of descriptions to choose correctly. The read-command/run-command/privileged-command trio also overlaps in that run-command can execute reads and privileged operations, though the safety distinctions are documented.

Naming Consistency4/5

The set mostly follows a kebab-case verb-noun convention (open-session, list-sessions, read-command, run-command, signal-process). Deviations include privileged-command (adjective-noun) and the sftp-* prefix group, but those are coherent subgroups and remain readable.

Tool Count5/5

Fourteen tools is well within the ideal range for an SSH server and each maps to a meaningful capability: connection discovery, session lifecycle, command execution tiers, process signalling, and file transfer. The extra streaming variants are justified by model-context limits.

Completeness4/5

Core SSH workflows are covered: profile discovery, session open/close, read/run/privileged commands, process signalling, and upload/download/list. Minor gaps exist in the SFTP surface (no dedicated delete, rename, mkdir, or chmod tools), but these are workable via run-command.

Maintenance

ActivityActive
ResponsivenessResponsive