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 --versionOder global installieren:
npm install -g mcp-ssh-toolFü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+oder24.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 |
| Lokale Desktop-Clients wie ChatGPT, Claude Desktop, VS Code, Cursor oder Codex. |
Streamable HTTP |
| Remote-MCP-Clients, Reverse-Proxys oder Inspector-Sitzungen. |
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 |
|
Root-SSH-Login | verweigert |
Rohes | verweigert, sofern nicht |
Destruktive Befehle | verweigert, sofern nicht |
Destruktive FS-Vorgänge | nur unter Richtlinien-Präfixen erlaubt, sonst verweigert |
HTTP-Bindung |
|
Legacy SSE | deaktiviert |
Dateilesevorgänge | größenbegrenzt durch |
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_hostproc_exec,proc_sudo,proc_exec_streamfs_read,fs_write,fs_list,fs_stat,fs_mkdirp,fs_rmrf,fs_renamefile_upload,file_downloadensure_package,ensure_service,ensure_lines_in_file,patch_applyos_detect,get_metricstunnel_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/activemcp-ssh-tool://metrics/jsonmcp-ssh-tool://metrics/prometheusmcp-ssh-tool://ssh-config/hostsmcp-ssh-tool://policy/effectivemcp-ssh-tool://audit/recentmcp-ssh-tool://capabilities/support-matrix
Prompts:
safe-connectinspect-host-capabilitiesplan-mutationmanaged-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 |
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-tokenKonfiguration
Wichtige Umgebungsvariablen:
Variable | Standard | Zweck |
| nicht gesetzt | Kanonische JSON-Richtlinienquelle. |
|
|
|
|
| Known-hosts-Datei für strenge Überprüfung. |
|
| Maximale Bytes für |
|
| Standard-Befehls-Timeout. |
|
| Streamable HTTP-Bindungs-Host. |
|
| Streamable HTTP-Port. |
| nicht gesetzt | Erforderlich für HTTP außerhalb des Loopbacks. |
| 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 checkLive-SSH-Suiten sind optional:
RUN_SSH_INTEGRATION=1 npm run test:integration
RUN_SSH_E2E=1 npm run test:e2eLokale Qualitäts-Gates sind geschichtet:
pre-commit: Formatiert gestagte Dateien und lintet nur gestagtes TypeScriptpre-push: Führtnpm run check:pushaustask hooks: Führt verfolgte npm-Hooks plus.pre-commit-config.yaml-Hooks aus, wennpre-commitinstalliert istmanuelle/vollständige Parität:
task ciodernpm 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.
Maintenance
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
