All reports

ssh-mcp

io.github.tufantunc/ssh-mcp · version 2.22.2 · 8,785 weekly npm downloads · audited 2026-11-03

MCPVetter badge Notes

Findings

No hidden-instruction or invisible-character findings in any tool, prompt, or resource description.

Claude Connectors Directory readiness

Checks the directory's published tool requirements that are visible from tools/list. Passing them does not guarantee acceptance.

Supply chain

Tools (15)

NameTitleHintDescription
list-connectionsread-onlyList all configured SSH profiles and their connection status. Use this to discover available hosts before running commands.
list-sessionsread-onlyList active sessions for a given SSH profile.
open-sessionnoneOpen a named session on a remote host. Use type="interactive" for stateful shell (CWD/env persists between commands) or type="background" for long-running processes.
close-sessiondestructiveClose a named session. A background session's command is signalled on the host (INT, then TERM, then KILL) before its channel is dropped; an interactive session's shell is ended. The response says so if the command could…
read-session-outputread-onlyRead recent output from a background session (e.g., tail -f logs).
read-commandread-onlyExecute a READ-ONLY command from an allowlist (ls, cat, grep, find, stat, df, etc.). This tool does NOT modify the system. Prefer this tool for all read operations. Single-line only: a command containing a line break is …
run-commanddestructiveExecute an arbitrary shell command on the remote server. May modify the system. Commands classified destructive or privileged go through the approval gate; approvalPolicy on the profile decides whether that is a prompt, …
privileged-commanddestructiveExecute a command with sudo elevation. Goes through the approval gate; approvalPolicy on the profile decides whether that is a prompt, an automatic allow, or a refusal. The sudo password is piped via stdin for the prompt…
signal-processdestructiveSend a signal (INT, TERM, KILL) to a remote process by PID.
sftp-uploaddestructiveUpload a file to the remote server via SFTP (secure file transfer, not shell-based). Replaces an existing file at that path unconditionally — there is no overwrite flag and no way to require a new destination.
sftp-downloadread-onlyDownload a file from the remote server via SFTP.
sftp-listread-onlyList a remote directory over SFTP, with a bounded number of entries and a bounded response size. Read-only.
sftp-upload-filedestructiveUpload a local file to the remote host over SFTP, streaming it without passing the contents through model context. The local file must be inside the transferRoot directory the operator configured; without that setting th…
sftp-download-filedestructiveDownload a remote file to local disk over SFTP, streaming it without passing the contents through model context. The destination must be inside the transferRoot directory the operator configured; without that setting thi…
reload-configdestructiveReport or reload the server's config file. action="status" (the default) shows the config path, when it was loaded, the sha256 of its bytes and the result of the last reload; never the contents. action="reload" re-reads …

Check your own setup

npx mcpvetter scan --live

Badge

Add this to a README:

[![MCPVetter](https://mcpvetter.com/badge/ssh-mcp.svg)](https://mcpvetter.com/servers/ssh-mcp)

Publish this server?

Get the MCPVetter verified badge, a re-audit within 24 hours of every npm release, and an email whenever tools, findings, or Claude directory readiness change. $29 per server per month. You prove ownership first, free.