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

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

-
security - not tested
F
license - not found
-
quality - not tested

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/kpanuragh/ssh-mcp'

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