$git clone https://github.com/bvisible/mcp-ssh-managerA Model Context Protocol (MCP) server that enables Claude Code and OpenAI Codex to manage multiple SSH connections. Execute commands, transfer files, manage databases, create backups, monitor health, and automate DevOps tasks across your servers — directly from your AI as
| 1 | # MCP SSH Manager - SSH Remote Server Management via Model Context Protocol 🚀 |
| 2 | |
| 3 | A Model Context Protocol (MCP) server that enables **Claude Code** and **OpenAI Codex** to manage multiple SSH connections. Execute commands, transfer files, manage databases, create backups, monitor health, and automate DevOps tasks across your servers — directly from your AI assistant. |
| 4 | |
| 5 | <div align="center"> |
| 6 | |
| 7 | [](https://www.npmjs.com/package/mcp-ssh-manager) |
| 8 | [](https://www.npmjs.com/package/mcp-ssh-manager) |
| 9 | [](https://github.com/bvisible/mcp-ssh-manager/releases/tag/v3.7.0) |
| 10 | [](https://claude.ai/code) |
| 11 | [](https://openai.com/codex) |
| 12 | [](https://modelcontextprotocol.io) |
| 13 | [](LICENSE) |
| 14 | |
| 15 | </div> |
| 16 | |
| 17 | <p align="center"> |
| 18 | <img src="docs/images/ssh-manager-cli-menu.png" alt="ssh-manager interactive CLI menu" width="900"> |
| 19 | </p> |
| 20 | |
| 21 | --- |
| 22 | |
| 23 | ## 🎉 What's New in v3.7.0 |
| 24 | |
| 25 | **🔗 Per-server SSH agent forwarding (`ForwardAgent`)** (Released: July 13, 2026) |
| 26 | |
| 27 | - **New opt-in `FORWARD_AGENT` / `forward_agent` option** ([#53](https://github.com/bvisible/mcp-ssh-manager/pull/53) — requested by [@raphaelbahat](https://github.com/raphaelbahat) in [#52](https://github.com/bvisible/mcp-ssh-manager/issues/52)) — enable the equivalent of OpenSSH's `ForwardAgent yes` per server, so processes on the remote host can authenticate to *other* SSH hosts using the keys in your **local** `ssh-agent` (e.g. `git clone` over SSH on a remote server using your local GitHub key), without copying any private key to the server. |
| 28 | - **Safe by construction** — requires a running local agent (`SSH_AUTH_SOCK`); the flag is ignored when no agent is present, so it never breaks a connection. Boolean parsing treats only `true`/`1`/`yes`/`on` as enabled — `FORWARD_AGENT=false` stays off. |
| 29 | - **⚠️ Defaults to `false`** — agent forwarding lets anyone with root on the remote host use your loaded keys for the life of the connection, so enable it only for servers you trust. See the new *SSH Agent Forwarding* section in the docs. |
| 30 | |
| 31 | ```env |
| 32 | SSH_SERVER_MYSERVER_FORWARD_AGENT=true |
| 33 | ``` |
| 34 | |
| 35 | [Read full changelog →](CHANGELOG.md#370---2026-07-13) |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## Previous Releases |
| 40 | |
| 41 | ### v3.6.7 - Security: command injection fix in the database helpers (July 11, 2026) |
| 42 | |
| 43 | - **🔒 Every `ssh_db_*` argument is now shell-quoted** ([#51](https://github.com/bvisible/mcp-ssh-manager/pull/51) — responsibly disclosed by **Ugur Ozer, Aeon AI Risk Management** (http://airiskmanagement.ca), see [#48](https://github.com/bvisible/mcp-ssh-manager/issues/48)) — caller-controlled values (`ssh_db_list` most notably, which stayed allowed in `readonly`/`restricted` modes) were interpolated into shell-evaluated strings, allowing arbitrary command execution on the SSH target. A centralized `shellQuote()` now wraps every value across all 15 builders, guarded by a 648-combination injection test. [Full changelog →](CHANGELOG.md#367---2026-07-11) |
| 44 | |
| 45 | ### v3.6.6 - `SUDO_PASSWORD` / `DEFAULT_DIR` / `ssh_sync` key auth work again (July 11, 2026) |
| 46 | |
| 47 | - **🔑 camelCase config field reads** ([#50](https://github.com/bvisible/mcp-ssh-manager/pull/50) — thanks [@egoan82](https://github.com/egoan82)) — since the v3.0.0 ConfigLoader refactor, `ssh_execute_sudo` ignored `SUDO_PASSWORD`, `DEFAULT_DIR` was ignored by `ssh_execute`/`ssh_group_execute`/`ssh_list_servers`, and `ssh_sync` never passed the configured SSH key to rsync. All aligned with the loader's camelCase |