SSH MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SSH MCP Server connect to user@example.com and check the status of nginx"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpOr run directly with npx:
npx @kpanuragh/ssh-mcpRelated MCP server: SSH MCP Server
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 |
| Establish SSH connection to a remote server |
| Execute a command on connected server |
| Close an SSH session |
| List all active SSH sessions |
| Upload a file to remote server |
| Download a file from remote server |
| List files in remote directory |
| Start interactive shell session |
| Send input to interactive shell |
| Read output from interactive shell |
| 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
Available Tools
11 toolssftp_downloadB
Download a file from the remote server via SFTP
Inputs: localPath (required), sessionId (required), remotePath (required).
sftp_listB
List files and directories in a remote directory via SFTP
Inputs: sessionId (required), remotePath (required).
sftp_uploadC
Upload a local file to the remote server via SFTP
Inputs: localPath (required), sessionId (required), remotePath (required).
ssh_connectB
Establish an SSH connection to a remote server. Returns a session ID for subsequent operations.
Inputs: host (required), username (required), port, password, +3 more.
ssh_disconnectA
Close an SSH session and clean up resources
Inputs: sessionId (required).
ssh_execA
Execute a command on a connected SSH server. Returns stdout, stderr, and exit code.
Inputs: command (required), sessionId (required), cwd, env, +1 more.
ssh_list_sessionsA
List all active SSH sessions
Inputs: no named parameters.
ssh_shell_closeB
Close an interactive shell session
Inputs: shellId (required), sessionId (required).
ssh_shell_readB
Read output from an interactive shell session
Inputs: shellId (required), sessionId (required), clear.
ssh_shell_sendB
Send input to an interactive shell session
Inputs: input (required), shellId (required), sessionId (required).
ssh_shell_startB
Start an interactive shell session. Returns a shell ID for sending commands and reading output.
Inputs: sessionId (required), cols, rows.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a distinct operation: connection management, command execution, file transfer, or interactive shell. No two tools overlap in purpose.
All tool names follow a consistent prefix pattern (ssh_, sftp_, ssh_shell_) with snake_case and verb_noun structure, making them predictable.
11 tools is well-scoped for an SSH server covering connection, execution, file operations, and interactive shell. Each tool serves a clear purpose without bloat.
Covers core SSH workflows (connect, exec, disconnect) and SFTP operations. Lacks SSH-native file listing (only SFTP) and advanced features like port forwarding, but basic coverage is solid.
Maintenance
Related MCP Connectors
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
Manage remote servers, SSH terminals, files, databases and proxies with scoped access and approvals.
Manage servers through SSH.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables seamless SSH operations including secure connections, file transfers, interactive shell sessions, and Docker container management on remote servers. Supports both password and SSH key authentication with credential management and connection pooling.18MIT
- AlicenseAqualityDmaintenanceEnables secure SSH connections to multiple remote servers with support for command execution, file transfers (SFTP), directory listing, and both password and key-based authentication.725 PyPIMIT
- AlicenseBqualityDmaintenanceEnables secure SSH connections to remote servers for executing shell commands and managing active sessions. It supports authentication via passwords or private keys and provides optional host-based access control.4116 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables remote server management via SSH, including command execution, file transfer (SFTP), and interactive shell sessions, with support for multiple hosts.-