npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-server-ssh-manager

v1.2.0

Published

SSH MCP server that can handle jumping between different hosts

Readme

ssh-mcp-server

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

Project Overview

ssh-mcp-server enables AI assistants and applications supporting MCP protocol to execute remote SSH commands safely through a standardized interface.

Published as mcp-server-ssh-manager on NPM: https://www.npmjs.com/package/mcp-server-ssh-manager

Features

  • Secure Connections: Supports password and private key authentication (with passphrase support)
  • Multiple Private Keys: Supports trying multiple private key files in sequence - useful when unsure which key type (RSA, ED25519, etc.) the server accepts
  • Host Key Verification: Flexible host key verification with auto-accept (default) or strict verification options
  • Command Security Control: Command whitelist and blacklist mechanisms
  • File Transfer: Bidirectional file uploads and downloads
  • Ready to Use: Use via npx without installation

Usage

To use this MCP server, you don't need to install it globally. You can use it directly via npx in your configuration.

Available Tools

| Tool | Description | |---------|-----------| | set_current_server | Set the current SSH server for subsequent commands | | execute-command | Execute SSH commands on remote servers | | upload | Upload local files to remote servers | | download | Download files from remote servers | | get_current_server | Get current SSH server configuration and status |

MCP Configuration

Using with Cursor

Cursor supports MCP servers in two scopes:

1. Global Configuration (Available Across All Projects)

Edit the file ~/.cursor/mcp.json:

{
  "mcpServers": {
    "ssh-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-ssh-manager"
      ]
    }
  }
}

Alternatively, you can add via the UI:

  1. Navigate to File → Preferences → Cursor Settings
  2. Select "MCP"
  3. Click "Add new global MCP server"

2. Project Configuration (Project-Specific)

Create or edit .cursor/mcp.json in your project directory:

{
  "mcpServers": {
    "ssh-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-ssh-manager"
      ]
    }
  }
}

Using with OpenCode

OpenCode uses a JSON configuration file at the project root level.

1. Using opencode.json (or opencode.jsonc)

Create or edit opencode.json in your project root:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ssh-mcp": {
      "enabled": true,
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-ssh-manager"
      ]
    }
  }
}

2. Using the CLI (Interactive)

Run the following command and follow the prompts:

opencode mcp add

Then:

  • Enter MCP server name (e.g., ssh-mcp)
  • Select MCP server type: Local
  • Enter command to run: npx -y mcp-server-ssh-manager

Note: MCP servers add to your context in OpenCode, so be selective about which servers you enable to avoid exceeding context limits.

Tool Examples

Set current server (password authentication):

{
  "host": "192.168.1.100",
  "name": "production-server",
  "username": "admin",
  "password": "secret123",
  "port": 22
}

Set current server (private key authentication):

{
  "host": "192.168.1.100",
  "username": "admin",
  "privateKey": "/path/to/.ssh/id_rsa"
}

Set current server (multiple private keys):

{
  "host": "192.168.1.100",
  "username": "admin",
  "privateKey": [
    "/path/to/.ssh/id_rsa",
    "/path/to/.ssh/id_ed25519",
    "/path/to/.ssh/id_ecdsa"
  ]
}

ℹ️ Note: When providing multiple private keys, the server will try them in order until one succeeds. This is useful when you're unsure which key type the server accepts, or when you have keys for different authentication methods.

Set current server (encrypted private key with passphrase):

{
  "host": "192.168.1.100",
  "username": "admin",
  "privateKey": "/path/to/.ssh/id_rsa",
  "passphrase": "my-secret-passphrase"
}

Set current server (strict host key verification):

{
  "host": "192.168.1.100",
  "username": "admin",
  "privateKey": "/path/to/.ssh/id_rsa",
  "strictHostKeyChecking": true,
  "knownHosts": "/path/to/.ssh/known_hosts"
}

Authentication Methods:

By default, the server uses password authentication (defaults to admin/admin). You can also use:

  • Private key authentication: Provide privateKey parameter (path to private key file)
    • Supports single key: "privateKey": "/path/to/.ssh/id_rsa"
    • Supports multiple keys (tried in sequence until one succeeds): "privateKey": ["/path/to/.ssh/id_rsa", "/path/to/.ssh/id_ed25519"]
    • This is useful when unsure which key type the server accepts (RSA, ED25519, ECDSA, etc.)
  • Encrypted private key: Provide both privateKey and passphrase (note: only one passphrase is supported even with multiple keys - all encrypted keys must share the same passphrase, or use unencrypted keys)
  • Host key verification:
    • Default: Auto-accept host keys (like SSH -o StrictHostKeyChecking=no)
    • Strict: Set strictHostKeyChecking: true and provide knownHosts file path

Execute command:

{
  "cmdString": "ls -la",
  "timeout": 5000
}

Upload file:

{
  "localPath": "/path/to/local/file.txt",
  "remotePath": "/remote/destination/file.txt"
}

Download file:

{
  "remotePath": "/remote/file.txt",
  "localPath": "/local/destination/file.txt"
}

Get current server:

{}

Development

If you want to contribute to this project or run it from source:

# Clone the repository
git clone https://github.com/yourusername/ssh-mcp-server.git
cd ssh-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

To run from source instead of NPM, change your configuration to point to the build output:

{
  "mcpServers": {
    "ssh-mcp": {
      "command": "node",
      "args": [
        "/path/to/ssh-mcp-server/build/index.js"
      ]
    }
  }
}