bhayanak

SSH MCP Server

Community bhayanak
Updated

SSH MCP Server that enables AI assistants (e.g., Claude, Copilot) to connect to remote machines over **SSH**, execute commands, transfer files via **SFTP**, and manage interactive shell sessions.

SSH MCP Server

CInpmLicense: MIT

An MCP server that gives AI assistants full SSH/SFTP remote operations — session management, command execution, interactive shells, file transfers, port forwarding, and system diagnostics.

Works with Claude Desktop, VS Code + GitHub Copilot, and any MCP-compatible client.

Packages

Package Description
ssh-mcp-server MCP server (29 tools) — standalone CLI & npm package
ssh-mcp-vscode VS Code extension — auto-registers the server with GitHub Copilot

Features

  • Session Management — Connect/disconnect/ping with password or key-based auth
  • Command Execution — Run commands with stdout/stderr capture, timeouts, exit codes
  • Sudo Execution — Elevated commands with password injected via stdin (never logged)
  • Background Jobs — Long-running commands with polling and cancellation
  • Interactive Shells — PTY shells with read/write/resize
  • SFTP Operations — Upload, download, read, write, delete, list, stat
  • Port Forwarding — Local (-L) and remote (-R) SSH tunnels
  • System Diagnostics — OS, CPU, memory, disk, network, load, processes
  • Audit Logging — NDJSON structured logs with filtering

Quick Start

Standalone (npm)

npm install -g simple-ssh-mcp-server

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "ssh": {
      "command": "npx",
      "args": ["ssh-mcp-server"],
      "env": {
        "SSH_MCP_MAX_CONNECTIONS": "10",
        "SSH_MCP_HOST_KEY_MODE": "accept"
      }
    }
  }
}

VS Code + GitHub Copilot

Install the SSH MCP VS Code extension — the server starts automatically when VS Code launches. Requires VS Code 1.99+ and GitHub Copilot.

Tools (29)

Category Tools
Sessions ssh_connect, ssh_disconnect, ssh_list_sessions, ssh_session_ping
Exec ssh_exec, ssh_sudo_exec
Background ssh_exec_background, ssh_exec_poll, ssh_exec_poll_list, ssh_exec_cancel
Shells ssh_shell_open, ssh_shell_write, ssh_shell_read, ssh_shell_resize, ssh_shell_close, ssh_shell_list
SFTP ssh_sftp_list, ssh_sftp_upload, ssh_sftp_download, ssh_sftp_read, ssh_sftp_write, ssh_sftp_delete, ssh_sftp_stat
Port Forward ssh_port_forward_local, ssh_port_forward_remote, ssh_port_forward_list, ssh_port_forward_remove
Diagnostics ssh_system_info, ssh_get_logs

Configuration

All settings via environment variables:

Variable Default Description
SSH_MCP_MAX_CONNECTIONS 10 Max concurrent SSH sessions
SSH_MCP_LOG_DIR ~/.ssh-mcp/logs Audit log directory
SSH_MCP_DEFAULT_TERM xterm-256color Default TERM for PTY shells
SSH_MCP_DEFAULT_COLS 220 Terminal width
SSH_MCP_DEFAULT_ROWS 50 Terminal height
SSH_MCP_EXEC_TIMEOUT_MS 30000 Command timeout (ms)
SSH_MCP_HOST_KEY_MODE accept Host key: accept, strict, ask
SSH_MCP_ENV development production defaults to strict host keys

See server README for the full configuration reference.

Security

  • Sudo passwords injected via stdin, never logged
  • ANSI escape sequences stripped from output
  • Output truncation prevents unbounded memory
  • SSH keepalives detect dead connections
  • ESLint security plugin + Gitleaks + CodeQL + Trivy in CI

License

MIT

MCP Server · Populars

MCP Server · New