mcpField
H
hostpanel

hostpanel

本地服务
github.com/CloudCorpRecords云与基础设施01 周前更新

关于 hostpanel

hostpanel 是用于检查和管理单台本地主机的命令行工具和 MCP 服务。两个动作路由涵盖 Docker 与 Compose 状态、主机信息、只读命令、文件搜索、ZFS 池及日志;不支持远程 SSH 目标。

主要功能

  1. 01检查 Docker 守护进程和容器
  2. 02列出 Compose 项目
  3. 03获取主机和操作系统信息
  4. 04执行允许列表中的只读命令
  5. 05按 glob 搜索文件
  6. 06查看 ZFS 池和日志

适用场景

  1. 01检查本地主机上的容器状态
  2. 02查看 Compose 项目和 Docker 详情
  3. 03按路径和模式搜索文件
  4. 04检查 ZFS 池或系统日志

MCP 相关

stdio MCP 服务提供 `flux` 和 `scout` 动作路由,仅支持本地主机操作;`scout exec` 仅允许执行只读命令列表中的命令。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-hostpanel": {
"command": "npx",
"args": [
"-y",
"@reneturcios/hostpanel"
]
}
}
}
启动命令npx -y @reneturcios/hostpanel

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/hostpanel0.1.0
ocighcr.io/cloudcorprecords/hostpanel:0.1.0

工具

2

收录的工具列表 · 更新于 1 周前

参数类型必填说明
actionenum是操作组:docker、container、host、compose 或 help。docker | container | host | compose | help
paramsobject否所选操作的参数对象。
subactionstring否所选操作组中的具体操作。

详细介绍

hostpanel

hostpanel 负责管理单台主机:Docker 守护进程和容器状态、Compose 项目、主机基本信息、文件搜索、ZFS 池以及日志日志。它通过两个 action-router 工具 flux 和 scout 提供所有这些功能,命令行中也提供相同的两个路由器。一个二进制文件同时支持这两种使用方式。

这是更大的文档化功能范围中的一个标注核心子集。下文列出了已实现的操作;其他所有文档中列出的操作均不属于此子集,并会在构建报告和规范测试夹具中注明,而不会被悄悄移除。

仅提供本地主机服务。如果提供 host 参数,则必须为 local;此子集不包含远程 SSH 目标。启动进程时只使用参数数组,不会有任何命令字符串经由 shell 执行。

安装

npx @reneturcios/hostpanel help

或者运行容器镜像:

docker run -i ghcr.io/cloudcorprecords/hostpanel

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI;如果希望 flux 操作访问真实守护进程,请挂载 Docker 套接字。

CLI

hostpanel flux docker info
hostpanel flux docker version
hostpanel flux container list --params '{"state":"running"}'
hostpanel flux container inspect --params '{"container_id":"abc123"}'
hostpanel flux host info
hostpanel flux compose list

hostpanel scout nodes
hostpanel 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 pools
hostpanel scout logs journal --params '{"unit":"docker","lines":50}'

hostpanel help
hostpanel --version

调用成功时会输出一个 JSON 对象,其中包含已执行的 argv 以及捕获的 stdout、stderr 和 exitCode;nodes 和 help 操作会直接输出本地响应。退出码:成功时为 0;调用失败时为 1(包括拒绝执行命令或子进程退出码非零);用法错误时为 2。

MCP 服务

npx -y @reneturcios/hostpanel mcp

MCP 客户端配置:

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

两个工具都需要 action,并可选提供 subaction 和 params 对象。params 中的参数名称遵循各操作原有的参数表(host、container_id、state、name_filter、image_filter、label_filter、path、pattern、depth、limit、command、args、pool、lines、unit、priority、since、until、grep)。

工具操作子操作功能
fluxdockerinfoDocker 守护进程信息(docker info)。
fluxdockerversionDocker 版本(docker version)。
fluxcontainerlist列出容器(docker ps),可选按状态、名称、镜像和标签筛选。
fluxcontainerinspect检查单个容器(docker inspect);需要提供 container_id。
fluxhostinfo操作系统、内核和架构信息(uname -a)。
fluxcomposelist列出 Compose 项目(docker compose ls)。
fluxhelp—在本地返回 flux 操作参考。
scoutnodes—已配置的主机:此子集中仅有 local。
scoutexec—运行一个允许的只读命令;需要提供 command,可选提供 args。
scoutfind—按 glob 查找文件(find <path> -name <pattern>);需要提供 path 和 pattern。
scoutzfspools列出 ZFS 池(zpool list),可选按 pool 筛选。
scoutlogsjournal读取 systemd 日志(journalctl),可选提供 lines、unit、priority、since、until 和 grep。
scouthelp—在本地返回 scout 操作参考。
exec 允许列表

scout exec 只运行只读检查命令。完整允许列表共包含 18 个命令:cat、head、tail、grep、rg、ls、tree、wc、uniq、diff、stat、file、du、df、pwd、hostname、uptime 和 whoami。其他任何命令——包括 git、shell、解释器和具有修改功能的工具——都会在启动任何进程前被拒绝。命令必须是单个名称;参数分别放在 args 数组中传递,并作为 argv 传入,绝不会插入 shell 命令字符串中。

开发

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

测试会注入一个伪执行器,因此测试套件会记录每个操作将运行的 argv,并验证被拒绝的命令绝不会到达执行器。测试不需要 Docker 守护进程、ZFS 池或日志,也不会声称测试套件提供了任何实时主机结果。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。