← Back to search

simple-ssh-mcp-server

bhayanak Scanned 22d ago

MCP server for SSH/SFTP remote operations

C
70 / 100

Versions

0.1.1latest
Apr 17, 2026
0.1.0
Mar 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 49

ssh_exec
annotations: none low

Run a command on a connected remote server and return stdout, stderr, and exit code. Requires a sessionId from ssh_connect.

cwd string command string sessionId string timeoutMs number
ssh_sudo_exec
annotations: none low

Run a command with sudo privileges on the remote server. Password sent via stdin, never logged.

cwd string command string password string sessionId string timeoutMs number
ssh_port_forward_local
annotations: none low

Create SSH tunnel: forward a local port to a remote host:port through the SSH connection (SSH -L).

localHost string localPort number sessionId string remoteHost string remotePort number
ssh_port_forward_remote
annotations: none low

Create reverse SSH tunnel: forward a remote port back to a local host:port (SSH -R).

localHost string localPort number sessionId string remoteHost string remotePort number
ssh_port_forward_list
annotations: none low

List all active SSH port forwards and tunnels.

sessionId string
ssh_port_forward_remove
annotations: none low

Close an active SSH port forward by its forwardId.

forwardId string
ssh_shell_open
annotations: none low

Open an interactive PTY terminal for programs like mysql, python, or top. For simple one-off commands use ssh_exec instead.

cols number rows number term string sessionId string
ssh_shell_write
annotations: none low

Type text into an open interactive PTY terminal. Requires shellId from ssh_shell_open.

data string shellId string sessionId string
ssh_shell_read
annotations: none low

Read output from an open interactive PTY terminal. Requires shellId from ssh_shell_open.

shellId string maxBytes number sessionId string timeoutMs number
ssh_shell_resize
annotations: none low

Change dimensions of an open PTY terminal window. Requires shellId from ssh_shell_open.

cols number rows number shellId string sessionId string
ssh_shell_close
annotations: none low

Close an interactive PTY terminal. Requires shellId from ssh_shell_open.

shellId string sessionId string
ssh_shell_list
annotations: none low

List open PTY terminals for a specific session.

sessionId string
ssh_connect
annotations: none low

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.

host string port number username string passphrase string
ssh_disconnect
annotations: none low

Close and disconnect an active SSH session by its sessionId.

sessionId string
ssh_list_sessions
annotations: none low

Show all active SSH connections with their host, user, and resource details.

ssh_session_ping
annotations: none low

Test if an SSH session is alive and measure its round-trip latency.

sessionId string
ssh_system_info
annotations: none low

Get remote server system information: OS, CPU, memory, disk, network interfaces, and uptime.

sessionId string
ssh_service
annotations: none low

Manage systemd services on the remote host: start, stop, restart, reload, enable, disable, status, or list all.

sessionId string
ssh_process
annotations: none low

List, filter, or kill processes on the remote host. Find what is listening on a specific port.

pid number limit number sessionId string filterName string filterPort number filterUser string
ssh_cron
annotations: none low

View, add, or remove scheduled cron jobs on the remote host.

user string command string sessionId string
ssh_network
annotations: none low

Network diagnostics on the remote host: listening ports, active connections, ping, DNS lookup, routes, interfaces.

port number count number sessionId string
ssh_user
annotations: none low

Get user and group info from the remote host: whoami, list users, user details, group memberships.

username string sessionId string includeSystem boolean
ssh_find
annotations: none low

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.

name string path string limit number maxDepth number sessionId string sizeRange string
ssh_grep
annotations: none low

Search text patterns inside remote files using grep. Returns file paths, line numbers, and matching lines.

path string pattern string recursive boolean sessionId string maxMatches number contextLines number caseSensitive boolean
ssh_diff
annotations: none low

Show differences between two remote files as a unified diff.

pathA string pathB string sessionId string contextLines number
ssh_tail
annotations: none low

Show the last N lines of a remote file (tail). Good for quick log inspection.

lines number sessionId string remotePath string filterPattern string
ssh_checksum
annotations: none low

Compute a hash (md5/sha256/sha512) of a remote file to verify integrity.

sessionId string remotePath string
ssh_snapshot
annotations: none low

Capture a full system state snapshot: packages, services, ports, processes, cron, env, mounts, users. Use before changes to diff later.

sessionId string
ssh_snapshot_diff
annotations: none low

Compare two system snapshots to show what changed between them (added/removed packages, services, ports, etc.).

snapshotIdA string snapshotIdB string
ssh_bookmark
annotations: none low

Save or manage connection bookmarks. NOT for connecting to servers \u2014 use ssh_connect instead. Only for save/list/delete of saved profiles.

host string name string port number label string username string privateKeyPath string
ssh_get_logs
annotations: none low

Query the SSH MCP server internal audit logs. Filter by event type, session, host, or time range.

host string until string sessionId string
ssh_broadcast
annotations: none low

Execute the same command across multiple connected servers simultaneously. Requires multiple active sessionIds.

cwd string command string timeoutMs number
ssh_transfer
annotations: none low

Copy a file from one remote server to another through this MCP server. Requires two active sessionIds.

destSessionId string destRemotePath string sourceSessionId string sourceRemotePath string
ssh_jump_connect
annotations: none low

SSH to a target host through an existing session used as a jump/bastion host. Creates a new session on the target.

host string port number password string username string passphrase string privateKey string jumpSessionId string privateKeyPath string
ssh_script
annotations: none low

Upload and execute a multi-line script (bash/python/etc.) on the remote server in one step.

cwd string sudo boolean script string password string sessionId string timeoutMs number
ssh_exec_background
annotations: none low

Start a long-running command in the background for async polling. Returns a jobId. Only use when user explicitly wants background/async execution.

cwd string command string sessionId string
ssh_exec_poll
annotations: none low

Fetch output from a background job previously started with ssh_exec_background. Requires jobId.

jobId string sessionId string maxOutputBytes number
ssh_exec_poll_list
annotations: none low

List all active background jobs and their status for a specific session.

sessionId string
ssh_exec_cancel
annotations: none low

Stop/kill a background job previously started with ssh_exec_background. Requires a valid jobId — do NOT use for anything else.

jobId string sessionId string
ssh_container_list
annotations: none low

List Docker or Podman containers on the remote host with status, ports, and resource usage.

all boolean sessionId string filterName string filterImage string
ssh_container_logs
annotations: none low

View Docker or Podman container logs with tail, time filtering, and pattern matching options.

tail number container string sessionId string timestamps boolean filterPattern string
ssh_container_exec
annotations: none low

Run a command inside a running Docker or Podman container on the remote host.

user string command string workdir string container string sessionId string
ssh_sftp_list
annotations: none low

List directory contents on the remote server (like ls -la). Shows names, sizes, permissions.

sessionId string remotePath string showHidden boolean
ssh_sftp_upload
annotations: none low

Upload a local file to the remote server via SFTP. Validates file size limits.

localPath string overwrite boolean sessionId string remotePath string
ssh_sftp_download
annotations: none low

Download a file from the remote server to the local machine via SFTP.

localPath string overwrite boolean sessionId string remotePath string
ssh_sftp_read
annotations: none low

Read a remote file text content in-place without downloading. Good for configs and logs.

offset number encoding string maxBytes number sessionId string remotePath string
ssh_sftp_write
annotations: none low

Create or overwrite a remote file with text content. Good for configs and scripts.

mode string content string overwrite boolean sessionId string remotePath string
ssh_sftp_delete
annotations: none low

Delete a file or directory on the remote server. Recursive delete requires explicit opt-in.

sessionId string remotePath string
ssh_sftp_stat
annotations: none low

Get file metadata: size, permissions, owner, timestamps of a remote file or directory.

sessionId string remotePath string

Permissions 2

network medium
Server uses network capabilities via: net
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 112

info
Tool: ssh_list_sessions manifest_parser · 70%
info
Tool: ssh_session_ping manifest_parser · 70%
info
Tool: ssh_system_info manifest_parser · 70%
info
Tool: ssh_service manifest_parser · 70%
info
Tool: ssh_process manifest_parser · 70%
info
Tool: ssh_cron manifest_parser · 70%
info
Tool: ssh_network manifest_parser · 70%
info
Tool: ssh_user manifest_parser · 70%
info
Tool: ssh_find manifest_parser · 70%
info
Tool: ssh_grep manifest_parser · 70%
info
Tool: ssh_diff manifest_parser · 70%
info
Tool: ssh_tail manifest_parser · 70%
info
Tool: ssh_checksum manifest_parser · 70%
info
Tool: ssh_snapshot manifest_parser · 70%
info
Tool: ssh_snapshot_diff manifest_parser · 70%
info
Tool: ssh_bookmark manifest_parser · 70%
info
Tool: ssh_get_logs manifest_parser · 70%
info
Tool: ssh_broadcast manifest_parser · 70%
info
Tool: ssh_transfer manifest_parser · 70%
info
Tool: ssh_jump_connect manifest_parser · 70%
info
Tool: ssh_script manifest_parser · 70%
info
Tool: ssh_exec_background manifest_parser · 70%
info
Tool: ssh_exec_poll manifest_parser · 70%
info
Tool: ssh_exec_poll_list manifest_parser · 70%
info
Tool: ssh_exec_cancel manifest_parser · 70%
info
Tool: ssh_container_list manifest_parser · 70%
info
Tool: ssh_container_logs manifest_parser · 70%
info
Tool: ssh_container_exec manifest_parser · 70%
info
Tool: ssh_sftp_list manifest_parser · 70%
info
Tool: ssh_sftp_upload manifest_parser · 70%
info
Tool: ssh_sftp_download manifest_parser · 70%
info
Tool: ssh_sftp_read manifest_parser · 70%
info
Tool: ssh_sftp_write manifest_parser · 70%
info
Tool: ssh_sftp_delete manifest_parser · 70%
info
Tool: ssh_sftp_stat manifest_parser · 70%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (15) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 24 components sbom_generator · 100%
high
Hardcoded Password found in bhayanak-ssh-server-mcp-2635abf/packages/ssh-server/src/tools/exec.ts secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%
low
Tool 'ssh_exec' has no annotations annotation_checker · 100%
low
Tool 'ssh_sudo_exec' has no annotations annotation_checker · 100%
low
Tool 'ssh_port_forward_local' has no annotations annotation_checker · 100%
low
Tool 'ssh_port_forward_remote' has no annotations annotation_checker · 100%
low
Tool 'ssh_port_forward_list' has no annotations annotation_checker · 100%
low
Tool 'ssh_port_forward_remove' has no annotations annotation_checker · 100%
low
Tool 'ssh_shell_open' has no annotations annotation_checker · 100%
low
Tool 'ssh_shell_write' has no annotations annotation_checker · 100%
low
Tool 'ssh_shell_read' has no annotations annotation_checker · 100%
low
Tool 'ssh_shell_resize' has no annotations annotation_checker · 100%
low
Tool 'ssh_shell_close' has no annotations annotation_checker · 100%
low
Tool 'ssh_shell_list' has no annotations annotation_checker · 100%
low
Tool 'ssh_connect' has no annotations annotation_checker · 100%
low
Tool 'ssh_disconnect' has no annotations annotation_checker · 100%
low
Tool 'ssh_list_sessions' has no annotations annotation_checker · 100%
low
Tool 'ssh_session_ping' has no annotations annotation_checker · 100%
low
Tool 'ssh_system_info' has no annotations annotation_checker · 100%
low
Tool 'ssh_service' has no annotations annotation_checker · 100%
low
Tool 'ssh_process' has no annotations annotation_checker · 100%
low
Tool 'ssh_cron' has no annotations annotation_checker · 100%
low
Tool 'ssh_network' has no annotations annotation_checker · 100%
low
Tool 'ssh_user' has no annotations annotation_checker · 100%
low
Tool 'ssh_find' has no annotations annotation_checker · 100%
low
Tool 'ssh_grep' has no annotations annotation_checker · 100%
low
Tool 'ssh_diff' has no annotations annotation_checker · 100%
low
Tool 'ssh_tail' has no annotations annotation_checker · 100%
low
Tool 'ssh_checksum' has no annotations annotation_checker · 100%
low
Tool 'ssh_snapshot' has no annotations annotation_checker · 100%
low
Tool 'ssh_snapshot_diff' has no annotations annotation_checker · 100%
low
Tool 'ssh_bookmark' has no annotations annotation_checker · 100%
low
Tool 'ssh_get_logs' has no annotations annotation_checker · 100%
low
Tool 'ssh_broadcast' has no annotations annotation_checker · 100%
low
Tool 'ssh_transfer' has no annotations annotation_checker · 100%
low
Tool 'ssh_jump_connect' has no annotations annotation_checker · 100%
low
Tool 'ssh_script' has no annotations annotation_checker · 100%
low
Tool 'ssh_exec_background' has no annotations annotation_checker · 100%
low
Tool 'ssh_exec_poll' has no annotations annotation_checker · 100%
low
Tool 'ssh_exec_poll_list' has no annotations annotation_checker · 100%
low
Tool 'ssh_exec_cancel' has no annotations annotation_checker · 100%
low
Tool 'ssh_container_list' has no annotations annotation_checker · 100%
low
Tool 'ssh_container_logs' has no annotations annotation_checker · 100%
low
Tool 'ssh_container_exec' has no annotations annotation_checker · 100%
low
Tool 'ssh_sftp_list' has no annotations annotation_checker · 100%
low
Tool 'ssh_sftp_upload' has no annotations annotation_checker · 100%
low
Tool 'ssh_sftp_download' has no annotations annotation_checker · 100%
low
Tool 'ssh_sftp_read' has no annotations annotation_checker · 100%
low
Tool 'ssh_sftp_write' has no annotations annotation_checker · 100%
low
Tool 'ssh_sftp_delete' has no annotations annotation_checker · 100%
low
Tool 'ssh_sftp_stat' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-345p-7cg4-v4c7) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
medium
Vulnerable dependency: vitest@3.2.4 (GHSA-5xrq-8626-4rwp) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: ssh_exec manifest_parser · 70%
info
Tool: ssh_sudo_exec manifest_parser · 70%
info
Tool: ssh_port_forward_local manifest_parser · 70%
info
Tool: ssh_port_forward_remote manifest_parser · 70%
info
Tool: ssh_port_forward_list manifest_parser · 70%
info
Tool: ssh_port_forward_remove manifest_parser · 70%
info
Tool: ssh_shell_open manifest_parser · 70%
info
Tool: ssh_shell_write manifest_parser · 70%
info
Tool: ssh_shell_read manifest_parser · 70%
info
Tool: ssh_shell_resize manifest_parser · 70%
info
Tool: ssh_shell_close manifest_parser · 70%
info
Tool: ssh_shell_list manifest_parser · 70%
info
Tool: ssh_connect manifest_parser · 70%
info
Tool: ssh_disconnect manifest_parser · 70%