SSH Linux Control
Enables remote Linux VM management via SSH with automatic safety checks for destructive commands, supporting password authentication and sudo operations.
README
MCP Server - SSH Linux Control for OpenWebUI
Control your Linux VMs via SSH directly from OpenWebUI with automatic safety checks for destructive commands.
Quick Setup
1. Configure Your VMs
Copy the example config and edit it:
cp config.yaml.example config.yaml
nano config.yaml # or use your preferred editor
Add your VMs:
hosts:
vm1:
hostname: "192.168.1.100"
username: "root"
password: "yourpassword"
description: "My Server"
2. Start the Server
docker compose up -d --build
3. Connect to OpenWebUI Network
# Find your OpenWebUI network name
docker network ls | grep openwebui
# Connect the container (replace 'openwebui_default' with your network name)
docker network connect openwebui_default ssh-control-mcp
4. Add Tool to OpenWebUI
- Open OpenWebUI ā Workspace ā Tools
- Click + Create Tool
- Copy and paste entire contents of
ssh_linux_control.py - Save
Done! š
Usage Examples
Ask OpenWebUI:
- "List my VMs"
- "Connect to vm1 and check disk space"
- "Show memory usage on vm1"
- "Run 'systemctl status nginx' on my server"
Features
ā
Password-based SSH authentication (no keys needed)
ā
Automatic destructive command detection
ā
Sudo support (uses password from config)
ā
40+ destructive command patterns detected
ā
Real-time command output
Destructive Command Safety
Commands like rm -rf, shutdown, systemctl stop, etc. require explicit confirmation:
- First attempt: Shows warning
- Retry with
confirmed=Trueto execute
Troubleshooting
Tool can't connect to server:
# Check container is running
docker ps | grep ssh-control-mcp
# Check logs
docker logs ssh-control-mcp
# Test API
curl http://localhost:3000/api/hosts
If OpenWebUI is containerized, ensure both containers are on the same network:
docker network connect <openwebui-network> ssh-control-mcp
File Structure
config.yaml.example- Example configuration (safe to commit)config.yaml- Your VM credentials (gitignored, DO NOT COMMIT)ssh_linux_control.py- OpenWebUI tool filedocker-compose.yml- Container configurationsrc/ssh_control_mcp/- MCP server & HTTP wrapper
Security Notes
ā ļø NEVER commit config.yaml - it contains plain-text passwords
ā ļø Use config.yaml.example as a template
ā ļø Designed for local VM management on trusted networks only
License
MIT License - See LICENSE file for details
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Neon Database
MCP server for interacting with Neon Management API and databases