Skip to main content

MCP Server for remote server administration via SSH — execute commands, manage files, edit configs, transfer files, control services. No agents needed on target servers.

Project description

SSH MCP Server

MCP Server für SSH-basierte Server-Administration. Ermöglicht KI-Assistenten die Verwaltung von Remote-Servern via SSH.

Supported MCP Clients

graph LR
    subgraph Getestet
        K[Kiro CLI]
        C[Claude Desktop]
    end
    subgraph Kompatibel
        A[Alle MCP-fähigen Clients<br/>stdio + StreamableHTTP]
    end
    K --> MCP[SSH MCP Server]
    C --> MCP
    A --> MCP
Client Transport Status
Kiro CLI stdio ✅ getestet
Claude Desktop stdio ✅ getestet
Jeder MCP-Client stdio / StreamableHTTP ✅ kompatibel

Features

Verwalte Linux-Server per SSH — direkt aus dem KI-Assistenten heraus. Keine Agents, Daemons oder Tools auf den Zielservern nötig. Nur ein SSH-Zugang reicht.

graph LR
    AI[KI-Assistent] -->|MCP| S[SSH MCP Server]
    S -->|SSH/SFTP| R1[Server 1]
    S -->|SSH/SFTP| R2[Server 2]
    S -->|SSH/SFTP| RN[Server N]
  • Agentless: Kein Setup auf den Zielservern — funktioniert mit jedem SSH-Zugang
  • Remote Command Execution: Einzelbefehle oder mehrzeilige Scripts ausführen
  • Sudo Support: Befehle mit sudo ausführen, ohne interaktives Passwort
  • File Operations: Dateien lesen (teilweise/komplett), schreiben, suchen, chirurgisch editieren
  • File Transfer: Upload/Download via SFTP
  • Service Management: Systemd Services starten, stoppen, restarten, Status prüfen
  • Code Navigation: Funktions-/Klassen-Übersicht aus Quelldateien extrahieren (grep-basiert, kein Language Server nötig)
  • Multi-Server: Beliebig viele Server parallel verwalten
  • Connection Pooling: SSH-Verbindungen werden 5 Minuten wiederverwendet
  • User Approval: Schreibende Operationen erfordern Bestätigung durch den Operator
  • Audit Log: Alle Aktionen werden protokolliert (Pfad konfigurierbar)

Installation

Von PyPI

pip install remote-admin-mcp

Mit uv (empfohlen für Entwicklung)

# Virtuelle Umgebung erstellen und Abhängigkeiten installieren
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"

Mit pip

# Virtuelle Umgebung erstellen
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Abhängigkeiten installieren
pip install -e ".[dev]"

Konfiguration

  1. Kopiere .env.example zu .env:
cp .env.example .env
  1. Bearbeite .env mit deinen Server-Zugangsdaten:
SSH_SERVER_1_NAME=production
SSH_SERVER_1_HOST=prod.example.com
SSH_SERVER_1_PORT=22
SSH_SERVER_1_USER=admin
SSH_SERVER_1_PASSWORD=your-password

SSH_SERVER_2_NAME=staging
SSH_SERVER_2_HOST=staging.example.com
SSH_SERVER_2_PORT=22
SSH_SERVER_2_USER=deploy
SSH_SERVER_2_PASSWORD=your-password

MCP Tools

list_servers

Liste alle konfigurierten Server auf.

execute_command

Führe einen Befehl auf einem Remote-Server aus.

Parameter:

  • server (string): Server-Name
  • command (string): Auszuführender Befehl
  • use_sudo (boolean): Mit sudo ausführen

read_file

Lese eine Datei vom Remote-Server.

Parameter:

  • server (string): Server-Name
  • path (string): Dateipfad

write_file

Schreibe eine Datei auf den Remote-Server.

Parameter:

  • server (string): Server-Name
  • path (string): Dateipfad
  • content (string): Dateiinhalt

get_service_status

Prüfe den Status eines systemd Services.

Parameter:

  • server (string): Server-Name
  • service (string): Service-Name

manage_service

Verwalte einen systemd Service (start/stop/restart/reload).

Parameter:

  • server (string): Server-Name
  • service (string): Service-Name
  • action (string): Aktion (start/stop/restart/reload)

Verwendung mit KI-Assistenten

Kiro CLI / Claude Desktop (uvx — empfohlen)

Kein manuelles Installieren nötig — uvx lädt und cached das Paket automatisch:

{
  "mcpServers": {
    "ssh": {
      "command": "uvx",
      "args": ["remote-admin-mcp"],
      "env": {
        "SSH_SERVER_1_NAME": "production",
        "SSH_SERVER_1_HOST": "prod.example.com",
        "SSH_SERVER_1_USER": "admin",
        "SSH_SERVER_1_KEY_FILE": "~/.ssh/id_ed25519"
      }
    }
  }
}

Alternative: Mit .env-Datei

{
  "mcpServers": {
    "ssh": {
      "command": "uvx",
      "args": ["--env-file", "/path/to/.env", "remote-admin-mcp"]
    }
  }
}

Alternative: Lokale Installation

{
  "mcpServers": {
    "ssh": {
      "command": "/path/to/.venv/bin/ssh_mcp_server"
    }
  }
}

Beispiele

Log-Analyse:

"Zeige mir die letzten 100 Zeilen vom nginx error log auf production"

Service Restart:

"Starte den nginx Service auf staging neu"

Config ändern:

"Lies die nginx.conf auf production und erhöhe worker_processes auf 4"

Sicherheit

  • Schreibende Tools erfordern User-Approval durch den MCP Client
  • Lese-Tools (list_servers, read_file, search_in_file, get_file_structure) sind auto-approved
  • SSH-Key-Authentifizierung empfohlen (Passwort-Auth möglich)
  • .env sollte NICHT ins Git committed werden

Audit Log

Alle Aktionen werden in ein Logfile geschrieben:

[2026-04-12 13:14:00] [production] execute: tail -100 /var/log/syslog
[2026-04-12 13:14:05] [production] write_file: /etc/nginx/nginx.conf — Config update

Default: ~/.ssh-mcp-audit.log. Konfigurierbar per Environment-Variable:

SSH_MCP_AUDIT_LOG=/var/log/ssh-mcp-audit.log

Entwicklung

# Tests ausführen
pytest -v

# Linting
ruff check src/

Lizenz

MIT — siehe LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remote_admin_mcp-0.1.0.tar.gz (78.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remote_admin_mcp-0.1.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file remote_admin_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: remote_admin_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 78.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for remote_admin_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e0521bc87421f2097ce5a84a10f3336516b1c20368f74ee4f506d0bda74a54fd
MD5 edcd1eb4a98964009591f9f460b5f4f0
BLAKE2b-256 891ff48149bf9f00d47e488206809a9de1cceb6d9fdf545bc18c5a5c4a471b13

See more details on using hashes here.

Provenance

The following attestation bundles were made for remote_admin_mcp-0.1.0.tar.gz:

Publisher: publish.yml on intershopper/remote-admin-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file remote_admin_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for remote_admin_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec6525e10aaa270ddcd7f29521d3fed7f588d8f25e0a955736bae1be525dbb3a
MD5 8097cabbe7688deeb04f92e7a33d6fa6
BLAKE2b-256 0071f1a2b7c5d20277e1333e0db6453187b1c2fc0a60222ffa71668b5d3a565e

See more details on using hashes here.

Provenance

The following attestation bundles were made for remote_admin_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on intershopper/remote-admin-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page