Dark Stack SSH MCP Server
Lists running Docker containers on the remote host and allows executing arbitrary Docker commands via shell.
Click on "Install 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., "@Dark Stack SSH MCP Serverlist Docker containers"
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.
Dark Stack - SSH MCP Server
A Model Context Protocol (MCP) server for remote access to dark.lmphq.net (ASUS AI machine) using SSH with passwordless authentication. This is an SSH-based alternative to the plink-based dgx-stack solution.
Features
Execute commands on remote servers via SSH
List Docker containers on remote hosts
Read files from remote systems
Secure authentication via password or SSH keys
Based on the MCP protocol for LLM integration
Related MCP server: ssh-mcp
Installation
npm installConfiguration
Copy
.env.templateto.env:
cp .env.template .envConfigure your SSH connection in
.env:
Option 1: Password Authentication
SSH_HOST=your-server.com
SSH_PORT=22
SSH_USERNAME=your-username
SSH_PASSWORD=your-passwordOption 2: SSH Key Authentication (Recommended)
SSH_HOST=your-server.com
SSH_PORT=22
SSH_USERNAME=your-username
SSH_PRIVATE_KEY=/path/to/your/private/key
# SSH_PASSPHRASE=your-key-passphrase # if key is encryptedMCP Configuration
Add to your .mcp.json:
{
"mcpServers": {
"ssh-remote": {
"command": "node",
"args": ["F:\\AI-PROD\\projects\\dark.lmphq.net\\index.js"],
"env": {
"SSH_HOST": "your-server.com",
"SSH_PORT": "22",
"SSH_USERNAME": "your-username",
"SSH_PASSWORD": "your-password"
},
"type": "stdio"
}
}
}Or use environment variables from .env file.
Available Tools
docker_ps
Lists running Docker containers on the remote host.
Usage:
{
"name": "docker_ps"
}exec_command
Executes a shell command on the remote host.
Parameters:
command(string, required): The command to execute
Usage:
{
"name": "exec_command",
"arguments": {
"command": "hostname"
}
}read_file
Reads a file from the remote host using SFTP.
Parameters:
path(string, required): The absolute path to the file
Usage:
{
"name": "read_file",
"arguments": {
"path": "/etc/hostname"
}
}Security Considerations
Use SSH keys instead of passwords when possible
Never commit your
.envfile with credentialsRestrict SSH access using firewall rules and SSH config
Use strong passwords/passphrases if required
Consider using SSH agent for key management
Differences from plink-based solution
Feature | plink | SSH (this implementation) |
Platform | Windows | Cross-platform |
Authentication | Password in command | Env vars or key files |
Security | Passwords visible in process list | Environment-based config |
SSH Keys | Requires PuTTY format | Standard OpenSSH format |
Configuration | Hardcoded in commands | Centralized .env file |
Testing
# Test the server directly
npm startTroubleshooting
Connection timeout
Increase SSH_TIMEOUT in your .env file.
Authentication failed
Verify your username and password/key
Check SSH server logs on the remote host
Ensure SSH server allows password/key authentication
Permission denied
Verify file paths are absolute
Check file permissions on remote host
Ensure user has necessary permissions
License
MIT
This server cannot be installed
Maintenance
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/caly1337/dark.lmphq.net'
If you have feedback or need assistance with the MCP directory API, please join our Discord server