Community System

SSH

Execute commands + transfer files over SSH to remote hosts.

189 stars 49 forks Last commit 2w ago Language Python License MIT
Sign in to like, install, or save to a bundle → View on GitHub →

Install

uvx mcp-ssh-server

Maintain this server? Add the badge

Show your README readers it's in a curated directory — and give them a one-click path to install docs and config.

Listed on Prismix ← links back here

Markdown

[![Listed on Prismix](https://pulse-3k2.pages.dev/api/badge/mcp/ssh.svg)](https://pulse-3k2.pages.dev/mcp/ssh)
Theme-aware version (auto dark/light on GitHub) →
<a href="https://pulse-3k2.pages.dev/mcp/ssh"><picture><source media="(prefers-color-scheme: dark)" srcset="https://pulse-3k2.pages.dev/api/badge/mcp/ssh.svg?theme=dark"><img alt="Listed on Prismix" src="https://pulse-3k2.pages.dev/api/badge/mcp/ssh.svg"></picture></a>

About

SSH connection manager. Configurable host list from ~/.ssh/config, command execution with timeout, SFTP file transfers. Keys live in the user's keyring — server never reads private key material from disk in plaintext.

Recent releases (5)

All releases →
  • v1.1.9 Latest Aug 15, 2026
    ## Security
    
    - Harden allowlisted GNU `sort` and `gsort` arguments against external program execution and path escape.
    - Reject `--compress-program`, `-o`/`--output`, `--files0-from`, and `-T`/`--temporary-directory`, including GNU abbreviations, attached values, clustered forms, and options after operands.
    - Preserve ordinary sorting and option-like filenames after a discrete `--`.
    
    Versions `<=1.1.8` are affected. Upgrade to `1.1.9` or later.
    
    Fixes GHSA-74g6-ch7r-v7jr.
    
    PyPI: https://pypi.org/project/mcp-shell-server/1.1.9/
    View on GitHub ↗
  • v1.1.8 Aug 8, 2026
    ## Security
    
    - Preserve literal pipe characters inside argv arguments. Pipeline syntax is now recognized only from a discrete `|` argv element.
    - Prevent attached pipe arguments from creating unintended pipeline stages or bypassing command-specific argument policies such as the `awk` external-access check.
    - Attached pipes are no longer implicit pipeline syntax. Use `["cmd1", "|", "cmd2"]`.
    
    Fixes GHSA-q8pm-q3r2-q7cg and GHSA-7wg7-jj87-qp4c.
    
    PyPI: https://pypi.org/project/mcp-shell-server/1.1.8/
    
    View on GitHub ↗
  • v1.1.7 Aug 4, 2026
    ## Security
    
    - Reject version-suffixed Python interpreter names such as `python2` and `python3.11`, including absolute-path forms, when admitted through command patterns.
    
    PyPI: https://pypi.org/project/mcp-shell-server/1.1.7/
    View on GitHub ↗
  • v1.1.6 Aug 4, 2026
    ## Security
    
    - Reject persistent `git config` invocations that can store executable Git configuration.
    - Apply existing hardened policies to common alternate command names such as `gawk`, `gfind`, `gtar`, and `bsdtar`.
    - Reject command-wrapper and shell-escape tools such as `timeout`, `nice`, `nohup`, `setsid`, `stdbuf`, `flock`, `less`, `vim`, and `ssh` by default.
    - Document that command hardening is best-effort defense in depth, not a complete sandbox.
    
    PyPI: https://pypi.org/project/mcp-shell-server/1.1.6/
    View on GitHub ↗
  • v1.1.5 Aug 2, 2026
    ## Security
    
    - Require MCP Python SDK `>=1.28.1` to address [GHSA-vj7q-gjh5-988w](https://github.com/advisories/GHSA-vj7q-gjh5-988w), where the WebSocket server transport did not validate Host/Origin headers.
    - Includes the command argument hardening published in [GHSA-gvwf-5g64-3vvw](https://github.com/tumf/mcp-shell-server/security/advisories/GHSA-gvwf-5g64-3vvw). Versions `<=1.1.2` must upgrade to `1.1.3` or later.
    
    PyPI: https://pypi.org/project/mcp-shell-server/1.1.5/
    View on GitHub ↗

Discussion (0)

Sign in to comment →

No comments yet. Sign in to start the discussion.

More System servers