simple-ssh-mcp-server
MCP server for SSH/SFTP remote operations
Versions
0.1.1latest0.1.0Tools 49
ssh_exec Run a command on a connected remote server and return stdout, stderr, and exit code. Requires a sessionId from ssh_connect.
ssh_sudo_exec Run a command with sudo privileges on the remote server. Password sent via stdin, never logged.
ssh_port_forward_local Create SSH tunnel: forward a local port to a remote host:port through the SSH connection (SSH -L).
ssh_port_forward_remote Create reverse SSH tunnel: forward a remote port back to a local host:port (SSH -R).
ssh_port_forward_list List all active SSH port forwards and tunnels.
ssh_port_forward_remove Close an active SSH port forward by its forwardId.
ssh_shell_open Open an interactive PTY terminal for programs like mysql, python, or top. For simple one-off commands use ssh_exec instead.
ssh_shell_write Type text into an open interactive PTY terminal. Requires shellId from ssh_shell_open.
ssh_shell_read Read output from an open interactive PTY terminal. Requires shellId from ssh_shell_open.
ssh_shell_resize Change dimensions of an open PTY terminal window. Requires shellId from ssh_shell_open.
ssh_shell_close Close an interactive PTY terminal. Requires shellId from ssh_shell_open.
ssh_shell_list List open PTY terminals for a specific session.
ssh_connect REQUIRED FIRST STEP: Connect to a remote server via SSH using host, username, and password or key. Must be called before any other ssh_ tool.
ssh_disconnect Close and disconnect an active SSH session by its sessionId.
ssh_list_sessions Show all active SSH connections with their host, user, and resource details.
ssh_session_ping Test if an SSH session is alive and measure its round-trip latency.
ssh_system_info Get remote server system information: OS, CPU, memory, disk, network interfaces, and uptime.
ssh_service Manage systemd services on the remote host: start, stop, restart, reload, enable, disable, status, or list all.
ssh_process List, filter, or kill processes on the remote host. Find what is listening on a specific port.
ssh_cron View, add, or remove scheduled cron jobs on the remote host.
ssh_network Network diagnostics on the remote host: listening ports, active connections, ping, DNS lookup, routes, interfaces.
ssh_user Get user and group info from the remote host: whoami, list users, user details, group memberships.
ssh_find Locate files on the remote server by name pattern (like Linux find). Use when asked to find, locate, or search for a file by name or path.
ssh_grep Search text patterns inside remote files using grep. Returns file paths, line numbers, and matching lines.
ssh_diff Show differences between two remote files as a unified diff.
ssh_tail Show the last N lines of a remote file (tail). Good for quick log inspection.
ssh_checksum Compute a hash (md5/sha256/sha512) of a remote file to verify integrity.
ssh_snapshot Capture a full system state snapshot: packages, services, ports, processes, cron, env, mounts, users. Use before changes to diff later.
ssh_snapshot_diff Compare two system snapshots to show what changed between them (added/removed packages, services, ports, etc.).
ssh_bookmark Save or manage connection bookmarks. NOT for connecting to servers \u2014 use ssh_connect instead. Only for save/list/delete of saved profiles.
ssh_get_logs Query the SSH MCP server internal audit logs. Filter by event type, session, host, or time range.
ssh_broadcast Execute the same command across multiple connected servers simultaneously. Requires multiple active sessionIds.
ssh_transfer Copy a file from one remote server to another through this MCP server. Requires two active sessionIds.
ssh_jump_connect SSH to a target host through an existing session used as a jump/bastion host. Creates a new session on the target.
ssh_script Upload and execute a multi-line script (bash/python/etc.) on the remote server in one step.
ssh_exec_background Start a long-running command in the background for async polling. Returns a jobId. Only use when user explicitly wants background/async execution.
ssh_exec_poll Fetch output from a background job previously started with ssh_exec_background. Requires jobId.
ssh_exec_poll_list List all active background jobs and their status for a specific session.
ssh_exec_cancel Stop/kill a background job previously started with ssh_exec_background. Requires a valid jobId — do NOT use for anything else.
ssh_container_list List Docker or Podman containers on the remote host with status, ports, and resource usage.
ssh_container_logs View Docker or Podman container logs with tail, time filtering, and pattern matching options.
ssh_container_exec Run a command inside a running Docker or Podman container on the remote host.
ssh_sftp_list List directory contents on the remote server (like ls -la). Shows names, sizes, permissions.
ssh_sftp_upload Upload a local file to the remote server via SFTP. Validates file size limits.
ssh_sftp_download Download a file from the remote server to the local machine via SFTP.
ssh_sftp_read Read a remote file text content in-place without downloading. Good for configs and logs.
ssh_sftp_write Create or overwrite a remote file with text content. Good for configs and scripts.
ssh_sftp_delete Delete a file or directory on the remote server. Recursive delete requires explicit opt-in.
ssh_sftp_stat Get file metadata: size, permissions, owner, timestamps of a remote file or directory.
Permissions 2
network medium env_vars low