io.github.danielecr/realssh-mcp

Official registry Other

MCP server for SSH remote command execution

What can you do with io.github.danielecr/realssh-mcp?

  • 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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @danielecr/realssh-mcp
Claude Code
claude mcp add realssh-mcp -- npx -y @danielecr/realssh-mcp@1.0.6
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "realssh-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@danielecr/realssh-mcp@1.0.6"
            ]
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. SSH Real MCP Server
  2. How it works
  3. Features
  4. Installation
  5. VS Code / Copilot configuration
  6. Tools
  7. Host configuration
  8. Security considerations
  9. License

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
npm install -g @danielecr/realssh-mcp
From source
git clone https://github.com/danielecr/realssh-mcp.git
cd realssh-mcp
npm install
npm 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:

{
  "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:

{
  "host": "prod-web-01",
  "command": "df -h"
}
{
  "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:

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

Frequently asked questions

What is io.github.danielecr/realssh-mcp?

MCP server for SSH remote command execution

How do I install io.github.danielecr/realssh-mcp?

It runs on your machine. In Claude Code: claude mcp add realssh-mcp -- npx -y @danielecr/realssh-mcp@1.0.6. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.danielecr/realssh-mcp need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is io.github.danielecr/realssh-mcp open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains io.github.danielecr/realssh-mcp?

It is published by danielecr. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.