Community System

SSH

Execute commands + transfer files over SSH to remote hosts.

185 stars 47 forks Last commit 5d 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://prismix.dev/api/badge/mcp/ssh.svg)](https://prismix.dev/mcp/ssh)
Theme-aware version (auto dark/light on GitHub) →
<a href="https://prismix.dev/mcp/ssh"><picture><source media="(prefers-color-scheme: dark)" srcset="https://prismix.dev/api/badge/mcp/ssh.svg?theme=dark"><img alt="Listed on Prismix" src="https://prismix.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.8 Latest 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 ↗
  • v1.1.4 Aug 1, 2026
    ## What's Changed
    * fix: pin MCP SDK below 2.0 by @tumf in https://github.com/tumf/mcp-shell-server/pull/48
    
    
    **Full Changelog**: https://github.com/tumf/mcp-shell-server/compare/v1.1.3...v1.1.4
    View on GitHub ↗

Discussion (0)

Sign in to comment →

No comments yet. Sign in to start the discussion.

More System servers