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

ssh-mcp-pro

NPM · SSH-MCP-PRO

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

Available components

−2 this week 94 Trust /100

Last scanned (1 hour ago)

Scores higher than 97% of npm servers

Category Cloud Infrastructure

Trust breakdown (7 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 → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 51 of 181 dependencies flagged as unhealthy (3 deprecated). View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to oaslananka/ssh-mcp-pro). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 26 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
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 Management87
  • Stability observed for 26 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
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 47 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 −3
    • Stability: pass → 0.80 functional
  • 28 Oct 26 +1
    • Stability: 0.97 → pass security
  • 27 Oct 26 −1
    • Stability: pass → 0.97 functional
  • 21 Oct 26 0
    • Stability: 0.97 → pass security
  • 20 Oct 26 0
    • Stability: pass → 0.97 functional
  • 17 Oct 26 +2
    • Stability: 0.83 → pass security
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

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 5 Nov 2026 · Analysed npm/ssh-mcp-pro@1.2.3

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo oaslananka/ssh-mcp-pro
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/oaslananka/ssh-mcp-pro/.github/workflows/release.yml@refs/heads/main
Rekor log index 3158468312
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:43d5ea4ccfb94b97fd00a1f6ccdad93769dd32e9ac65973293b544d41895828a46a1a27bab2a49b0107d6e900ae08094ac29ad9d96b59493a5225d82a

Background: How many MCP packages publish verified provenance →

Dependencies 181 packages
Packages resolved 181
Deprecated 3
Stale 48
Tree resolution Complete

Background: SBOMs and build attestations, explained →

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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

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
pathstring–Optional 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
createIfMissingboolean–Create file if it does not exist
linesarrayyesLines to manage
pathstringyesFile path
sessionIdstringyesSSH session ID
statestring–Desired state
NameTypeReqDescription
addednumberyes–
okbooleanyes–

No examples provided.

ensure_package ~46

Ensures a package is installed or removed

NameTypeReqDescription
namestringyesPackage name
sessionIdstringyesSSH session ID
statestring–Desired 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
limitnumber–Maximum items per page (default: 100)
pagenumber–Page 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
encodingstring–File encoding (default: utf8)
maxBytesnumber–Optional 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
modenumber–File 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
formatstring–Output 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
linesnumber–Number of lines to return (default: 50)
pathstring–Absolute path to a log file
servicestring–Systemd 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
hoststring–Host 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
cwdstring–Working directory
envobject–Environment variables
sessionIdstringyesSSH session ID
timeoutMsnumber–Command 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
cwdstring–Working directory
envobject–Environment variables
sessionIdstringyesSSH session ID
timeoutMsnumber–Streaming 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
signalstring–Signal 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
cwdstring–Working directory
sessionIdstringyesSSH session ID
timeoutMsnumber–Command 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
linesnumber–Number 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
checksarray–Read-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
categorystring–Change 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
authstring–Authentication method (default: auto)
expectedHostKeySha256string–Pinned SHA-256 host key fingerprint, with or without SHA256: prefix
hoststringyesSSH server hostname or IP
hostKeyPolicystring–SSH host key verification policy (default: strict)
knownHostsPathstring–Path to known_hosts file
passphrasestring–Passphrase for encrypted private key
passwordstring–Password for authentication
policyModestring–Use explain to return the planned connection without opening SSH
portnumber–SSH port (default: 22)
privateKeystring–Inline private key content
privateKeyPathstring–Path to private key file
readyTimeoutMsnumber–Connection timeout in milliseconds (default: 20000)
strictHostKeyCheckingboolean–Deprecated alias. Prefer hostKeyPolicy.
ttlMsnumber–Session TTL in milliseconds (default: 900000)
useAgentboolean–Use 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
actionstring–Requested action class to evaluate without executing it
commandstring–Optional command to evaluate in explain mode
hostAliasstring–Configured SSH host alias
pathstring–Optional 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
sessionIdstring–Optional 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.

Install

How do I install the ssh-mcp-pro server?

ssh-mcp-pro runs locally as an npm package, launched with npx -y ssh-mcp-pro. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · ssh-mcp-pro

# add to Claude Code
claude mcp add oaslananka-ssh-mcp-pro -- npx -y ssh-mcp-pro
Common questions

What is the ssh-mcp-pro server?

ssh-mcp-pro is listed in the public MCP registry as io.github.oaslananka/ssh-mcp-pro. Secure MCP SSH automation server with policy controls, resources, prompts, stdio, and HTTP. This page covers its npm package (ssh-mcp-pro).

Is the ssh-mcp-pro server safe to use?

ssh-mcp-pro scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ssh-mcp-pro server expose?

ssh-mcp-pro exposes 46 tools: connector_status, ssh_hosts_list, ssh_policy_explain, ssh_host_inspect, ssh_mutation_plan, and 41 more. Their descriptions and schemas cost roughly 2,418 tokens of context every time the server is loaded.

Is the ssh-mcp-pro server still maintained?

ssh-mcp-pro is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the ssh-mcp-pro server under?

ssh-mcp-pro declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.