SSH Fleet

io.github.inhuman由 GitHub 账号 inhuman 发布v0.1.5更新于 Oct 24, 2026

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

概览

AI 生成的概览

让助手在允许清单内的 SSH 主机群上运行预设的只读诊断,并在单台清单主机上执行一条任意命令。

可以做什么
提供两个 SSH 工具。ssh_probe(tags, check) 在带有指定标签的所有主机上运行内置只读检查(uptime、disk、mem、failed、logs),标签为 AND 语义,无法传入任意命令。ssh_exec(host, command) 在单台清单主机上执行一条任意非交互命令,清单外的主机会被拒绝。输出按主机分段并设有上限,带每主机超时和 TOFU 主机密钥校验,指纹会写入日志。
适用场景
适合助手需要对多台带标签主机做例行健康检查,或在已知主机上执行单条定向命令,而不必获得通用 SSH shell 的场景。只读探测可较宽松地授权,ssh_exec 则适合更严格管控的使用。
运行要求
以 stdio 本地进程运行,通常使用 Docker 镜像 ghcr.io/inhuman/mcp-ssh-fleet。需要挂载清单文件(SSH_FLEET_INVENTORY_PATH)和 SSH 私钥(SSH_FLEET_KEY_PATH)。可选设置包括 SSH_FLEET_TRANSPORT、SSH_FLEET_CMD_TIMEOUT_SECONDS、SSH_FLEET_OUTPUT_CAP_BYTES、SSH_FLEET_PROBE_CONCURRENCY 和 SSH_FLEET_PROBE_MAX_HOSTS。需要能访问目标主机的网络。
安装前请注意
ssh_exec 会在清单主机上执行任意命令,属于 write-external;服务器不负责审批或 RBAC,访问控制须在 MCP 客户端完成。SSH 私钥从 SSH_FLEET_KEY_PATH 读取,应以只读方式挂载。SSH_FLEET_AUTH_TOKEN 是仅用于 http/sse 传输的可选 bearer 令牌。主机密钥校验为 TOFU,首次连接不会预先固定。

安装

在 SourceWeft 中

  1. 打开 控制台中的 SSH Fleet,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

mcp-ssh-fleet

English | Русский

[Version] [MCP Registry] [Container] [Build] [Go Version] [Go Report Card] [License: MIT] [Issues] [Last Commit]

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)

sh
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

sh
make test        # unit tests + e2e against a real in-process SSH servermake vetmake vulncheckmake buildmake docker

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

来源:README.md,提交 4536421

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.5最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分