Realssh Mcp

io.github.danielecrPublished by GitHub account danielecrv1.0.6Updated Oct 24, 2026

MCP server for SSH remote command execution

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Local MCP server that lets an assistant run commands on remote machines over SSH by delegating to the system ssh binary.

What you can do
  • Run arbitrary commands on a remote host over SSH and get back stdout, stderr and exit code
  • Test SSH connectivity to a host before running anything
  • Choose host, username, port, timeout, agent forwarding and extra ssh arguments per call
  • Reuse existing ssh-agent keys, ~/.ssh/config aliases, jump hosts and ProxyCommand setups
When to use it
Useful when you want an assistant to inspect or operate remote servers from your own machine using the SSH setup you already have, for example checking disk usage, service status or logs on a host listed in your SSH config.
Requirements
Runs as a local stdio process installed from npm (global install) or built from source; Node.js is needed for the package. The system ssh binary must be installed and on PATH (standard on macOS and Linux). Hosts, keys and jump hosts come from your existing ~/.ssh/config and ssh-agent; no API keys or environment variables are declared.
Before you install
Commands run on remote systems with the privileges of the SSH user, so the assistant can change or delete data there. Agent forwarding and extra ssh arguments (such as disabling host key checking) can weaken security if used carelessly. Command output may contain sensitive data. Review what the assistant is allowed to execute on production hosts.

Installation

In SourceWeft

  1. Open Realssh Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

SSH Real MCP Server

A Model Context Protocol (MCP) server that enables SSH remote command execution by delegating entirely to the system ssh binary. This means ssh-agent, ProxyCommand, ~/.ssh/config, jump hosts, and every other OS-level SSH feature work out of the box — no Node.js crypto, no native addons.

How it works

Instead of implementing the SSH protocol in Node.js, this server spawns ssh as a child process and pipes the output back to the MCP client. Authentication, key discovery, and connection routing are handled by your OS, exactly as if you ran ssh yourself in a terminal.

Requirements: ssh must be installed and available in PATH (standard on macOS and Linux).

Features

  • Zero auth config — uses your existing ssh-agent, ~/.ssh/config, and key files automatically
  • ProxyCommand / jump hosts — works natively, no special parameters needed
  • Connectivity test — ssh_test tool to verify reachability before running commands
  • Argument injection protection — host and username are validated before being passed to ssh
  • Configurable timeout — commands are killed and an error is returned if they exceed the timeout
  • Detailed results: stdout, stderr, and exit code

Installation

From npm

bash
npm install -g @danielecr/realssh-mcp

From source

bash
git clone https://github.com/danielecr/realssh-mcp.gitcd realssh-mcpnpm installnpm run build

VS Code / Copilot configuration

After installing the package globally, add the server to your MCP configuration. In VS Code, open the MCP config file via Command Palette → MCP: Open User Configuration and add:

json
{  "servers": {    "realssh": {      "type": "stdio",      "command": "realssh-mcp"    }  }}

Then run MCP: List Servers to verify the server is active.

Tools

ssh_execute

Execute a command on a remote server via SSH.

Parameters:

  • host (string, required): SSH server hostname or IP address
  • command (string, required): Command to execute on the remote server
  • username (string, optional): SSH username. Defaults to the current OS user
  • port (number, optional): SSH server port (default: 22)
  • timeout (number, optional): Command timeout in milliseconds (default: 30000)
  • agentForward (boolean, optional): Enable SSH agent forwarding -A (default: false)
  • extraArgs (string[], optional): Extra SSH arguments (e.g., ["-o", "StrictHostKeyChecking=no"])

Example:

json
{  "host": "prod-web-01",  "command": "df -h"}
json
{  "host": "192.168.1.100",  "username": "deploy",  "command": "systemctl status nginx"}

ssh_test

Test SSH connectivity to a remote host (runs echo ok and checks the response).

Parameters:

  • host (string, required): SSH server hostname or IP address
  • username (string, optional): SSH username
  • port (number, optional): SSH server port (default: 22)
  • extraArgs (string[], optional): Extra SSH arguments

Host configuration

Hosts, aliases, jump hosts, and identity files are configured in ~/.ssh/config — not in the MCP server. This is intentional: the OS ssh binary reads that file natively.

Example ~/.ssh/config:

sshconfig
Host prod    HostName prod.example.com    User deploy    ProxyJump bastion
Host bastion    HostName bastion.example.com    User admin    IdentityFile ~/.ssh/bastion_ed25519

With the above config, "host": "prod" works with no extra parameters.

Security considerations

  • Commands are executed on remote systems with the privileges of the SSH user — ensure proper access controls on the remote side.
  • BatchMode=yes is set by default, preventing the ssh process from hanging on interactive prompts.
  • Host and username inputs are validated to prevent SSH option injection.
  • Command output may contain sensitive data; treat it accordingly.

License

MIT

Source: README.md at commit 5fc08f6

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.6LatestSep 16, 2026

Score

40% 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.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.