Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

ssh-mcp-pro

NPM · SSH-MCP-PRO · SCANNED AUG 3

Secure MCP SSH automation server with policy controls, resources, prompts, stdio, and HTTP.

Available components

+43 this week 67 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security79
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects @opentelemetry/propagator-jaeger 2.8.0, reached via @opentelemetry/sdk-node > @opentelemetry/propagator-jaeger. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (178 of 183), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2528 tokens (~47/item across 53 items; 46 tools + 7 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · ssh-mcp-pro

# add to Claude Code
claude mcp add oaslananka-ssh-mcp-pro -- npx -y ssh-mcp-pro
# add to Codex CLI
codex mcp add oaslananka-ssh-mcp-pro -- npx -y ssh-mcp-pro
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "oaslananka-ssh-mcp-pro": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "ssh-mcp-pro"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add oaslananka-ssh-mcp-pro --command npx --arg -y --arg ssh-mcp-pro
# ~/.hermes/config.yaml
mcp_servers:
  oaslananka-ssh-mcp-pro:
    command: "npx"
    args: ["-y", "ssh-mcp-pro"]
// mcp.json
{
  "mcpServers": {
    "oaslananka-ssh-mcp-pro": {
      "command": "npx",
      "args": [
        "-y",
        "ssh-mcp-pro"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +3
    • Stability: unverified → 0.23 functional
  • 2 Aug 26 +33
    • CVE-2026-59892 affects this package: high security
    • Provenance: unverified → fail security
    • Known CVEs: unverified → fail security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Schema quality: 100 → unverified functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: unverified → good functional
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 1 Aug 26 +5
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • MCP protocol: unverified → pass functional
  • 31 Jul 26 +2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −2
    • Dependency health: partial → unverified functional
  • 28 Jul 26 +2
    • Dependency health: unverified → partial functional
  • 27 Jul 26 24

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-45rx-2jwx-cxfr CVE-2026-59892 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
Dependencies 178 packages

178 packages in the resolved dependency tree · 174 deprecated · 46 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 46 exposed · ~2,418 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
connector_status ~34

Use this when ChatGPT or Claude needs to understand the remote connector profile, authentication mode, and credential broker readiness without exposing secrets.

Input schema present but exposes no named parameters.

NameTypeReqDescription
allowedOriginsConfiguredbooleanyes
authModestringyes
credentialBrokerConfiguredbooleanyes
credentialEntryInChatbooleanyes
credentialProviderstringyes
destructiveExecutionDefaultbooleanyes
hostAllowlistConfiguredbooleanyes
httpSessionIdleTtlMsnumberyes
maxHttpSessionsnumberyes
nonLoopbackHttpRequiresAuthAndOriginsbooleanyes
oauthConfiguredbooleanyes
privateKeysInChatbooleanyes
publicUrlConfiguredbooleanyes
rawCommandExecutionDefaultbooleanyes
rawSudoExecutionDefaultbooleanyes
safeRemoteToolsOnlybooleanyes
toolProfilestringyes

No examples provided.

cpu_usage ~30

Reports CPU load average and uptime on the remote system

NameTypeReqDescription
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

disk_usage ~47

Reports disk usage for filesystems on the remote system

NameTypeReqDescription
pathstringOptional path to check (default: all filesystems)
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

ensure_lines_in_file ~77

Ensures specific lines are present or absent in a file

NameTypeReqDescription
createIfMissingbooleanCreate file if it does not exist
linesarrayyesLines to manage
pathstringyesFile path
sessionIdstringyesSSH session ID
statestringDesired state
NameTypeReqDescription
addednumberyes
okbooleanyes

No examples provided.

ensure_package ~46

Ensures a package is installed or removed

NameTypeReqDescription
namestringyesPackage name
sessionIdstringyesSSH session ID
statestringDesired state
NameTypeReqDescription
codenumberyes
okbooleanyes
pmstringyes
stderrstringyes
stdoutstringyes

No examples provided.

ensure_service ~47

Ensures a service is in the desired state

NameTypeReqDescription
namestringyesService name
sessionIdstringyesSSH session ID
statestringyesDesired state
NameTypeReqDescription
okbooleanyes

No examples provided.

file_download ~53

Downloads a remote file to the local machine over SFTP

NameTypeReqDescription
localPathstringyesLocal file path
remotePathstringyesRemote file path
sessionIdstringyesSSH session ID
NameTypeReqDescription
averageSpeednumberyes
durationMsnumberyes
filenamestringyes
sha256stringyes
sizenumberyes
successbooleanyes
verifiedbooleanyes

No examples provided.

file_upload ~54

Uploads a local file to the remote host over SFTP

NameTypeReqDescription
localPathstringyesLocal file path
remotePathstringyesRemote file path
sessionIdstringyesSSH session ID
NameTypeReqDescription
averageSpeednumberyes
durationMsnumberyes
filenamestringyes
sha256stringyes
sizenumberyes
successbooleanyes
verifiedbooleanyes

No examples provided.

fs_list ~61

Lists directory contents

NameTypeReqDescription
limitnumberMaximum items per page (default: 100)
pagenumberPage number for pagination
pathstringyesDirectory path to list
sessionIdstringyesSSH session ID
NameTypeReqDescription
entriesarrayyes
nextTokenstring

No examples provided.

fs_mkdirp ~36

Creates directories recursively

NameTypeReqDescription
pathstringyesDirectory path to create
sessionIdstringyesSSH session ID
NameTypeReqDescription
okbooleanyes

No examples provided.

fs_read ~68

Reads a file from the remote system

NameTypeReqDescription
encodingstringFile encoding (default: utf8)
maxBytesnumberOptional per-request read size limit in bytes
pathstringyesFile path to read
sessionIdstringyesSSH session ID
NameTypeReqDescription
contentstringyes

No examples provided.

fs_rename ~47

Renames or moves a file/directory

NameTypeReqDescription
fromstringyesSource path
sessionIdstringyesSSH session ID
tostringyesDestination path
NameTypeReqDescription
okbooleanyes

No examples provided.

fs_rmrf ~36

Removes files or directories recursively

NameTypeReqDescription
pathstringyesPath to remove
sessionIdstringyesSSH session ID
NameTypeReqDescription
okbooleanyes

No examples provided.

fs_stat ~35

Gets file or directory statistics

NameTypeReqDescription
pathstringyesPath to stat
sessionIdstringyesSSH session ID
NameTypeReqDescription
modenumberyes
mtimestringyes
sizenumberyes
typestringyes

No examples provided.

fs_write ~62

Writes data to a file on the remote system

NameTypeReqDescription
datastringyesData to write to file
modenumberFile permissions mode
pathstringyesFile path to write
sessionIdstringyesSSH session ID
NameTypeReqDescription
okbooleanyes

No examples provided.

get_metrics ~34

Returns server metrics including session counts, command statistics, and uptime

NameTypeReqDescription
formatstringOutput format (default: json)

Structured output declared, but exposes no named fields.

No examples provided.

log_tail ~80

Tails the end of a log file or reads recent journal entries for a service

NameTypeReqDescription
linesnumberNumber of lines to return (default: 50)
pathstringAbsolute path to a log file
servicestringSystemd service name for journal logs
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

memory_info ~27

Reports memory usage on the remote system

NameTypeReqDescription
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

net_interfaces ~31

Lists network interfaces and their IP addresses on the remote system

NameTypeReqDescription
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

os_detect ~27

Detects operating system and environment information

NameTypeReqDescription
sessionIdstringyesSSH session ID
NameTypeReqDescription
archstringyes
defaultShellstring
distrostringyes
initstringyes
packageManagerstringyes
platformstringyes
shellstringyes
tempDirstring
versionstringyes

No examples provided.

patch_apply ~51

Applies a patch to a file

NameTypeReqDescription
diffstringyesPatch content (unified diff format)
pathstringyesFile path to patch
sessionIdstringyesSSH session ID
NameTypeReqDescription
changedbooleanyes
okbooleanyes

No examples provided.

port_check ~66

Checks which processes are listening on a specific port

NameTypeReqDescription
hoststringHost to check (default: 127.0.0.1)
portnumberyesPort number to check (1-65535)
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

proc_exec ~76

Executes a non-interactive command on the remote system after policy and safety checks

NameTypeReqDescription
commandstringyesCommand to execute
cwdstringWorking directory
envobjectEnvironment variables
sessionIdstringyesSSH session ID
timeoutMsnumberCommand execution timeout in milliseconds
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

proc_exec_stream ~70

Executes a command and returns streaming output chunks

NameTypeReqDescription
commandstringyesCommand to execute
cwdstringWorking directory
envobjectEnvironment variables
sessionIdstringyesSSH session ID
timeoutMsnumberStreaming command timeout in milliseconds
NameTypeReqDescription
chunksarrayyes
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes
truncatedbooleanyes

No examples provided.

proc_kill ~56

Sends a signal to a running process by PID

NameTypeReqDescription
pidnumberyesProcess ID to signal
sessionIdstringyesSSH session ID
signalstringSignal to send (default: SIGTERM)
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

proc_list ~31

Lists running processes on the remote system sorted by CPU usage

NameTypeReqDescription
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

proc_sudo ~70

Executes a command with sudo privileges only when allowRawSudo policy permits it

NameTypeReqDescription
commandstringyesCommand to execute with sudo
cwdstringWorking directory
sessionIdstringyesSSH session ID
timeoutMsnumberCommand execution timeout in milliseconds
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

service_list ~29

Lists all systemd services and their current state

NameTypeReqDescription
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

service_logs ~56

Reads recent journal logs for a systemd service

NameTypeReqDescription
linesnumberNumber of log lines to return (default: 50)
namestringyesService name
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

service_restart ~35

Restarts a systemd service

NameTypeReqDescription
namestringyesService name
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

service_status ~45

Gets the status of a systemd service

NameTypeReqDescription
namestringyesService name (e.g. nginx or nginx.service)
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

service_stop ~34

Stops a systemd service

NameTypeReqDescription
namestringyesService name
sessionIdstringyesSSH session ID
NameTypeReqDescription
codenumberyes
durationMsnumberyes
safetyWarningstring
stderrstringyes
stdoutstringyes

No examples provided.

ssh_close_session ~27

Closes an SSH session

NameTypeReqDescription
sessionIdstringyesSession ID to close
NameTypeReqDescription
closedbooleanyes

No examples provided.

ssh_host_inspect ~75

Use this when ChatGPT or Claude needs read-only host inspection through the server-side credential broker. The user supplies only a configured host alias and selected checks; no secret material or login details are accepted.

NameTypeReqDescription
checksarrayRead-only checks to run
hostAliasstringyesConfigured SSH host alias
NameTypeReqDescription
checksarrayyes
credentialsFromChatbooleanyes
hoststringyes
hostAliasstringyes
inspectionobjectyes
strictHostKeyVerificationbooleanyes

No examples provided.

ssh_hosts_list ~39

Use this when ChatGPT or Claude needs a safe list of SSH host aliases that may be inspected through the remote connector. Sensitive login material is omitted.

Input schema present but exposes no named parameters.

NameTypeReqDescription
countnumberyes
hostAllowlistConfiguredbooleanyes
hostAllowlistRequiredbooleanyes
hostsarrayyes
redactedFieldsarrayyes

No examples provided.

ssh_list_configured_hosts ~20

Lists all hosts configured in ~/.ssh/config

Input schema present but exposes no named parameters.

NameTypeReqDescription
countnumberyes
hostsarrayyes

No examples provided.

ssh_list_sessions ~18

Lists all active SSH sessions with their details

Input schema present but exposes no named parameters.

NameTypeReqDescription
countnumberyes
sessionsarrayyes

No examples provided.

ssh_mutation_plan ~88

Use this when ChatGPT or Claude needs a non-executing plan for a remote SSH change. It never runs commands, writes files, uploads data, starts tunnels, or escalates privileges.

NameTypeReqDescription
categorystringChange category used for policy explanation
goalstringyesDesired change to plan without executing
hostAliasstringyesConfigured SSH host alias
NameTypeReqDescription
categorystringyes
disallowedInRemoteConnectorProfilearrayyes
executedbooleanyes
goalstringyes
hostAliasstringyes
policyDecisionobjectyes
requiredBeforeExecutionarrayyes

No examples provided.

ssh_open_session ~259

Opens a new SSH session with authentication

NameTypeReqDescription
authstringAuthentication method (default: auto)
expectedHostKeySha256stringPinned SHA-256 host key fingerprint, with or without SHA256: prefix
hoststringyesSSH server hostname or IP
hostKeyPolicystringSSH host key verification policy (default: strict)
knownHostsPathstringPath to known_hosts file
passphrasestringPassphrase for encrypted private key
passwordstringPassword for authentication
policyModestringUse explain to return the planned connection without opening SSH
portnumberSSH port (default: 22)
privateKeystringInline private key content
privateKeyPathstringPath to private key file
readyTimeoutMsnumberConnection timeout in milliseconds (default: 20000)
strictHostKeyCheckingbooleanDeprecated alias. Prefer hostKeyPolicy.
ttlMsnumberSession TTL in milliseconds (default: 900000)
useAgentbooleanUse SSH agent for authentication
usernamestringyesSSH username
NameTypeReqDescription
expiresInMsnumberyes
hoststringyes
hostKeyPolicystringyes
policyModestringyes
sessionIdstringyes
sftpAvailablebooleanyes
usernamestringyes
wouldConnectboolean

No examples provided.

ssh_ping ~32

Checks if an SSH session is still alive and responsive

NameTypeReqDescription
sessionIdstringyesSSH session ID to check
NameTypeReqDescription
alivebooleanyes
errorstring
hoststring
latencyMsnumber
remainingMsnumber
sessionIdstring

No examples provided.

ssh_policy_explain ~101

Use this when ChatGPT or Claude needs to explain whether a requested SSH inspection or mutation would be allowed. This is explain-only and does not execute commands or open tunnels.

NameTypeReqDescription
actionstringRequested action class to evaluate without executing it
commandstringOptional command to evaluate in explain mode
hostAliasstringConfigured SSH host alias
pathstringOptional remote path to evaluate in explain mode
NameTypeReqDescription
decisionobjectyes
executedbooleanyes
requiresExplicitUserConfirmationbooleanyes
toolProfilestringyes

No examples provided.

ssh_resolve_host ~36

Resolves a host alias from ~/.ssh/config to connection parameters

NameTypeReqDescription
hostAliasstringyesHost alias from SSH config
NameTypeReqDescription
hoststringyes
portnumber
privateKeyPathstring
proxyJumpstring
usernamestring

No examples provided.

tunnel_close ~24

Closes an active tunnel

NameTypeReqDescription
tunnelIdstringyesTunnel identifier
NameTypeReqDescription
closedbooleanyes

No examples provided.

tunnel_list ~30

Lists active tunnels, optionally filtered by session

NameTypeReqDescription
sessionIdstringOptional SSH session ID filter
NameTypeReqDescription
countnumberyes
tunnelsarrayyes

No examples provided.

tunnel_local_forward ~59

Creates a local SSH port forward

NameTypeReqDescription
localPortnumberyesLocal TCP port
remoteHoststringyesRemote host
remotePortnumberyesRemote TCP port
sessionIdstringyesSSH session ID
NameTypeReqDescription
activebooleanyes
createdAtnumberyes
idstringyes
localHoststringyes
localPortnumberyes
remoteHoststringyes
remotePortnumberyes
sessionIdstringyes
typestringyes

No examples provided.

tunnel_remote_forward ~59

Creates a remote SSH port forward

NameTypeReqDescription
localHoststringyesLocal host
localPortnumberyesLocal TCP port
remotePortnumberyesRemote TCP port
sessionIdstringyesSSH session ID
NameTypeReqDescription
activebooleanyes
createdAtnumberyes
idstringyes
localHoststringyes
localPortnumberyes
remoteHoststringyes
remotePortnumberyes
sessionIdstringyes
typestringyes

No examples provided.