Hostpanel

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.0更新于 Nov 3, 2026

通过两个操作路由工具执行主机、Docker、Compose、SSH、日志和 ZFS 操作。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Host, Docker, Compose, SSH, logs and ZFS operations via two action-router tools.

已验证STDIO仅桌面云端与基础设施

概览

Hostpanel 的本地 MCP 服务;无需登录;STDIO。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

安装

在 SourceWeft 中

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

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

其他 MCP 客户端

参照 仓库 中的启动说明。

README

hostpanel

hostpanel looks after a single host: Docker daemon and container state, Compose projects, basic host information, file search, ZFS pools, and journal logs. It exposes all of that through two action-router tools, flux and scout, and the same two routers on the command line. One binary serves both faces.

This is a labelled core subset of a larger documented surface. The implemented actions are listed below; every other documented action is omitted from this subset and is named in the build report and in the spec fixture, not silently dropped.

Only the local host is served. A host parameter, when supplied, must be local; remote SSH targets are not part of this subset. Processes are started with an argument array only — no command string ever goes through a shell.

Install

bash
npx @reneturcios/hostpanel help

Or run the container image:

bash
docker run -i ghcr.io/cloudcorprecords/hostpanel

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead, and mount the Docker socket if you want the flux actions to reach a real daemon.

CLI

bash
hostpanel flux docker infohostpanel flux docker versionhostpanel flux container list --params '{"state":"running"}'hostpanel flux container inspect --params '{"container_id":"abc123"}'hostpanel flux host infohostpanel flux compose list
hostpanel scout nodeshostpanel scout exec --params '{"command":"hostname"}'hostpanel scout exec --params '{"command":"cat","args":["/etc/hostname"]}'hostpanel scout find --params '{"path":"/srv","pattern":"*.log","limit":20}'hostpanel scout zfs poolshostpanel scout logs journal --params '{"unit":"docker","lines":50}'
hostpanel helphostpanel --version

Successful calls print a JSON object with the argv that ran and its captured stdout, stderr, and exitCode; nodes and the help actions print their local answers directly. Exit codes: 0 on success, 1 when a call fails (including a refused command or a non-zero child exit), 2 for usage errors.

MCP server

bash
npx -y @reneturcios/hostpanel mcp

MCP client configuration:

json
{  "mcpServers": {    "hostpanel": {      "command": "npx",      "args": ["-y", "@reneturcios/hostpanel", "mcp"]    }  }}

Tools

Both tools take a required action, an optional subaction, and an optional params object. Parameter names inside params follow the original per-action tables (host, container_id, state, name_filter, image_filter, label_filter, path, pattern, depth, limit, command, args, pool, lines, unit, priority, since, until, grep).

ToolActionSubactionWhat it does
fluxdockerinfoDocker daemon information (docker info).
fluxdockerversionDocker version (docker version).
fluxcontainerlistList containers (docker ps), with optional state/name/image/label filters.
fluxcontainerinspectInspect one container (docker inspect); requires container_id.
fluxhostinfoOS, kernel, and architecture (uname -a).
fluxcomposelistList Compose projects (docker compose ls).
fluxhelp—The flux action reference, answered locally.
scoutnodes—The configured hosts: just local in this subset.
scoutexec—Run one allowlisted read command; requires command, optional args.
scoutfind—Find files by glob (find <path> -name <pattern>); requires path and pattern.
scoutzfspoolsList ZFS pools (zpool list), optional pool filter.
scoutlogsjournalRead the systemd journal (journalctl), with optional lines/unit/priority/since/until/grep.
scouthelp—The scout action reference, answered locally.

The exec allowlist

scout exec runs read-only inspection commands only. The full allowlist is 18 commands: cat, head, tail, grep, rg, ls, tree, wc, uniq, diff, stat, file, du, df, pwd, hostname, uptime, and whoami. Anything else — including git, shells, interpreters, and mutating tools — is refused before any process starts. The command must be a single name; arguments travel separately in the args array and are passed as argv, never interpolated into a shell string.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner over test/*.test.ts, fake executor onlynpm run dev     # run the CLI from source via tsx

Tests inject a fake executor, so the suite records the argv each action would run and proves refused commands never reach the executor. No Docker daemon, ZFS pool, or journal is needed — and no live host result is claimed by the test suite.

License

MIT — see LICENSE.

来源:README.md,提交 106a841

工具

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

版本历史

1
  1. v0.1.0最新Nov 3, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

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

  • 已声明认证方式10 分

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

  • 已列出工具15 分

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

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