Skip to main content
Glama
chouzz

RemoteShell MCP

by chouzz

🔗 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-mcp

Codex

codex mcp add remoteshell -- uvx remoteshell-mcp

Andere Agenten — klicken Sie auf Ihren, um zu erweitern 👇

cursor mcp add remoteshell -- uvx remoteshell-mcp

Bearbeiten 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 add

Wä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:

  1. 🤖 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

  2. ⚙️ 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_server und remove_server

  • Manuelle 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_id angegeben

  • Verfü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-Adresse

  • user: SSH-Benutzername

  • auth_type: "password" oder "private_key"

  • credential:

    • Für password: Passwortzeichenfolge im Klartext

    • Fü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 Rechner

  • remote_path: Zielpfad auf dem entfernten Server

Hinweise:

  • Wenn remote_path ein Verzeichnis ist, bleibt der ursprüngliche Dateiname erhalten

  • Wenn local_path weggelassen 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 Server

  • local_path: Zielpfad auf Ihrem lokalen Rechner

Hinweise:

  • Wenn local_path weggelassen 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 pytest
Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
2moRelease cycle
5Releases (12mo)
Commit activity

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

  • F
    license
    A
    quality
    D
    maintenance
    A local Model Context Protocol server that allows LLMs to securely execute shell commands on remote Linux and Windows systems via SSH connections.
    6
    29
    2
  • A
    license
    Not graded
    quality
    A
    maintenance
    A 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,165
    655
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A centralized MCP server that enables LLM agents to securely execute commands and manage Linux servers via SSH.
    2
    MIT

View all related MCP servers

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.

View all MCP Connectors

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/chouzz/remoteShell-mcp'

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