Skip to main content
Glama

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

Related 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

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

Available Tools

11 tools
sftp_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

    A3.6/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool targets a distinct operation: connection management, command execution, file transfer, or interactive shell. No two tools overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent prefix pattern (ssh_, sftp_, ssh_shell_) with snake_case and verb_noun structure, making them predictable.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables 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.
      18
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables secure SSH connections to multiple remote servers with support for command execution, file transfers (SFTP), directory listing, and both password and key-based authentication.
      7
      25 PyPI
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables 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.
      4
      116 npm
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables remote server management via SSH, including command execution, file transfer (SFTP), and interactive shell sessions, with support for multiple hosts.
      -