Skip to main content
Glama

MCP SSH Server

A powerful SSH server implementation for Model Context Protocol (MCP). This server enables secure remote command execution and file operations through SSH protocol, supporting both password and key-based authentication.

Features

  • ✨ Secure SSH connection management

  • 🔑 Password and key-based authentication

  • 💻 Remote command execution

  • 📁 File operations (upload/download)

  • 📊 Progress tracking for file transfers

  • 🔐 Permission management

  • 📂 Directory operations

  • 🚀 Bulk file transfers

  • 📝 Detailed logging

Related MCP server: SSH MCP Server

Installation

  1. Install the package:

npm install mcp-ssh
  1. Add to your Claude desktop config (claude_desktop_config.json):

{ "mcpServers": { "ssh": { "command": "node", "args": ["%APPDATA%/npm/node_modules/mcp-ssh/dist/server.js"], "env": { "SSH_PORT": "8889", "SSH_LOG_LEVEL": "info" } } } }

Usage

Password Authentication

$body = @{ id = "test" host = "example.com" port = 22 username = "user" password = "pass123" } | ConvertTo-Json Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"

Key Authentication

$body = @{ id = "test" host = "example.com" port = 22 username = "user" privateKey = Get-Content ~/.ssh/id_rsa | Out-String passphrase = "optional-key-passphrase" # if your key is protected } | ConvertTo-Json Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"

Execute Commands

$execBody = @{ id = "test" command = "ls -la" } | ConvertTo-Json Invoke-RestMethod -Uri "http://localhost:8889/exec" -Method Post -Body $execBody -ContentType "application/json"

File Operations

# Upload file $uploadForm = @{ file = Get-Item -Path "localfile.txt" remotePath = "/remote/path/file.txt" } Invoke-RestMethod -Uri "http://localhost:8889/upload/test" -Method Post -Form $uploadForm # Download file Invoke-RestMethod -Uri "http://localhost:8889/download/test?remotePath=/remote/path/file.txt" -Method Get -OutFile "downloaded.txt"

Directory Operations

# List directory Invoke-RestMethod -Uri "http://localhost:8889/ls/test?path=/remote/path" -Method Get # Get connection status Invoke-RestMethod -Uri "http://localhost:8889/status/test" -Method Get

Development

  1. Clone the repository:

git clone https://github.com/shaike1/mcp-server-ssh.git cd mcp-server-ssh
  1. Install dependencies:

npm install
  1. Build:

npm run build
  1. Start server:

npm start

Environment Variables

  • SSH_PORT: Server port (default: 8889)

  • SSH_LOG_LEVEL: Logging level (default: info)

Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

MIT

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

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

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