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

io.github.oaslanankaPublished by GitHub account oaslanankav1.4.0Updated Nov 7, 2026
Secure MCP SSH automation server with policy controls, resources, prompts, stdio, and HTTP.
Policy-controlled SSH automation server that lets an assistant open SSH sessions, inspect hosts, run guarded commands, manage files and services, and plan…
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
Policy-controlled SSH automation for MCP clients
[npm version] [npm downloads] [license] [CI] [API Docs]
[GitGem] · Explore source on DeepWiki
ssh-mcp-pro is a secure Model Context Protocol (MCP) server for SSH automation. It lets MCP-capable clients open SSH sessions, inspect hosts, run guarded commands, manage files, transfer artifacts, create tunnels, and perform idempotent package or service work through policy-controlled tools.
>=22.22.2 or >=24.15.0 or >=26.3.0>=11.0.9For Windows/Linux outbound agent connection status, rotating diagnostics and a live PowerShell log view, see Agent Activity Monitor.
Install globally with pnpm:
Run without a global install:
For pnpm-only environments, use:
Container images are published to GitHub Container Registry for release tags:
Images are published for linux/amd64 and linux/arm64 with exact semver and
Git tag aliases. Production deployments should prefer the digest-pinned
reference recorded by the release workflow. See Docker Usage
for the tag policy, digest-pinned examples, and registry verification steps.
Generic stdio MCP config:
VS Code workspace .vscode/mcp.json configuration:
Claude Desktop style:
After registration, start with discovery and a strict host-key policy:
Use ssh-mcp-pro from an MCP client over stdio, or run the HTTP transport for remote-safe connector profiles. Start with read-only discovery tools, inspect the active policy, and create explicit sessions before running remote commands:
See examples/README.md for additional workflows and INSTALL.md for client-specific setup.
All SSH_MCP_* environment variables parsed by src/config.ts are listed below. Comma-separated settings also accept newline-separated values.
The parser also accepts non-SSH_MCP_* compatibility aliases PORT, KNOWN_HOSTS_PATH, and STRICT_HOST_KEY_CHECKING.
full exposes every registered tool, resource, and prompt. Every other profile uses an explicit per-profile allowset. chatgpt and claude currently expose the same baseline connector tools as remote-safe, with empty client-specific extension sets reserved for future additions.
SSH_MCP_CHATGPT_EXTRA_TOOLS and SSH_MCP_CLAUDE_EXTRA_TOOLS can extend their profiles for loopback-only development. Non-loopback HTTP startup validates the fully resolved tool set against the canonical remote-safe allowlist and refuses unknown, session, transfer, filesystem mutation, process, sudo, service mutation, or tunnel tools. The startup error lists only the rejected tool names. Adding an extension locally does not make that tool approved for public connector exposure.
ssh-mcp-pro starts with strict SSH host-key verification, denies root login, denies raw sudo, blocks destructive commands and filesystem operations unless policy allows them, and refuses non-loopback HTTP startup unless authentication, origins, public HTTPS URL, strict host-key verification, a remote-safe tool profile, and host allowlists are configured. See SECURITY.md for vulnerability reporting and SECURITY_DECISIONS.md for the design rationale behind these defaults.
See CONTRIBUTING.md for setup, quality gates, commit rules, and pull request expectations. Participation is governed by the Code of Conduct.
ssh-mcp-pro is available under the MIT License.
This repository owns the product-level agent plugin, MCP runtime configuration, and product-specific skills for ssh-mcp-pro. The central agent-tools repository should catalog this plugin, but the manifest and workflow instructions live here so they stay synchronized with the actual MCP server package.
Validate plugin packaging locally:
Source: README.md at commit 99ae1c3
Connector Status
Use this when ChatGPT or Claude needs to understand the remote connector profile, authentication mode, and credential broker readiness without exposing secrets.
Takes no parameters.
List Safe SSH Host Aliases
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.
Takes no parameters.
Explain SSH Policy
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.
pathactioncommandhostAliasInspect SSH Host
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.
checkshostAliasrequiredPlan SSH Mutation
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.
goalrequiredcategoryhostAliasrequiredOpen SSH Session
Opens a new SSH session with authentication
authhostrequiredportttlMspassworduseAgentusernamerequiredpassphrasepolicyModeprivateKeyhostKeyPolicyknownHostsPath+4 moreClose SSH Session
Closes an SSH session
sessionIdrequiredList SSH Sessions
Lists all active SSH sessions with their details
Takes no parameters.
Ping SSH Session
Checks if an SSH session is still alive and responsive
sessionIdrequiredList Configured Hosts
Lists all hosts configured in ~/.ssh/config
Takes no parameters.
Resolve SSH Host
Resolves a host alias from ~/.ssh/config to connection parameters
hostAliasrequiredExecute Remote Command
Executes a non-interactive command on the remote system after policy and safety checks
cwdenvcommandrequiredsessionIdrequiredtimeoutMsExecute Sudo Command
Executes a command with sudo privileges only when allowRawSudo policy permits it
cwdcommandrequiredsessionIdrequiredtimeoutMsList Processes
Lists running processes on the remote system sorted by CPU usage
sessionIdrequiredSignal Process
Sends a signal to a running process by PID
pidrequiredsignalsessionIdrequiredExecute Streaming Command
Executes a command and returns streaming output chunks
cwdenvcommandrequiredsessionIdrequiredtimeoutMsRead Remote File
Reads a file from the remote system
pathrequiredencodingmaxBytessessionIdrequiredWrite Remote File
Writes data to a file on the remote system
datarequiredmodepathrequiredsessionIdrequiredStat Remote Path
Gets file or directory statistics
pathrequiredsessionIdrequiredList Remote Directory
Lists directory contents
pagepathrequiredlimitsessionIdrequiredCreate Remote Directories
Creates directories recursively
pathrequiredsessionIdrequiredRemove Remote Path Recursively
Removes files or directories recursively
pathrequiredsessionIdrequiredRename Remote Path
Renames or moves a file/directory
torequiredfromrequiredsessionIdrequiredEnsure Package State
Ensures a package is installed or removed
namerequiredstatesessionIdrequiredEnsure Service State
Ensures a service is in the desired state
namerequiredstaterequiredsessionIdrequiredEnsure Lines In File
Ensures specific lines are present or absent in a file
pathrequiredlinesrequiredstatesessionIdrequiredcreateIfMissingApply Patch
Applies a patch to a file
diffrequiredpathrequiredsessionIdrequiredDetect Remote OS
Detects operating system and environment information
sessionIdrequiredGet Runtime Metrics
Returns server metrics including session counts, command statistics, and uptime
formatList Services
Lists all systemd services and their current state
sessionIdrequiredService Status
Gets the status of a systemd service
namerequiredsessionIdrequiredService Logs
Reads recent journal logs for a systemd service
namerequiredlinessessionIdrequiredRestart Service
Restarts a systemd service
namerequiredsessionIdrequiredStop Service
Stops a systemd service
namerequiredsessionIdrequiredDisk Usage
Reports disk usage for filesystems on the remote system
pathsessionIdrequiredMemory Info
Reports memory usage on the remote system
sessionIdrequiredCPU Usage
Reports CPU load average and uptime on the remote system
sessionIdrequiredNetwork Interfaces
Lists network interfaces and their IP addresses on the remote system
sessionIdrequiredPort Check
Checks which processes are listening on a specific port
hostportrequiredsessionIdrequiredTail Log
Tails the end of a log file or reads recent journal entries for a service
pathlinesservicesessionIdrequiredUpload File
Uploads a local file to the remote host over SFTP
localPathrequiredsessionIdrequiredremotePathrequiredDownload File
Downloads a remote file to the local machine over SFTP
localPathrequiredsessionIdrequiredremotePathrequiredCreate Local SSH Tunnel
Creates a local SSH port forward
localPortrequiredsessionIdrequiredremoteHostrequiredremotePortrequiredCreate Remote SSH Tunnel
Creates a remote SSH port forward
localHostrequiredlocalPortrequiredsessionIdrequiredremotePortrequiredClose SSH Tunnel
Closes an active tunnel
tunnelIdrequiredList SSH Tunnels
Lists active tunnels, optionally filtered by session
sessionId90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
pnpm add --global ssh-mcp-prossh-mcp-pro --versionnpx ssh-mcp-propnpm dlx ssh-mcp-prodocker run --rm ghcr.io/oaslananka/ssh-mcp-pro:1.0.0 --version{ "name": "ssh-mcp-pro", "command": "ssh-mcp-pro", "type": "stdio"}{ "servers": { "ssh-mcp-pro": { "type": "stdio", "command": "ssh-mcp-pro", "args": [] } }}{ "mcpServers": { "ssh-mcp-pro": { "command": "ssh-mcp-pro", "args": [] } }}List configured SSH hosts, open a session to bastion.example.com as deploy with hostKeyPolicy=strict, then run os_detect.List configured SSH hosts, explain the active SSH policy, connect to the selected host, then report its operating system and disk usage.claude plugin validate .