home / mcp / mcp ssh server

MCP SSH Server

Provides multi-SSH management via Model Context Protocol, enabling remote command execution, file transfers, and DevOps tasks across many servers.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "bvisible-mcp-ssh-manager": {
      "command": "node",
      "args": [
        "/path/to/mcp-ssh-manager/src/index.js"
      ],
      "env": {
        "SSH_CONFIG_PATH": "/Users/you/.codex/ssh-config.toml"
      }
    }
  }
}

You can manage multiple SSH servers from a single MCP SSH server using a client that supports the Model Context Protocol. This enables you to run commands, transfer files, monitor health, automate deployments, and organize servers from your AI assistant with secure, centralized control.

How to use

To use the MCP SSH server, connect with your MCP client (Claude Code or OpenAI Codex) and authorize the MCP server. You can add servers, execute remote commands, upload and download files, and perform routine maintenance tasks across multiple machines from a single interface.

How to install

Prerequisites: you need Node.js version 18 or higher and npm installed. The supported platforms are Linux, macOS, and Windows. You may also want Bash 4.0+ for the CLI management tools and rsync for file synchronization.

Option A โ€” Install from npm (recommended):

npm install -g mcp-ssh-manager
# Or run the CLI directly without global install
npx mcp-ssh-manager

Option B โ€” Install from source:

# Clone the project
git clone https://github.com/bvisible/mcp-ssh-manager.git
cd mcp-ssh-manager
npm install

# Install the Bash CLI (if you want the Bash-based manager)
cd cli && ./install.sh

# Configure your first server
ssh-manager server add

Configure MCP with Claude Code (example): you can add the MCP server to Claude Code using the node runtime path to the MCP entry point.

claude mcp add ssh-manager node /path/to/mcp-ssh-manager/src/index.js

Additional setup for Codex or Claude Code integration

For Claude Code, you can set auto-approval for a subset of MCP tools to streamline prompts.

# Example auto-approval configuration (in Claude Code config)
"mcpServers": {
  "ssh-manager": {
    "command": "node",
    "args": ["/path/to/mcp-ssh-manager/src/index.js"],
    "autoApprove": [
      "mcp__ssh-manager__ssh_execute",
      "mcp__ssh-manager__ssh_list_servers",
      "mcp__ssh-manager__ssh_upload",
      "mcp__ssh-manager__ssh_download",
      "mcp__ssh-manager__ssh_sync",
      "mcp__ssh-manager__ssh_alias"
    ]
  }
}

Security and troubleshooting notes

Use SSH keys whenever possible and avoid storing passphrases in plain configuration when you can use an SSH agent. If you enable passphrases, you can use either the ssh-agent connection or include a passphrase in the server configuration as a fallback.

If you encounter issues, test the connection to a server, verify network access, and check SSH service status on the remote host.

Testing and validation

You can validate the MCP server installation and test connectivity using dedicated tooling provided with the setup.

# Test server connection (example)
python tools/test-connection.py production

# Verify MCP installation in Claude Code
claude mcp list

Available tools

ssh_list_servers

List all configured SSH servers with their details.

ssh_execute

Execute commands on remote servers with an optional working directory.

ssh_upload

Upload files to remote servers.

ssh_download

Download files from remote servers.

ssh_backup_create

Create backups for databases or files on remote servers.

ssh_backup_list

List available backups on a remote server.

ssh_backup_restore

Restore a backup to the remote server.

ssh_health_check

Perform comprehensive health checks on remote servers.

ssh_service_status

Check status of services on remote servers.

ssh_process_manager

Manage processes on remote servers.

ssh_alert_setup

Configure health monitoring alerts and thresholds.

ssh_db_dump

Create database dumps on remote servers.

ssh_db_import

Import database dumps on remote servers.

ssh_db_list

List databases or tables on remote servers.

ssh_db_query

Execute read-only SQL queries on remote databases.

ssh_deploy

Deploy files with automated permission handling.

ssh_execute_sudo

Execute commands with sudo privileges.

ssh_alias

Manage server aliases for easier access.

ssh_command_alias

Manage command aliases for frequently used commands.

ssh_hooks

Manage automation hooks for SSH operations.

ssh_profile

Manage configuration profiles for different project types.

ssh_session_start

Start a persistent SSH session.

ssh_session_send

Send commands to an active session.

ssh_session_list

List active SSH sessions.

ssh_session_close

Close a specific SSH session.

ssh_tunnel_create

Create SSH tunnels (local, remote, SOCKS).

ssh_tunnel_list

List active tunnels with statistics.

ssh_tunnel_close

Close specific or all tunnels.

ssh_execute_group

Execute commands on a group of servers.

ssh_group_manage

Manage server groups (create, update, delete).