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

@smorchestraai-code/ssh-mcp

v1.0.0

Published

MCP server for SSH-based server management. 16 tools across commands, file transfer, log reading, Docker introspection, and ServerFast bundle credential retrieval. Bring your own SSH keys — Claude operates against any VPS you can already SSH into.

Readme

SSH MCP

Part of the smorchestra-mcps collection of server / ops / infrastructure MCP servers.

Let Claude SSH into your servers, run commands, transfer files, tail logs, and inspect Docker. اسمح لـ Claude بالاتصال بخوادمك عبر SSH وتنفيذ الأوامر ومتابعة السجلات.

A Model Context Protocol server that gives Claude 16 tools across SSH command execution, file transfer, log reading, Docker introspection, and ServerFast bundle credential retrieval. Claude operates against any VPS you can already SSH into — no central registry, no agent install, just your existing SSH keys.

npm License: MIT


Install in one minute

You need: Node.js 20 or newer (download from nodejs.org), Claude Desktop, and an SSH key already configured for the server(s) you want to manage (Claude uses your existing ~/.ssh/ keys — no new keys generated).

1. Find your Claude Desktop config file:

| OS | Path | |---|---| | Windows | %APPDATA%\Claude\claude_desktop_config.json | | macOS | ~/Library/Application Support/Claude/claude_desktop_config.json | | Linux | ~/.config/Claude/claude_desktop_config.json |

If the file doesn't exist, create it.

2. Paste this block:

{
  "mcpServers": {
    "ssh": {
      "command": "npx",
      "args": ["-y", "@smorchestraai-code/ssh-mcp"]
    }
  }
}

No environment variables needed. Keys are read from your standard SSH locations:

  • ~/.ssh/id_ed25519 (preferred)
  • ~/.ssh/id_rsa
  • ~/.ssh/id_ecdsa

Or pass a custom path via the key_path argument on any tool call.

3. Restart Claude Desktop.

Detailed install: Windows · macOS · Troubleshooting

Already have other MCPs in your config? Just add the "ssh": { ... } block inside the existing "mcpServers": {} object — don't replace the whole file.


What you can ask Claude

| Category | Tools | Examples | |---|---|---| | Commands | ssh_exec_command, ssh_exec_script, ssh_service_status, ssh_service_action, ssh_system_info | "SSH into 1.2.3.4 as root and run uptime" · "Restart nginx on prod" | | Files | ssh_upload_file, ssh_download_file, ssh_list_directory | "Upload my-config.toml to /etc/myapp/" · "What's in /var/www on prod?" | | Logs | ssh_tail_log, ssh_search_log, ssh_list_logs | "Tail the last 50 lines of /var/log/syslog" · "Search /var/log/auth.log for 'failed password' in the last hour" | | Docker | ssh_docker_ps, ssh_docker_logs, ssh_docker_compose_action, ssh_docker_stats | "Show running containers on the staging server" · "docker compose up -d in /opt/n8n" | | ServerFast | ssh_read_bundle_credentials | "What are my n8n credentials on the bundle-advanced server I just provisioned?" (reads /opt/eo-bundle/credentials.json) |

Combined with @smorchestraai-code/contabo-mcp, Claude can provision → SSH → operate in one prompt:

Provision a Cloud VPS L in Germany, wait for it to come up, SSH in as root,
install Docker, and run a quick `docker run hello-world` smoke test.

Security model

  • Your keys never leave your machine. The MCP runs locally on your laptop, reads keys from ~/.ssh/, and SSHes from there. No phone-home.
  • No credentials in the MCP config. Keys come from where they always lived.
  • No persistent connections. Each tool call opens a new SSH connection, runs the command, closes the connection.
  • Same surface as your terminal. If you can ssh user@host from the same shell, Claude can use that host through this MCP. If you can't, neither can Claude.

If you want Claude to use a non-default key, pass key_path to any tool call:

Use the key at ~/.ssh/staging_ed25519 and SSH into staging.example.com as ubuntu

Updating

Because the config uses npx -y, you always get the latest published version on every Claude Desktop restart. No manual updates needed.


Local development

git clone https://github.com/SMOrchestra-ai/smorchestra-mcps.git
cd smorchestra-mcps
npm install
npm run build --workspace=packages/ssh-mcp
npm test --workspace=packages/ssh-mcp

The 119-test suite mocks ssh2 completely — no live SSH connections, no credentials needed to run tests.


License

MIT — © 2026 SMOrchestra.ai / Mamoun Alamouri