MCP Directory

How to add MCP SSH Manager to Windsurf

Manage multiple SSH servers from Claude Code or OpenAI Codex — execute commands, transfer files, backups, DB ops, health monitoring. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 278 · stdio · no auth

Windsurf config for MCP SSH Manager

npm install -g mcp-ssh-manager
{
  "mcpServers": {
    "mcp-ssh-manager": {
      "command": "node",
      "args": [
        "/path/to/mcp-ssh-manager/src/index.js"
      ]
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the MCP SSH Manager config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5MCP SSH Manager's tools become available to Cascade.

Before you start

  • Node.js v18 or higher
  • npm
  • Claude Code CLI (for Claude Code) or Codex CLI (for OpenAI Codex)
  • Bash 4.0+ for the optional CLI management tools
  • rsync for file synchronization (ssh_sync)
  • sshpass (optional, for rsync with password authentication)
  • SSH access and credentials for the remote servers you want to manage

What MCP SSH Manager can do in Windsurf

ssh_list_servers

List all configured SSH servers with their details.

ssh_execute

Execute a command on a remote server. Params: server, command, cwd (optional; falls back to the server's default directory).

ssh_upload

Upload a file to a remote server. Params: server, local_path, remote_path.

ssh_download

Download a file from a remote server. Params: server, remote_path, local_path.

ssh_sync

Bidirectional file synchronization between local and remote using rsync.

ssh_backup_create

Create a backup of a database (MySQL/PostgreSQL/MongoDB) or files on a remote server, with compression and metadata. Params: server, type, name, database, paths, retention.

ssh_backup_list

List available backups on a remote server with size, date, and retention info. Params: server, type (optional filter).

ssh_backup_restore

Restore from a previous backup, with cross-database support. Params: server, backupId, database, targetPath.

Security

Grants an AI assistant the ability to run arbitrary shell commands, transfer files, and operate databases over SSH on remote servers. Store SSH credentials in a `.env` file that is never committed; prefer SSH keys or ssh-agent over inline passwords. Use the optional per-server security modes (v3.5.0+): `readonly` blocks mutating tools and destructive commands, `restricted` requires every `ssh_execute` command to match an `ALLOW_PATTERNS` regex and no `DENY_PATTERNS` (DENY wins, fail-closed). An opt-in JSONL audit log records each invocation and redacts sensitive args (password, passphrase, sudoPassword, token, secret, apikey). `autoApprove` in the client config is all-or-nothing per tool, so enabling it for ssh_execute trusts any command.

MCP SSH Manager + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the MCP SSH Manager config there under the "mcpServers" key and restart the client.

Is MCP SSH Manager safe to use with Windsurf?

Grants an AI assistant the ability to run arbitrary shell commands, transfer files, and operate databases over SSH on remote servers. Store SSH credentials in a `.env` file that is never committed; prefer SSH keys or ssh-agent over inline passwords. Use the optional per-server security modes (v3.5.0+): `readonly` blocks mutating tools and destructive commands, `restricted` requires every `ssh_execute` command to match an `ALLOW_PATTERNS` regex and no `DENY_PATTERNS` (DENY wins, fail-closed). An opt-in JSONL audit log records each invocation and redacts sensitive args (password, passphrase, sudoPassword, token, secret, apikey). `autoApprove` in the client config is all-or-nothing per tool, so enabling it for ssh_execute trusts any command.

Which AI clients does it support?

Claude Code (configured via .env and `claude mcp add` / an mcpServers JSON block) and OpenAI Codex (configured via a `[mcp_servers.ssh-manager]` block in ~/.codex/config.toml plus a TOML ssh-config). Both expose the same set of MCP tools.

How are SSH servers configured?

For Claude Code, add `SSH_SERVER_<NAME>_HOST/_USER/_PASSWORD/_KEYPATH/_PASSPHRASE/_PORT/_DEFAULT_DIR/...` entries to a `.env` file. For Codex, define `[ssh_servers.<name>]` tables in a TOML file. The `ssh-manager` CLI can convert between the two formats, and config changes are hot-reloaded without restarting the server (v3.6.0+).

Can I limit which tools or commands the AI can run?

Yes. Tool activation lets you enable only specific tool groups (minimal mode is 5 tools, ~92% less context). Per-server security modes (v3.5.0+) add server-side filtering: `readonly` blocks mutating tools and destructive commands, and `restricted` requires each command to match an ALLOW_PATTERNS regex with DENY_PATTERNS taking precedence. An opt-in JSONL audit log records and redacts each invocation.

View repo Full MCP SSH Manager page