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 · SCANNED SEP 20

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

Available components

0 this week 81 Trust /100
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 Security90
  • 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
  • 48 of 180 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 83 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 Management90
  • Stability observed for 27 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
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
// .cursor/mcp.json
{
  "mcpServers": {
    "oaslananka-ssh-mcp-pro": {
      "command": "npx",
      "args": [
        "-y",
        "ssh-mcp-pro"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "oaslananka-ssh-mcp-pro": {
      "command": "npx",
      "args": [
        "-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"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "oaslananka-ssh-mcp-pro": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "ssh-mcp-pro"
      ]
    }
  }
}
# add to Vellum
assistant mcp add oaslananka-ssh-mcp-pro -t stdio -c npx -a -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.

  • 19 Sept 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.

  • 17 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 16 Sept 26 +1
    • Stability: 0.97 → pass security
  • 14 Sept 26 +1

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

  • 12 Sept 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.

  • 9 Sept 26 −3
    • Stability: pass → 0.77 functional
  • 8 Sept 26 +1
    • Stability: 0.97 → pass security
  • 6 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 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 20 Sept 2026 · Analysed npm/ssh-mcp-pro@1.1.5

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

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

Background: What a vulnerability scan can and cannot prove →

Dependencies 180 packages
Packages resolved 180
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
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.

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 81 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 20 September 2026. It declares no install or post-install scripts. 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 20 September 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.