VOOZH about

URL: https://glama.ai/mcp/servers/oaslananka/mcp-ssh-tool?locale=de-DE

⇱ mcp-ssh-tool by oaslananka | Glama


mcp-ssh-tool

👁 npm version
👁 CI
👁 Security
👁 Official MCP Registry
👁 License: MIT
👁 npm downloads

Produktionsreife MCP-SSH-Automatisierung für Operatoren, Entwickler und KI-Clients. mcp-ssh-tool öffnet persistente SSH-Sitzungen und stellt sichere, strukturierte Tools für die Befehlsausführung, Dateivorgänge, Übertragungen, Tunnel, Paket-/Dienstverwaltung, Metriken, Ressourcen und geführte Prompts bereit.

v2 ist standardmäßig sicher: Strenge Host-Key-Überprüfung ist aktiviert, Root-Login ist deaktiviert, rohes sudo ist richtlinienbasiert eingeschränkt, destruktive Befehle und Dateisystemänderungen sind untersagt, sofern die Richtlinie dies nicht zulässt, und Remote-HTTP startet nur auf dem Loopback-Interface, es sei denn, Bearer-Authentifizierung und erlaubte Ursprünge sind konfiguriert.

Warum dieser Server

  • Vertrauen: Zentrale Richtlinien-Engine, strukturierte Audit-Ereignisse, bereinigte Protokolle, strenge Host-Keys und maschinenlesbare Fehler.

  • MCP-Qualität: stdio für lokale Clients, Streamable HTTP für Remote-Clients, Legacy-SSE nur hinter einem expliziten Kompatibilitäts-Flag.

  • KI-freundliche Tools: Stabile Ausgabeschemata, structuredContent, Annotationen für schreibgeschütztes/destruktives/idempotentes Verhalten, Ressourcen und kuratierte Prompts.

  • Betrieb: Sitzungs-TTL/Eviction, Befehls-Timeouts, Prüfsummenüberprüfung bei Übertragungen, echtes SSH-Forwarding, Prometheus-Metriken und OpenTelemetry-Hooks.

  • Portabilität: SFTP zuerst, POSIX/BusyBox-fähige Shell-Fallbacks für grundlegende Dateivorgänge und explizite Support-Grenzen.

Schnellstart

Ausführen ohne Installation:

npx -y mcp-ssh-tool --version

Oder global installieren:

npm install -g mcp-ssh-tool

Fügen Sie Ihrem Client einen stdio-MCP-Server hinzu:

{
 "servers": {
 "ssh-mcp": {
 "type": "stdio",
 "command": "mcp-ssh-tool",
 "args": []
 }
 }
}

Verwenden Sie ihn von Ihrem MCP-Client aus:

Open a safe SSH session to prod-1 as deploy, inspect host capabilities, then show disk usage.

Anforderungen

  • Node.js 22.22.2+ oder 24.14.1+ (nur LTS)

  • SSH-Zugriff auf Ziel-Hosts

  • Eine gefüllte known_hosts-Datei für die strenge Host-Überprüfung oder eine explizite Host-Key-Richtlinie pro Sitzung

Transporte

Modus

Befehl

Verwendung bei

stdio

mcp-ssh-tool

Lokale Desktop-Clients wie ChatGPT, Claude Desktop, VS Code, Cursor oder Codex.

Streamable HTTP

mcp-ssh-tool --transport=http --host 127.0.0.1 --port 3000

Remote-MCP-Clients, Reverse-Proxys oder Inspector-Sitzungen.

Legacy SSE

mcp-ssh-tool --transport=http --enable-legacy-sse

Nur für temporäre v1-Kompatibilität. Bevorzugen Sie Streamable HTTP.

Der Start von HTTP außerhalb des Loopbacks wird verweigert, sofern nicht sowohl --bearer-token-file als auch erlaubte Ursprünge konfiguriert sind.

Sichere Standardeinstellungen

Bereich

v2-Standard

Host-Keys

hostKeyPolicy=strict, knownHostsPath=~/.ssh/known_hosts

Root-SSH-Login

verweigert

Rohes proc_sudo

verweigert, sofern nicht allowRawSudo=true

Destruktive Befehle

verweigert, sofern nicht allowDestructiveCommands=true

Destruktive FS-Vorgänge

nur unter Richtlinien-Präfixen erlaubt, sonst verweigert

HTTP-Bindung

127.0.0.1

Legacy SSE

deaktiviert

Dateilesevorgänge

größenbegrenzt durch SSH_MCP_MAX_FILE_SIZE

Der Modus policyMode: "explain" pro Sitzung gibt einen Plan/ein Urteil zurück, ohne es auszuführen. Verwenden Sie dies vor Änderungen, wenn ein KI-Client das Risiko zusammenfassen muss.

Richtlinienbeispiel

Setzen Sie SSH_MCP_POLICY_FILE=/etc/mcp-ssh-tool/policy.json:

{
 "mode": "enforce",
 "allowRootLogin": false,
 "allowRawSudo": false,
 "allowDestructiveCommands": false,
 "allowDestructiveFs": false,
 "allowedHosts": ["^prod-[0-9]+\\.example\\.com$"],
 "commandAllow": ["^(uname|df|uptime|systemctl status)\\b"],
 "commandDeny": ["rm\\s+-rf\\s+/", "shutdown", "reboot"],
 "pathAllowPrefixes": ["/tmp", "/var/tmp", "/home/deploy"],
 "pathDenyPrefixes": ["/etc/shadow", "/etc/sudoers", "/boot", "/dev", "/proc"]
}

Einfache Bereitstellungen können Umgebungsvariablen-Überschreibungen wie SSH_MCP_ALLOW_RAW_SUDO=true, SSH_MCP_ALLOWED_HOSTS=prod-1.example.com oder SSH_MCP_PATH_ALLOW_PREFIXES=/tmp,/home/deploy verwenden.

Kern-Tools

  • ssh_open_session, ssh_close_session, ssh_list_sessions, ssh_ping, ssh_list_configured_hosts, ssh_resolve_host

  • proc_exec, proc_sudo, proc_exec_stream

  • fs_read, fs_write, fs_list, fs_stat, fs_mkdirp, fs_rmrf, fs_rename

  • file_upload, file_download

  • ensure_package, ensure_service, ensure_lines_in_file, patch_apply

  • os_detect, get_metrics

  • tunnel_local_forward, tunnel_remote_forward, tunnel_list, tunnel_close

Alle Tools geben Text sowie stabiles structuredContent zurück. Tool-Metadaten enthalten Titel, Ausgabeschemata und Annotationen, die schreibgeschütztes, destruktives, idempotentes und externes Nebenwirkungsverhalten offenlegen.

Ressourcen und Prompts

Ressourcen:

  • mcp-ssh-tool://sessions/active

  • mcp-ssh-tool://metrics/json

  • mcp-ssh-tool://metrics/prometheus

  • mcp-ssh-tool://ssh-config/hosts

  • mcp-ssh-tool://policy/effective

  • mcp-ssh-tool://audit/recent

  • mcp-ssh-tool://capabilities/support-matrix

Prompts:

  • safe-connect

  • inspect-host-capabilities

  • plan-mutation

  • managed-config-change

Support-Matrix

Ziel

Status

Linux

Volle Unterstützung.

macOS/BSD

Sitzung, Prozess, FS und Übertragung unterstützt; Paket-/Dienst-Helfer nur dort, wo getestet.

BusyBox/dropbear

Experimentell für Sitzung, Prozess und grundlegende FS-Fallbacks.

Windows SSH-Ziele

Experimentell für Sitzung, Prozess, FS und Übertragung; kein proc_sudo oder ensure_*.

Client-Beispiele

ChatGPT oder Claude Desktop:

{
 "mcpServers": {
 "ssh-mcp": {
 "command": "npx",
 "args": ["-y", "mcp-ssh-tool"]
 }
 }
}

VS Code oder Cursor:

{
 "servers": {
 "ssh-mcp": {
 "type": "stdio",
 "command": "mcp-ssh-tool"
 }
 }
}

MCP Inspector über HTTP:

printf '%s' 'super-secret-token' > .mcp-token
mcp-ssh-tool --transport=http --host 127.0.0.1 --port 3000 --bearer-token-file .mcp-token

Konfiguration

Wichtige Umgebungsvariablen:

Variable

Standard

Zweck

SSH_MCP_POLICY_FILE

nicht gesetzt

Kanonische JSON-Richtlinienquelle.

SSH_MCP_HOST_KEY_POLICY

strict

strict, accept-new oder insecure.

SSH_MCP_KNOWN_HOSTS_PATH

~/.ssh/known_hosts

Known-hosts-Datei für strenge Überprüfung.

SSH_MCP_MAX_FILE_SIZE

10485760

Maximale Bytes für fs_read.

SSH_MCP_COMMAND_TIMEOUT

30000

Standard-Befehls-Timeout.

SSH_MCP_HTTP_HOST

127.0.0.1

Streamable HTTP-Bindungs-Host.

SSH_MCP_HTTP_PORT / PORT

3000

Streamable HTTP-Port.

SSH_MCP_HTTP_BEARER_TOKEN_FILE

nicht gesetzt

Erforderlich für HTTP außerhalb des Loopbacks.

SSH_MCP_HTTP_ALLOWED_ORIGINS

Loopback-Ursprünge

Kommagetrennte erlaubte Ursprünge.

Die veralteten Aliase STRICT_HOST_KEY_CHECKING und SSH_MCP_STRICT_HOST_KEY werden für einen v2-Kompatibilitätszyklus noch akzeptiert. Bevorzugen Sie SSH_MCP_HOST_KEY_POLICY.

Entwicklung

Verwenden Sie die exakte lokale Laufzeit aus .nvmrc / .node-version und führen Sie dann aus:

npm ci
npm run check

Live-SSH-Suiten sind optional:

RUN_SSH_INTEGRATION=1 npm run test:integration
RUN_SSH_E2E=1 npm run test:e2e

Lokale Qualitäts-Gates sind geschichtet:

  • pre-commit: Formatiert gestagte Dateien und lintet nur gestagtes TypeScript

  • pre-push: Führt npm run check:push aus

  • task hooks: Führt verfolgte npm-Hooks plus .pre-commit-config.yaml-Hooks aus, wenn pre-commit installiert ist

  • manuelle/vollständige Parität: task ci oder npm run check

CI/CD-Eigentümerschaft

Das persönliche Repository https://github.com/oaslananka/mcp-ssh-tool ist das kanonische Quell-Repository. Automatische CI/CD, Supply-Chain-Sicherheitsprüfungen, vertrauenswürdiges npm-Publishing und MCP-Registry-Publishing laufen nur von https://github.com/oaslananka-lab/mcp-ssh-tool. Das Organisations-Repository zieht aus der kanonischen Quelle; Push- und Publish-Workflows des persönlichen Repositorys sind deaktiviert.

Die repository.url des npm-Pakets zeigt absichtlich auf das Organisations-Repository, damit die npm-Provenienz überprüfen kann, ob das veröffentlichte Artefakt aus demselben GitHub-Actions-Repository stammt, das es erstellt hat.

Siehe docs/ci-cd-topology.md für Organisations-Sync, Release-Flow und manuelle Fallback-Anleitungen.

Dokumentation

Lizenz

MIT-Lizenz. Siehe LICENSE.

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/oaslananka/mcp-ssh-tool'

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