mcp-ssh-multi
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_PORT | No | HTTP server port | 8086 |
| LOG_LEVEL | No | Logging level | INFO |
| SSH_TIMEOUT | No | Default command timeout (seconds) | 30 |
| MCP_SECRET_PATH | No | HTTP endpoint path (use a secret value) | /mcp |
| SSH_SERVERS_FILE | No | Path to servers config | ssh_servers.yaml |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
|
| 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:
|
| 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:
|
| 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_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_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_write_fileA | Write content to a file on a remote server. Creates or overwrites the file with the given content. EXAMPLES:
|
| ssh_tail_logA | Tail a log file on a remote server. Returns the last N lines of the specified log file. EXAMPLES:
|
| ssh_process_listA | List running processes on a remote server. Returns process list sorted by CPU usage. Optionally filter by name. EXAMPLES:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_servers_resource | List of configured SSH servers and their details. |
TDQS
Scored across 11 tools
Each tool has a clearly distinct action (execute, download, upload, read, write, list, etc.) with no overlapping purposes. The descriptions further clarify when to use which, e.g., ssh_download for binary files vs ssh_read_file for text.
All tools follow a consistent 'ssh_verb_noun' snake_case pattern (e.g., ssh_execute, ssh_list_servers, ssh_read_file). No mixing of styles or verbs.
With 11 tools covering connection management, command execution, file transfer, directory listing, process listing, and log tailing, the count is well-scoped for a comprehensive SSH management server.
The tool set covers core SSH operations but lacks direct tools for file deletion, directory creation, or server-to-server copy. However, these can be accomplished via ssh_execute, so minor gaps exist.