← Back to search

@yawlabs/ssh-mcp

jeffyaw Scanned 26d ago

MCP server for SSH operations with built-in diagnostics

B
80.5 / 100

Versions

0.12.0latest
Jul 21, 2026
0.11.5
Jun 4, 2026
0.11.4
Jun 4, 2026
0.11.3
Jun 3, 2026
0.11.2
May 28, 2026
+ show 14 moreshow less
0.11.1
May 15, 2026
0.11.0
May 14, 2026
0.10.0
May 14, 2026
0.9.3
May 13, 2026
0.9.2
May 13, 2026
0.9.1
May 6, 2026
0.9.0
Apr 25, 2026
0.8.0
Apr 16, 2026
0.7.0
Apr 14, 2026
0.6.0
Apr 11, 2026
0.5.0
Apr 10, 2026
0.4.0
Apr 10, 2026
0.3.0
Apr 10, 2026
0.1.0
Apr 9, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 21

ssh_read_file
annotations: none low

Read a file from a remote host via SFTP.

ssh_exec
annotations: none low

Execute a command on a remote host via SSH. The command is interpreted by the remote login shell — pipes, redirects, globs, and other shell metacharacters work as expected. Returns stdout, stderr, and exit code. Use `env` to set environment variables for this call without modifying the command string. Subject to SSH_MCP_COMMAND_WHITELIST / SSH_MCP_COMMAND_BLACKLIST if configured (policy is checked against the env-prefixed command).

ssh_write_file
annotations: none low

Write content to a file on a remote host via SFTP. Creates or overwrites the file.

content string
ssh_upload
annotations: none low

Upload a local file to a remote host via SFTP.

localPath string
ssh_download
annotations: none low

Download a file from a remote host to local filesystem via SFTP.

localPath string
ssh_ls
annotations: none low

List files in a directory on a remote host via SFTP.

ssh_stat
annotations: none low

Get metadata for a file or directory on a remote host via SFTP. Returns size, permissions (octal), uid/gid, mtime/atime, and type flags (isFile, isDirectory, isSymbolicLink). Use this instead of parsing `ls -la` output.

ssh_mkdir
annotations: none low

Create a directory on a remote host via SFTP. Set `recursive: true` to create parent directories as needed (like `mkdir -p`). Existing intermediate dirs are tolerated; an existing leaf path is still an error.

path string
ssh_delete
annotations: none low

Delete a file or empty directory on a remote host via SFTP. Auto-detects the path type and calls the right SFTP op (unlink for files/symlinks, rmdir for empty dirs). Recursive directory delete is intentionally NOT supported -- for that, use ssh_exec with `rm -rf` explicitly so the destructive intent is visible in the tool trace.

ssh_diagnose
annotations: none low

Diagnose SSH connectivity issues. Checks ssh-agent status, loaded keys, known_hosts, SSH config, and attempts a test connection. Use this BEFORE attempting SSH operations if you suspect connectivity issues, or AFTER a failed SSH operation to understand why it failed.

ssh_agent_ensure
annotations: none low

Ensure ssh-agent is running and reachable. Starts a new agent if needed and sets environment variables so subsequent SSH operations work. Use this FIRST when SSH operations fail with agent-related errors.

ssh_key_list
annotations: none low

List all SSH private keys in ~/.ssh/ with their type, fingerprint, and whether they are loaded in the agent. Use this to find which keys are available and which ones need to be loaded.

ssh_key_load
annotations: none low

Load an SSH private key into the running agent. Ensures the agent is running first. Use this after ssh_key_list shows a key that is not loaded.

keyPath string
ssh_config_lookup
annotations: none low

Resolve the effective SSH configuration for a host. Shows hostname, user, port, identity files, proxy settings, and all other options from ~/.ssh/config. Use this to understand how SSH will connect to a host.

ssh_known_hosts_fix
annotations: none low

Remove a stale host key from known_hosts and re-scan the host to add the current key. Use this when you see

ssh_test
annotations: none low

Quick connectivity test to an SSH host. Reports success/failure with timing and actionable error details. Lighter and faster than ssh_diagnose — use this for a quick check before running operations.

ssh_git_check
annotations: none low

Test Git-over-SSH authentication to a hosting provider (GitHub, GitLab, Bitbucket, etc). Verifies your SSH key is registered and working. Use this when git clone/pull/push fails with SSH errors.

host string user string
ssh_multi_exec
annotations: none low

Execute a command on multiple remote hosts in parallel. Returns results per host. Use this instead of calling ssh_exec multiple times — it

command string
ssh_find
annotations: none low

Search for files on a remote host. Wraps the find command with structured parameters so you don

name string path string maxsize string minsize string maxdepth number
ssh_tail
annotations: none low

Read the last N lines of a file on a remote host, optionally filtering by a grep pattern. Use this for reading log files instead of ssh_exec with manual tail/grep commands.

grep string path string
ssh_service_status
annotations: none low

Check the status of a systemd service on a remote host. Returns whether it

service string

Permissions 3

filesystem low
Server uses filesystem capabilities via: fs
shell high
Server uses shell capabilities via: child_process, spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 53

low
Tool 'ssh_exec' has no annotations annotation_checker · 100%
low
Tool 'ssh_read_file' has no annotations annotation_checker · 100%
low
Tool 'ssh_write_file' has no annotations annotation_checker · 100%
low
Tool 'ssh_upload' has no annotations annotation_checker · 100%
low
Tool 'ssh_download' has no annotations annotation_checker · 100%
low
Tool 'ssh_ls' has no annotations annotation_checker · 100%
low
Tool 'ssh_stat' has no annotations annotation_checker · 100%
low
Tool 'ssh_mkdir' has no annotations annotation_checker · 100%
low
Tool 'ssh_delete' has no annotations annotation_checker · 100%
low
Tool 'ssh_diagnose' has no annotations annotation_checker · 100%
low
Tool 'ssh_agent_ensure' has no annotations annotation_checker · 100%
low
Tool 'ssh_key_list' has no annotations annotation_checker · 100%
low
Tool 'ssh_key_load' has no annotations annotation_checker · 100%
low
Tool 'ssh_config_lookup' has no annotations annotation_checker · 100%
low
Tool 'ssh_known_hosts_fix' has no annotations annotation_checker · 100%
low
Tool 'ssh_test' has no annotations annotation_checker · 100%
low
Tool 'ssh_git_check' has no annotations annotation_checker · 100%
low
Tool 'ssh_multi_exec' has no annotations annotation_checker · 100%
low
Tool 'ssh_find' has no annotations annotation_checker · 100%
low
Tool 'ssh_tail' has no annotations annotation_checker · 100%
low
Tool 'ssh_service_status' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Buffer.from base64 in YawLabs-ssh-mcp-61690e2/src/ssh.ts:106 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: ssh_exec manifest_parser · 70%
info
Tool: ssh_read_file manifest_parser · 70%
info
Tool: ssh_write_file manifest_parser · 70%
info
Tool: ssh_upload manifest_parser · 70%
info
Tool: ssh_download manifest_parser · 70%
info
Tool: ssh_ls manifest_parser · 70%
info
Tool: ssh_stat manifest_parser · 70%
info
Tool: ssh_mkdir manifest_parser · 70%
low
Permission: filesystem access detected permission_analyzer · 90%
info
Tool: ssh_delete manifest_parser · 70%
info
Tool: ssh_diagnose manifest_parser · 70%
info
Tool: ssh_agent_ensure manifest_parser · 70%
info
Tool: ssh_key_list manifest_parser · 70%
info
Tool: ssh_key_load manifest_parser · 70%
info
Tool: ssh_config_lookup manifest_parser · 70%
info
Tool: ssh_known_hosts_fix manifest_parser · 70%
info
Tool: ssh_test manifest_parser · 70%
info
Tool: ssh_git_check manifest_parser · 70%
info
Tool: ssh_multi_exec manifest_parser · 70%
info
Tool: ssh_find manifest_parser · 70%
info
Tool: ssh_tail manifest_parser · 70%
info
Tool: ssh_service_status 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%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 296 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%