SSH MCP Server

$npx @kpanuragh/ssh-mcp
README.md

SSH access with Warp-like terminal experience for remote server management.

SSH MCP Server

An MCP (Model Context Protocol) server that provides SSH access with Warp-like terminal experience. Connect to remote servers, execute commands, transfer files, and manage interactive shell sessions.

Installation

npm install -g @kpanuragh/ssh-mcp

Or run directly with npx:

npx @kpanuragh/ssh-mcp

Features

  • SSH Connection Management - Multiple concurrent connections with session persistence
  • Command Execution - Run commands with stdout/stderr capture and exit codes
  • SFTP Operations - Upload, download, and list files on remote servers
  • Interactive Shell - PTY-based shell sessions for interactive commands
  • Authentication - Support for both password and SSH key authentication

MCP Tools

Tool Description
ssh_connect Establish SSH connection to a remote server
ssh_exec Execute a command on connected server
ssh_disconnect Close an SSH session
ssh_list_sessions List all active SSH sessions
sftp_upload Upload a file to remote server
sftp_download Download a file from remote server
sftp_list List files in remote directory
ssh_shell_start Start interactive shell session
ssh_shell_send Send input to interactive shell
ssh_shell_read Read output from interactive shell
ssh_shell_close Close interactive shell session

Usage with Claude Desktop

Add to your claude_desktop_config.json:

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

Example Workflow

1. Connect to a server

{
  "tool": "ssh_connect",
  "arguments": {
    "host": "example.com",
    "username": "user",
    "password": "password"
  }
}

Or with SSH key:

{
  "tool": "ssh_connect",
  "arguments": {
    "host": "example.com",
    "username": "user",
    "privateKeyPath": "/home/user/.ssh/id_rsa"
  }
}

2. Execute commands

{
  "tool": "ssh_exec",
  "arguments": {
    "sessionId": "uuid-from-connect",
    "command": "ls -la"
  }
}

3. Transfer files

{
  "tool": "sftp_upload",
  "arguments": {
    "sessionId": "uuid-from-connect",
    "localPath": "/local/file.txt",
    "remotePath": "/remote/file.txt"
  }
}

4. Interactive shell

{
  "tool": "ssh_shell_start",
  "arguments": {
    "sessionId": "uuid-from-connect"
  }
}
{
  "tool": "ssh_shell_send",
  "arguments": {
    "sessionId": "uuid-from-connect",
    "shellId": "shell-uuid",
    "input": "cd /var/log\n"
  }
}

5. Disconnect

{
  "tool": "ssh_disconnect",
  "arguments": {
    "sessionId": "uuid-from-connect"
  }
}

License

MIT

Tools (11)

ssh_connectEstablish SSH connection to a remote server
ssh_execExecute a command on connected server
ssh_disconnectClose an SSH session
ssh_list_sessionsList all active SSH sessions
sftp_uploadUpload a file to remote server
sftp_downloadDownload a file from remote server
sftp_listList files in remote directory
ssh_shell_startStart interactive shell session
ssh_shell_sendSend input to interactive shell
ssh_shell_readRead output from interactive shell
ssh_shell_closeClose interactive shell session

Configuration

claude_desktop_config.json
{
  "mcpServers": {
    "ssh": {
      "command": "npx",
      "args": ["@kpanuragh/ssh-mcp"]
    }
  }
}

Try it

Connect to my server at example.com using username 'admin' and my SSH key at ~/.ssh/id_rsa
List all files in the /var/www/html directory on my connected SSH session
Upload the local file 'config.json' to the remote path '/etc/myapp/config.json'
Start an interactive shell session and run 'cd /var/log' followed by 'tail -f syslog'
Execute 'ls -la' on my active SSH session and show me the output

Frequently Asked Questions

What are the key features of SSH MCP Server?

Multiple concurrent SSH connections with session persistence. Command execution with stdout/stderr capture and exit codes. Full SFTP support for uploading, downloading, and listing remote files. PTY-based interactive shell sessions for complex terminal workflows. Support for both password and private key authentication.

What can I use SSH MCP Server for?

Remote server administration and troubleshooting via natural language. Automated file deployments and configuration management across multiple servers. Real-time log monitoring and interactive debugging of remote applications. Managing cloud infrastructure without leaving the AI chat interface.

How do I install SSH MCP Server?

Install SSH MCP Server by running: npx @kpanuragh/ssh-mcp

What MCP clients work with SSH MCP Server?

SSH MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use SSH MCP Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free