Skip to main content
Glama
gilberth

mcp-ssh-multi

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_PORTNoHTTP server port8086
LOG_LEVELNoLogging levelINFO
SSH_TIMEOUTNoDefault command timeout (seconds)30
MCP_SECRET_PATHNoHTTP endpoint path (use a secret value)/mcp
SSH_SERVERS_FILENoPath to servers configssh_servers.yaml

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
ssh_list_serversA

List all configured SSH servers with connection status.

Returns server names, hosts, usernames, descriptions, and whether each server currently has an active connection.

EXAMPLES:

  • List all servers: ssh_list_servers()

ssh_disconnectA

Disconnect from a specific SSH server.

Closes the active SSH connection to the named server. The connection will be re-established automatically on next command.

EXAMPLES:

  • Disconnect: ssh_disconnect("proxmox")

ssh_executeA

Execute a command on a remote SSH server.

Runs the given shell command on the specified server and returns stdout, stderr, and exit code. Connections are established automatically and reused.

EXAMPLES:

  • Run command: ssh_execute("proxmox", "uptime")

  • With timeout: ssh_execute("truenas", "zpool status", timeout=60)

ssh_uploadA

Upload a local file to a remote server via SFTP. Use this tool (NOT scp via ssh_execute) to transfer files FROM the local machine TO a remote SSH server. For server-to-server transfers, download from source first, then upload to destination.

ssh_downloadA

Download a file from a remote server to the local machine via SFTP. Use this tool (NOT scp via ssh_execute) to transfer files FROM a remote SSH server TO the local machine.

ssh_file_existsA

Check if a file or directory exists on a remote server.

Returns existence status, type (file/directory), size, and permissions.

EXAMPLES:

  • ssh_file_exists("proxmox", "/etc/pve/qemu-server/100.conf")

ssh_list_dirA

List contents of a remote directory.

Returns file names, types, sizes, and permissions. Supports pagination with limit/offset for large directories.

EXAMPLES:

  • ssh_list_dir("truenas", "/mnt/data")

  • ssh_list_dir("proxmox") # lists home directory

  • ssh_list_dir("proxmox", "/var/log", limit=50, offset=100)

ssh_read_fileA

Read a text file from a remote server.

Returns the file contents as a string. For binary or large files, use ssh_download instead.

EXAMPLES:

  • ssh_read_file("proxmox", "/etc/hostname")

  • ssh_read_file("truenas", "/var/log/messages", max_size=5000000)

ssh_write_fileA

Write content to a file on a remote server.

Creates or overwrites the file with the given content.

EXAMPLES:

  • ssh_write_file("proxmox", "/tmp/test.txt", "Hello World")

ssh_tail_logA

Tail a log file on a remote server.

Returns the last N lines of the specified log file.

EXAMPLES:

  • ssh_tail_log("proxmox")

  • ssh_tail_log("truenas", "/var/log/messages", lines=100)

ssh_process_listA

List running processes on a remote server.

Returns process list sorted by CPU usage. Optionally filter by name.

EXAMPLES:

  • ssh_process_list("proxmox")

  • ssh_process_list("truenas", filter_name="zfs")

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_servers_resourceList of configured SSH servers and their details.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gilberth/mcp-ssh-multi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server