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.
npm install -g @kpanuragh/ssh-mcpOr run directly with npx:
npx @kpanuragh/ssh-mcp- 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
| 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 |
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": ["@kpanuragh/ssh-mcp"]
}
}
}{
"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"
}
}{
"tool": "ssh_exec",
"arguments": {
"sessionId": "uuid-from-connect",
"command": "ls -la"
}
}{
"tool": "sftp_upload",
"arguments": {
"sessionId": "uuid-from-connect",
"localPath": "/local/file.txt",
"remotePath": "/remote/file.txt"
}
}{
"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"
}
}{
"tool": "ssh_disconnect",
"arguments": {
"sessionId": "uuid-from-connect"
}
}MIT