SSH Fleet

Registre officiel Autres

Curated ssh_probe diagnostics and single-host ssh_exec over an allowlisted SSH fleet.

Que pouvez-vous faire avec SSH Fleet ?

  • ssh_probe(tags, check) — curated read-only diagnostics on every host
  • ssh_exec(host, command) — one arbitrary non-interactive command on ONE

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

OCI package ghcr.io/inhuman/mcp-ssh-fleet:0.1.5
Claude Code
claude mcp add ssh-fleet -e 'SSH_FLEET_TRANSPORT=stdio' -e 'SSH_FLEET_CMD_TIMEOUT_SECONDS=20' -e 'SSH_FLEET_OUTPUT_CAP_BYTES=8192' -e 'SSH_FLEET_PROBE_CONCURRENCY=8' -e 'SSH_FLEET_PROBE_MAX_HOSTS=50' -e 'SSH_FLEET_AUTH_TOKEN=<your ssh_fleet_auth_token>' -- docker run -i --rm ghcr.io/inhuman/mcp-ssh-fleet:0.1.5
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "ssh-fleet": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/inhuman/mcp-ssh-fleet:0.1.5"
            ],
            "env": {
                "SSH_FLEET_TRANSPORT": "stdio",
                "SSH_FLEET_CMD_TIMEOUT_SECONDS": "20",
                "SSH_FLEET_OUTPUT_CAP_BYTES": "8192",
                "SSH_FLEET_PROBE_CONCURRENCY": "8",
                "SSH_FLEET_PROBE_MAX_HOSTS": "50",
                "SSH_FLEET_AUTH_TOKEN": "<your ssh_fleet_auth_token>"
            }
        }
    }
}

Variables d'environnement

  • SSH_FLEET_TRANSPORT MCP transport. Must be 'stdio' for direct docker/stdio use.
  • SSH_FLEET_CMD_TIMEOUT_SECONDS Per-host command timeout in seconds (1..600).
  • SSH_FLEET_OUTPUT_CAP_BYTES Cap on output bytes per host section (>=256).
  • SSH_FLEET_PROBE_CONCURRENCY Parallelism for ssh_probe.
  • SSH_FLEET_PROBE_MAX_HOSTS Safety cap on the number of hosts in one probe.
  • SSH_FLEET_AUTH_TOKEN secret Optional X-MCP-AUTH bearer token (only used by the http/sse transports).

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. mcp-ssh-fleet
  2. Tools
  3. Configuration (env)
  4. Quickstart (docker, stdio)
  5. Connecting an MCP client (http/sse)
  6. Development

mcp-ssh-fleet

English | Русский

MCP server that gives an agent two tools over SSH to a fleet of hosts outside Kubernetes. The SSH key is a mounted secret (never enters model context); the inventory is a fail-closed allowlist.

Tools

  • ssh_probe(tags, check) — curated read-only diagnostics on every host carrying the given tags (AND semantics, like GitLab runner tags). check is one of a built-in set: uptime, disk, mem, failed, logs. Arbitrary commands cannot be passed. Class: read-only.
  • ssh_exec(host, command) — one arbitrary non-interactive command on ONE inventory host (by name or address; hosts outside the inventory are refused). Class: write-external: the server executes the command, while access gating (approval/RBAC) belongs to the MCP client.

Both: output size cap, per-host timeout, TOFU host-key check (fingerprint in logs), output as one section per host.

Configuration (env)

VariableDefaultMeaning
SSH_FLEET_TRANSPORThttphttp (StreamableHTTP, endpoint /mcp) \sse \stdio
SSH_FLEET_ADDR:8080listen address for http/sse
SSH_FLEET_AUTH_TOKEN—optional X-MCP-AUTH token
SSH_FLEET_INVENTORY_PATH/etc/ssh-fleet/inventory.yamlpath to the inventory (configmap)
SSH_FLEET_KEY_PATH/etc/ssh-fleet/id_ed25519path to the private key (secret)
SSH_FLEET_OUTPUT_CAP_BYTES8192output cap per section
SSH_FLEET_CMD_TIMEOUT_SECONDS20per-host timeout
SSH_FLEET_PROBE_CONCURRENCY8probe parallelism pool
SSH_FLEET_PROBE_MAX_HOSTS50safety cap on hosts per probe

Inventory format — see deploy/inventory.example.yaml.

Quickstart (docker, stdio)

docker run -i --rm \
  -v /path/to/inventory.yaml:/etc/ssh-fleet/inventory.yaml:ro \
  -v /path/to/id_ed25519:/etc/ssh-fleet/id_ed25519:ro \
  -e SSH_FLEET_TRANSPORT=stdio \
  ghcr.io/inhuman/mcp-ssh-fleet:latest

This is the shape MCP clients use when installing from the MCP Registry (io.github.inhuman/mcp-ssh-fleet).

Connecting an MCP client (http/sse)

By default the server speaks StreamableHTTP; register it as a regular HTTP MCP server with endpoint /mcp (URL like http://<host>:8080/mcp). Both tools become available to the client.

Client-side security recommendations:

  • ssh_probe is read-only (curated checks only) and can be granted broadly.
  • ssh_exec is arbitrary execution (write-external). Gate its access on the client side (approval / RBAC / user allowlist) — the server merely executes a command on an inventory host; it does not decide access policy.

Development

make test        # unit tests + e2e against a real in-process SSH server
make vet
make vulncheck
make build
make docker

Release: tag vX.Y.Z → GitHub Actions builds and publishes a multi-arch image to ghcr.io/inhuman/mcp-ssh-fleet.

Questions fréquentes

Qu'est-ce que SSH Fleet ?

Curated ssh_probe diagnostics and single-host ssh_exec over an allowlisted SSH fleet.

Comment installer SSH Fleet ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add ssh-fleet -e 'SSH_FLEET_TRANSPORT=stdio' -e 'SSH_FLEET_CMD_TIMEOUT_SECONDS=20' -e 'SSH_FLEET_OUTPUT_CAP_BYTES=8192' -e 'SSH_FLEET_PROBE_CONCURRENCY=8' -e 'SSH_FLEET_PROBE_MAX_HOSTS=50' -e 'SSH_FLEET_AUTH_TOKEN=<your ssh_fleet_auth_token>' -- docker run -i --rm ghcr.io/inhuman/mcp-ssh-fleet:0.1.5. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour SSH Fleet ?

Oui. Il attend SSH_FLEET_AUTH_TOKEN, à renseigner dans sa configuration.

SSH Fleet est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient SSH Fleet ?

Il est publié par inhuman. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.