Hostpanel

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 3, 2026

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

VerifiedSTDIODesktop onlyCloud & Infrastructure

Overview

Hostpanel's local MCP server; no sign-in required; STDIO.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

  1. Open Hostpanel in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

Source: README.md at commit 106a841

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestNov 3, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts