Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2025 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Ssh Mcp Server

    基于 SSH 的 MCP 服务器 🧙‍♀️。已被MCP官方收录 🎉。 SSH MCP Server 🧙‍♀️. It has been included in the community MCP repository 🎉.

    81 stars
    TypeScript
    Updated Nov 3, 2025

    Documentation

    🔐 ssh-mcp-server

    SSH-based MCP (Model Context Protocol) server that allows remote execution of SSH commands via the MCP protocol.

    English Document | 中文文档

    📝 Project Overview

    ssh-mcp-server is a bridging tool that enables AI assistants and other applications supporting the MCP protocol to execute remote SSH commands through a standardized interface. This allows AI assistants to safely operate remote servers, execute commands, and retrieve results without directly exposing SSH credentials to AI models.

    ✨ Key Features

    • 🔒 Secure Connections: Supports multiple secure SSH connection methods, including password authentication and private key authentication (with passphrase support)
    • 🛡️ Command Security Control: Precisely control the range of allowed commands through flexible blacklist and whitelist mechanisms to prevent dangerous operations
    • 🔄 Standardized Interface: Complies with MCP protocol specifications for seamless integration with AI assistants supporting the protocol
    • 📂 File Transfer: Supports bidirectional file transfers, uploading local files to servers or downloading files from servers
    • 🔑 Credential Isolation: SSH credentials are managed entirely locally and never exposed to AI models, enhancing security
    • 🚀 Ready to Use: Can be run directly using NPX without global installation, making it convenient and quick to deploy

    📦 Open Source Repository

    GitHub: https://github.com/classfang/ssh-mcp-server

    NPM: https://www.npmjs.com/package/@fangjunjie/ssh-mcp-server

    🛠️ Tools List

    ToolNameDescription
    execute-commandCommand Execution ToolExecute SSH commands on remote servers and get results
    uploadFile Upload ToolUpload local files to specified locations on remote servers
    downloadFile Download ToolDownload files from remote servers to local specified locations
    list-serversList Servers ToolList all available SSH server configurations

    📚 Usage

    🔧 MCP Configuration Examples

    ⚠️ Important: In MCP configuration files, each command line argument and its value must be separate elements in the args array. Do NOT combine them with spaces. For example, use "--host", "192.168.1.1" instead of "--host 192.168.1.1".

    ⚙️ Command Line Options

    text
    Options:
      -h, --host          SSH server host address
      -p, --port          SSH server port
      -u, --username      SSH username
      -w, --password      SSH password
      -k, --privateKey    SSH private key file path
      -P, --passphrase    Private key passphrase (if any)
      -W, --whitelist     Command whitelist, comma-separated regular expressions
      -B, --blacklist     Command blacklist, comma-separated regular expressions
      -s, --socksProxy    SOCKS proxy server address (e.g., socks://user:password@host:port)

    🔑 Using Password

    json
    {
      "mcpServers": {
        "ssh-mpc-server": {
          "command": "npx",
          "args": [
            "-y",
            "@fangjunjie/ssh-mcp-server",
            "--host", "192.168.1.1",
            "--port", "22",
            "--username", "root",
            "--password", "pwd123456"
          ]
        }
      }
    }

    🔐 Using Private Key

    json
    {
      "mcpServers": {
        "ssh-mpc-server": {
          "command": "npx",
          "args": [
            "-y",
            "@fangjunjie/ssh-mcp-server",
            "--host", "192.168.1.1",
            "--port", "22",
            "--username", "root",
            "--privateKey", "~/.ssh/id_rsa"
          ]
        }
      }
    }

    🔏 Using Private Key with Passphrase

    json
    {
      "mcpServers": {
        "ssh-mpc-server": {
          "command": "npx",
          "args": [
            "-y",
            "@fangjunjie/ssh-mcp-server",
            "--host", "192.168.1.1",
            "--port", "22",
            "--username", "root",
            "--privateKey", "~/.ssh/id_rsa",
            "--passphrase", "pwd123456"
          ]
        }
      }
    }

    🌐 Using SOCKS Proxy

    json
    {
      "mcpServers": {
        "ssh-mpc-server": {
          "command": "npx",
          "args": [
            "-y",
            "@fangjunjie/ssh-mcp-server",
            "--host", "192.168.1.1",
            "--port", "22",
            "--username", "root",
            "--password", "pwd123456",
            "--socksProxy", "socks://username:password@proxy-host:proxy-port"
          ]
        }
      }
    }

    📝 Using Command Whitelist and Blacklist

    Use the --whitelist and --blacklist parameters to restrict the range of executable commands. Multiple patterns are separated by commas. Each pattern is a regular expression used to match commands.

    Example: Using Command Whitelist

    json
    {
      "mcpServers": {
        "ssh-mpc-server": {
          "command": "npx",
          "args": [
            "-y",
            "@fangjunjie/ssh-mcp-server",
            "--host", "192.168.1.1",
            "--port", "22",
            "--username", "root",
            "--password", "pwd123456",
            "--whitelist", "^ls( .*)?,^cat .*,^df.*"
          ]
        }
      }
    }

    Example: Using Command Blacklist

    json
    {
      "mcpServers": {
        "ssh-mpc-server": {
          "command": "npx",
          "args": [
            "-y",
            "@fangjunjie/ssh-mcp-server",
            "--host", "192.168.1.1",
            "--port", "22",
            "--username", "root",
            "--password", "pwd123456",
            "--blacklist", "^rm .*,^shutdown.*,^reboot.*"
          ]
        }
      }
    }

    Note: If both whitelist and blacklist are specified, the system will first check whether the command is in the whitelist, and then check whether it is in the blacklist. The command must pass both checks to be executed.

    🧩 Multi-SSH Connection Example

    You can specify multiple SSH connections by passing multiple --ssh parameters, each with a unique name:

    bash
    npx @fangjunjie/ssh-mcp-server \
      --ssh "name=dev,host=1.2.3.4,port=22,user=alice,password=xxx" \
      --ssh "name=prod,host=5.6.7.8,port=22,user=bob,password=yyy"

    In MCP tool calls, specify the connection name via the connectionName parameter. If omitted, the default connection is used.

    Example (execute command on 'prod' connection):

    json
    {
      "tool": "execute-command",
      "params": {
        "cmdString": "ls -al",
        "connectionName": "prod"
      }
    }

    Example (execute command with timeout options):

    json
    {
      "tool": "execute-command",
      "params": {
        "cmdString": "ping -c 10 127.0.0.1",
        "connectionName": "prod",
        "timeout": 5000
      }
    }

    ⏱️ Command Execution Timeout

    The execute-command tool supports timeout options to prevent commands from hanging indefinitely:

    • timeout: Command execution timeout in milliseconds (optional, default is 30000ms)

    This is particularly useful for commands like ping, tail -f, or other long-running processes that might block execution.

    🗂️ List All SSH Servers

    You can use the MCP tool list-servers to get all available SSH server configurations:

    Example call:

    json
    {
      "tool": "list-servers",
      "params": {}
    }

    Example response:

    json
    [
      { "name": "dev", "host": "1.2.3.4", "port": 22, "username": "alice" },
      { "name": "prod", "host": "5.6.7.8", "port": 22, "username": "bob" }
    ]

    🛡️ Security Considerations

    This server provides powerful capabilities to execute commands and transfer files on remote servers. To ensure it is used securely, please consider the following:

    • Command Whitelisting: It is *strongly recommended* to use the --whitelist option to restrict the set of commands that can be executed. Without a whitelist, any command can be executed on the remote server, which can be a significant security risk.
    • Private Key Security: The server reads the SSH private key into memory. Ensure that the machine running the ssh-mcp-server is secure. Do not expose the server to untrusted networks.
    • Denial of Service (DoS): The server does not have built-in rate limiting. An attacker could potentially launch a DoS attack by flooding the server with connection requests or large file transfers. It is recommended to run the server behind a firewall or reverse proxy with rate-limiting capabilities.
    • Path Traversal: The server has built-in protection against path traversal attacks on the local filesystem. However, it is still important to be mindful of the paths used in upload and download commands.

    Similar MCP

    Based on tags & features

    • OP

      Openai Gpt Image Mcp

      TypeScript·
      75
    • MC

      Mcgravity

      TypeScript·
      71
    • PL

      Pluggedin Mcp Proxy

      TypeScript·
      97
    • MC

      Mcp Open Library

      TypeScript·
      42

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • OP

      Openai Gpt Image Mcp

      TypeScript·
      75
    • MC

      Mcgravity

      TypeScript·
      71
    • PL

      Pluggedin Mcp Proxy

      TypeScript·
      97
    • MC

      Mcp Open Library

      TypeScript·
      42

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k