SSH MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ssh_connectA | Establish an SSH connection to a remote host. Supports jump hosts (bastion) for connecting to internal networks. Returns a connectionId for subsequent operations. |
| ssh_disconnectA | Disconnect an existing SSH connection. |
| ssh_execA | Execute a single command on a connected remote host. Returns stdout, stderr, and exit code. |
| ssh_exec_scriptA | Execute a multi-line bash script on a connected remote host. The script is passed via stdin to bash -s. |
| sftp_readC | Read the contents of a file on a connected remote host via SFTP. |
| sftp_writeA | Write content to a file on a connected remote host via SFTP. Creates or overwrites the file. |
| sftp_listB | List files and directories in a remote path via SFTP. |
| sftp_uploadA | Upload a local file or directory to a connected remote host via SFTP. Automatically detects file vs directory. For directories, recursively uploads all contents. |
| sftp_downloadA | Download a remote file or directory to the local machine via SFTP. Automatically detects file vs directory. For directories, recursively downloads all contents. |
| ssh_statusA | Show the status of all active SSH connections, including host, uptime, and command count. |
| ssh_historyA | Query the persistent operation log. Returns past SSH operations (connect, exec, sftp, etc.) for traceability. Useful for reviewing what was done on a server. |
| ssh_analyzeA | Run a comprehensive diagnostic on a connected remote server. Collects system info, resource usage (CPU/memory/disk), network ports, recent errors, Docker containers, and GPU status in one shot. |
| ssh_logsA | Query logs from a remote server. Supports file tailing, journalctl, and Docker container logs. Use follow=true to enable incremental tracking — subsequent calls return only NEW log lines (simulates tail -f). |
| ssh_host_addA | Save an SSH host configuration for quick access. After saving, use ssh_connect with just the alias to connect without re-entering credentials. |
| ssh_host_removeA | Remove a saved SSH host configuration. |
| ssh_host_listA | List all saved SSH host configurations. These can be used with ssh_connect by alias. |
| ssh_host_updateA | Update notes, description, or tags for a saved host. Use this to record findings, document issues, or enrich the host profile based on what you learn during operations. No credentials needed. |
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 17 tools
Each tool targets a clearly distinct operation: connection lifecycle, command execution, SFTP file operations, host configuration, logs, and diagnostics. Even similar tools like ssh_exec and ssh_exec_script are unambiguously separated by single command vs. multi-line script, and sftp_read vs. sftp_download by read-only vs. transfer semantics.
Names follow a consistent snake_case pattern with recurring prefixes (ssh_, sftp_) and verb-noun combinations such as ssh_connect, ssh_exec, sftp_upload, and ssh_host_add. Minor deviations like ssh_history, ssh_status, and ssh_logs use noun-only names instead of verb_noun, but the overall convention remains predictable.
At 17 tools, the server is slightly above the ideal 3-15 range, but the count is justified by the broad domain covering connection management, command execution, SFTP file operations, host configurations, logging, and diagnostics. Each tool has a distinct role, so the set does not feel bloated.
The tool surface covers the core SSH lifecycle well: connect/disconnect, command execution, script execution, SFTP file operations, host CRUD, logs, status, history, and diagnostics. Minor gaps exist, such as no SFTP delete/rename or explicit port-forwarding tool, but these are workable and do not severely impact the server's usefulness.