Skip to main content
Glama

ezssh-mcp

npm version License: MIT

Easy SSH MCP Server - Execute commands and transfer files via SSH with AI assistance.

Features

  • 🖥️ Cross-platform: Linux, macOS, Windows

  • 🔑 SSH Agent support: System SSH Agent, 1Password, Windows OpenSSH

  • 📋 Auto-discovery: Reads hosts from ~/.ssh/config

  • Concurrent execution: Run commands on multiple hosts simultaneously

  • 📁 File transfer: Upload/download via SFTP

  • 🔗 MCP Resources: SSH hosts exposed as resources for AI access

  • 🤖 Multi-AI compatible: Works with Claude, ChatGPT, Gemini and other MCP-compatible clients

Related MCP server: SSH MCP Server

Installation

npm install -g ezssh-mcp

From Source

git clone https://github.com/laomeifun/ezssh-mcp.git
cd ezssh-mcp
npm install
npm run build

Quick Start

1. Run as MCP Server

ezssh-mcp
# or
npx ezssh-mcp

2. Configure with Claude Desktop

Add to your claude_desktop_config.json:

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

Or if installed globally:

{
  "mcpServers": {
    "ssh": {
      "command": "ezssh-mcp"
    }
  }
}

Tools

Tool

Description

ssh_list_hosts

List available SSH hosts from config

ssh_execute

Execute commands on one or more hosts

ssh_transfer

Upload/download files via SFTP

ssh_execute

Execute commands on multiple hosts concurrently:

{
  "hosts": ["web1", "web2", "web3"],
  "command": "uptime"
}

Direct connection (without SSH config):

{
  "hosts": ["192.168.1.100"],
  "command": "uptime",
  "username": "root",
  "password": "your-password",
  "port": 22
}

ssh_transfer

Upload files:

{
  "direction": "upload",
  "hosts": ["web1", "web2"],
  "localPath": "./dist/app.zip",
  "remotePath": "/opt/app/app.zip"
}

Download files (with {host} placeholder for multiple hosts):

{
  "direction": "download",
  "hosts": ["web1", "web2"],
  "localPath": "./logs/{host}.log",
  "remotePath": "/var/log/app.log"
}

Resources

SSH hosts are exposed as MCP resources with URI format ssh://<host-name>.

Environment Variables

Variable

Description

Default

SSH_CONFIG_PATH

SSH config file path

~/.ssh/config

SSH_KNOWN_HOSTS_PATH

known_hosts file path

~/.ssh/known_hosts

SSH_AUTH_SOCK

SSH Agent socket path

System default

SSH_TIMEOUT

Connection timeout (ms)

30000

SSH_STRICT_HOST_KEY

Strict host key checking

false

SSH_MAX_CONCURRENCY

Max concurrent connections

10

Development

# Install dependencies
npm install

# Development mode (watch)
npm run dev

# Build
npm run build

# Type check
npm run typecheck

# Run tests
npm test

License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
1dRelease cycle
4Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/laomeifun/ezssh-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server