RemoteShell MCP
🔗 RemoteShell MCP
Ein Model Context Protocol (MCP)-Server, der es LLMs ermöglicht, Befehle auf entfernten SSH-Servern sicher zu verwalten und auszuführen.
✨ Funktionen
🔐 Sichere Anmeldedatenverwaltung - SSH-Serverprofile einmal speichern, keine erneute Eingabe von Anmeldedaten nötig
💻 Remote-Befehlsausführung - Nicht-interaktive Shell-Befehle remote ausführen
📁 Dateioperationen - Dateien per SFTP hoch-/herunterladen
🤖 LLM-gestützt - Entwickelt mit FastMCP und Paramiko
Related MCP server: SSH MCP Server
🚀 Installation
RemoteShell ist ein stdio-MCP-Server, der auf PyPI veröffentlicht wird. Führen Sie ihn direkt mit uvx aus — kein Installationsschritt erforderlich. Registrieren Sie den Server dann bei Ihrem KI-Coding-Agenten:
Claude Code
claude mcp add remoteshell --scope user -- uvx remoteshell-mcpCodex
codex mcp add remoteshell -- uvx remoteshell-mcpAndere Agenten — klicken Sie auf Ihren, um zu erweitern 👇
cursor mcp add remoteshell -- uvx remoteshell-mcpBearbeiten Sie ~/.gemini/config/mcp_config.json (global) oder .agents/mcp_config.json (Projekt):
{
"mcpServers": {
"remoteshell": {
"command": "uvx",
"args": ["remoteshell-mcp"]
}
}
}Oder öffnen Sie die Ansicht MCP Servers in der Antigravity-TUI und führen Sie den Befehl /mcp aus.
opencode mcp addWählen Sie local und geben Sie dann uvx remoteshell-mcp ein.
Bearbeiten Sie ~/.hermes/config.yaml:
mcp_servers:
remoteshell:
command: "uvx"
args: ["remoteshell-mcp"]Führen Sie /reload-mcp in der Hermes-TUI aus, um den neuen Server zu übernehmen.
Bearbeiten Sie ~/.openclaw/openclaw.json:
{
"mcp": {
"servers": {
"remoteshell": {
"command": "uvx",
"args": ["remoteshell-mcp"]
}
}
}
}Oder führen Sie openclaw configure aus, um es über den interaktiven Assistenten hinzuzufügen.
Fügen Sie dies zu Ihrer MCP-Client-Konfiguration hinzu:
{
"mcpServers": {
"remoteshell": {
"command": "uvx",
"args": ["remoteshell-mcp"]
}
}
}📖 Verwendung
Der Einstieg ist einfach! Sie haben zwei Möglichkeiten:
🤖 Lassen Sie das LLM für Sie konfigurieren - Teilen Sie dem LLM einfach Host, Benutzername, Passwort usw. mit und bitten Sie es, die Serverkonfiguration einzurichten
⚙️ Manuelle Konfiguration - Bearbeiten Sie die Konfigurationsdatei direkt unter
~/.config/remoteshell/hosts.json
💾 Konfiguration & Speicherung
RemoteShell speichert Ihre Serverkonfigurationen sicher in:
~/.config/remoteshell/hosts.json🔧 Konfigurationsverwaltung
LLM-verwaltet: Das LLM verwaltet diese Datei automatisch mithilfe der Tools
save_serverundremove_serverManuelle Bearbeitung: Sie können die JSON-Datei für erweiterte Konfigurationen auch direkt bearbeiten
📋 Beispielkonfiguration
{
"version": 1,
"servers": {
"production-server": {
"host": "1.2.3.4",
"user": "root",
"port": 22,
"auth_type": "password",
"password": "your_secure_password",
"last_connected": null
},
"staging-server": {
"host": "staging.example.com",
"user": "ubuntu",
"port": 22,
"auth_type": "private_key",
"private_key": "~/.ssh/id_rsa",
"last_connected": "2025-01-01T00:00:00+00:00"
}
}
}🔒 Sicherheitshinweis
Schützen Sie Ihre Konfigurationsdatei auf POSIX-Systemen:
chmod 600 ~/.config/remoteshell/hosts.json🛠️ Verfügbare Tools
RemoteShell bietet die folgenden MCP-Tools für die Verwaltung entfernter Server:
📋 list_servers()
Zweck: Alle gespeicherten Serverprofile mit ihrem Verbindungsstatus und ihrer letzten Aktivität anzeigen.
Wann verwenden:
Der Benutzer fragt nach „Mit Server verbinden“ oder „Maschinen anzeigen“
Es wird keine spezifische
connection_idangegebenVerfügbare Server müssen angezeigt werden
Beispiel: „Zeig mir, welche Server ich konfiguriert habe“ → Gibt eine Liste aller gespeicherten Server mit Online-Status zurück
💾 save_server(connection_id, host, user, auth_type, credential, port)
Zweck: Ein Serverprofil mit Authentifizierungsdaten erstellen oder aktualisieren.
Parameter:
connection_id: Eindeutige Kennung für den Server (z. B. „production“, „staging“)host: Server-Hostname oder IP-Adresseuser: SSH-Benutzernameauth_type:"password"oder"private_key"credential:Für
password: Passwortzeichenfolge im KlartextFür
private_key: Dateipfad (z. B.~/.ssh/id_rsa) oder PEM-Schlüsselinhalt
port: SSH-Port (optional; Standard ist 22; wenn weggelassen, bleibt der zuvor gespeicherte Port erhalten)
Wann verwenden:
Hinzufügen einer neuen Serverkonfiguration
Aktualisieren der Anmeldedaten nach einem Authentifizierungsfehler
Ändern der Serververbindungsdetails
🗑️ remove_server(connection_id)
Zweck: Ein Serverprofil dauerhaft aus dem Speicher löschen.
Wann verwenden:
Der Benutzer fordert ausdrücklich an, einen Server zu entfernen oder zu vergessen
Der Server ist nicht mehr erreichbar oder wird nicht mehr benötigt
⚠️ Warnung: Diese Aktion kann nicht rückgängig gemacht werden
⚡ execute_command(connection_id, command)
Zweck: Nicht-interaktive Shell-Befehle remote ausführen und Ergebnisse zurückgeben.
Rückgabe: stdout, stderr und exit_code
Wann verwenden:
Ausführen von Systembefehlen, Skripten oder Dienstprogrammen
Überprüfen des Serverstatus, der Speichernutzung oder von Prozesslisten
Dateioperationen, Paketverwaltung usw.
Wann NICHT verwenden:
Interaktive Programme (vim, htop, top)
Befehle, die manuelle Eingaben erfordern (
[Y/n]-Eingabeaufforderungen) - es sei denn, Sie verwenden Flags wie-y
Beispiel: execute_command(connection_id="production", command="df -h")
📤 upload_file(connection_id, local_path, remote_path)
Zweck: Dateien per SFTP von Ihrem lokalen Rechner auf einen entfernten Server hochladen.
Parameter:
local_path: Pfad zur Datei auf Ihrem lokalen Rechnerremote_path: Zielpfad auf dem entfernten Server
Hinweise:
Wenn
remote_pathein Verzeichnis ist, bleibt der ursprüngliche Dateiname erhaltenWenn
local_pathweggelassen wird, wählt der Server einen Standardpfad und gibt ihn in der Antwort zurück
📥 download_file(connection_id, remote_path, local_path)
Zweck: Dateien per SFTP von einem entfernten Server auf Ihren lokalen Rechner herunterladen.
Parameter:
remote_path: Pfad zur Datei auf dem entfernten Serverlocal_path: Zielpfad auf Ihrem lokalen Rechner
Hinweise:
Wenn
local_pathweggelassen wird, lautet der Standardpfad:~/.config/remoteshell/downloads/<connection_id>/<basename>
🧪 Entwicklung
Lokales Entwicklungssetup
Für die lokale Entwicklung verwenden Sie diese MCP-Konfiguration:
{
"mcpServers": {
"remoteshell": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/remoteShell-mcp", "run", "remoteshell-mcp"]
}
}
}Tests ausführen
uv run pytestMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceA local Model Context Protocol server that allows LLMs to securely execute shell commands on remote Linux and Windows systems via SSH connections.6292
- AlicenseNot gradedqualityAmaintenanceA Model Context Protocol server that allows LLMs to securely execute shell commands on remote Linux and Windows systems via SSH. It supports password and key-based authentication, command timeouts, and sudo elevation for administrative tasks.49,165655MIT
- AlicenseNot gradedqualityAmaintenanceA local MCP server that enables LLMs to execute shell commands on remote hosts over SSH with multiple authentication methods.353MIT
- AlicenseNot gradedqualityDmaintenanceA centralized MCP server that enables LLM agents to securely execute commands and manage Linux servers via SSH.2MIT
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/chouzz/remoteShell-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server