关于 CMDOP Machine Care
CMDOP Machine Care 是面向已注册 CMDOP 机器群的只读 MCP 服务,提供设备列表、健康状态、有限诊断和存储用量信息。它不开放 Shell、任意文件读取或机器操作,并依赖主机上已有的 cmdop CLI 凭据。
主要功能
- 01查看已注册机器列表
- 02读取机器健康状态与发现项
- 03执行有限的进程和启动项诊断
- 04查看 CMDOP 管理的存储用量
- 05只读操作且不执行 Shell
适用场景
- 01检查已注册机器群的在线状态
- 02查看离线机器的健康投影信息
- 03诊断在线机器的进程与启动项
- 04汇总机器上的 CMDOP 存储用量
MCP 相关
该 stdio MCP 服务向客户端提供 4 个只读工具,用于查询机器群、健康状态、有限诊断和存储用量。它使用主机已注册 cmdop CLI 存入操作系统密钥环的凭据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/commandoperator/cmdop-care:v0.1.2本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/commandoperator/cmdop-care:v0.1.2stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
cmdop-care
一个小型只读 Model Context Protocol (MCP)stdio 服务,可通过已加入 cmdop 机器群公开 4 个只读工具:查看机器列表、机器健康状况、 一项范围有限的实时诊断,以及 cmdop 管理的存储用量。
已发布: io.github.commandoperator/cmdop-care
· 当前版本: v0.1.2 · 许可证: Apache-2.0
如果你已经在某台机器上使用 cmdop,这是一个保守的 MCP 入门选择:将支持 MCP 的助手连接起来,以读取机器群健康状况,同时不暴露 shell、任意文件读取或开放式机器委派。主机必须已经加入;凭据保留在主机操作系统密钥环中。若要执行更广泛的机器操作,请改用主 cmdop MCP 服务。
这不是完整的 cmdop MCP 功能集。它有意省略了
ask_machine、run_command、read_file 和 list_dir——也就是所有会执行命令、读取任意文件或向另一台机器委派开放式任务的工具。如果你需要这些工具,请使用主 cmdop CLI 自带的 MCP 服务(cmdop mcp stdio);这是一个独立、功能更广泛的产品集成接口,有自己的审核要求。创建 cmdop-care 的目的,就是为官方 MCP Registry 提供一个范围更窄、更安全、可发布的子集。
要求:主机上已加入的 cmdop CLI
**cmdop-care 要求主机已通过主 cmdop CLI 加入。**它本身不实现加入流程,也不会将中继令牌作为主要凭据,通过环境变量或挂载的密钥接收。启动时,它会读取:
cmdopCLI 在你运行cmdop join <join-key>时已存入操作系统密钥环的中继 OAuth/加入 Bearer 令牌(macOS Keychain / Linux Secret Service / Windows Credential Manager);cmdopCLI 已缓存到同一密钥环中的各机器连接 PIN(例如,先前运行cmdop connect时缓存的 PIN),但仅供care_diagnose使用。
如果找不到令牌,每个工具都会返回清晰的“尚未加入”提示,而不是静默失败或一直挂起。
这种“主机密钥环透传”模式是经过审慎考虑的设计决定(参见此项目源代码仓库中的 security-architecture-2026-07-18.md),目的是避免为产品引入第二种更弱的凭据处理方式——此二进制文件并非完全独立的身份;它沿用主机上已安装 CLI 的同一加入状态。
这 4 个工具
list_machines
列出已加入机器群中的机器。
- 输入: 无。
- 输出:
{host, online, os}数组。绝不会返回机器 ID/UUID——这是有意采用的脱敏设计(内部中继标识符会在序列化前被丢弃,而不只是从呈现结果中省略)。
care_status
读取一台已加入机器的持久化 Machine Care 投影(事实、发现项、覆盖范围、新鲜度)。
- 输入:
machine(字符串,必填)——来自list_machines的精确显示名称。 - 输出: 带有限词汇代码的汇总事实/发现项、覆盖标记和原因代码。不包含原始路径、命令、环境变量或机器身份信息。
- 只读;即使目标机器处于离线状态也能使用(它读取的是中继存储的投影,而不是实时往返数据)。
care_diagnose
在一台正在运行且已登记的机器上执行一次范围受限、类型明确的进程/启动项诊断——适用于排查“这台机器为什么这么慢?”
- 输入:
machine(字符串,必填)。 - 输出: 范围受限的进程和启动项信息快照。
使用此工具前,请先阅读以下两项披露:
- 转发 PIN。 如果目标机器需要连接 PIN,则会自动从此主机本地 OS 密钥环中的 PIN 缓存转发。你无法也不需要将 PIN 作为工具参数传入。如果机器需要 PIN,而此主机上没有缓存,则调用会因权限错误而安全失败——绝不会在没有 PIN 的情况下继续。
- 进程数据会发送给你的大模型提供商。 响应包含目标机器上的原始 OS 进程 ID(PID)和进程名称。这意味着,无论你使用的是哪种 MCP 客户端和大模型——Claude Code、Codex,还是其他任何支持 MCP 的助手——都会看到该机器上正在运行的进程名称。这是经过审查的诊断约定中有意为之的一部分(范围有限:最多 20 个进程条目,不包含命令行、参数、环境变量或文件路径),但如果你不希望外部大模型提供商看到某台机器的进程列表,请在启用此工具前了解这一点。
此工具绝不执行 shell 命令,不接受 PID 或命令参数,也不会进行任何更改。
care_storage_inventory
读取一台已登记机器上最新的、由 cmdop 管理且已验证的存储清单。
- 输入:
machine(字符串,必填)。 - 输出: 按封闭词汇表中的存储来源汇总的字节总量(例如
cmdop_logs、devcache_go_build)。不接受路径参数,也不会删除任何内容。
每次工具调用都不会做什么
- 工具均不接受 shell 命令、文件路径或原始 PID 作为参数。
- 全部 4 个工具中唯一的自由格式输入是
machine字符串;它仅用作不透明的查找键,由服务端根据你自己的机群进行解析——绝不会插入路径、命令或查询中。 - 每次调用都会采用独立于中继自身传输默认设置的 15 秒超时,并受较低的单工具调用频率限制,以防卡住或遭滥用的后端挂起进程或成为高流量数据外传通道。
构建和运行
go build -o cmdop-care .
./cmdop-care
或者通过 Docker 运行(解析并固定基础镜像摘要后——参见 Dockerfile 中的 <PIN-BEFORE-BUILD> 注释):
docker build -t cmdop-care:0.1.2 .
docker run --rm -i cmdop-care:0.1.2
该服务仅通过 stdio 使用 MCP 通信——没有监听端口。像配置其他任何 stdio MCP 服务一样,将你的 MCP 客户端(Claude Code、Codex,或其他任何支持 MCP 的助手)指向构建好的二进制文件或镜像。
有关 AI 客户端的配置说明,包括最简 MCP JSON 配置和首条提示词,请参阅 llms-install.md。
如果市场提交要求提供正方形徽标图片,请使用 assets/cmdop-care-400.png 中的标准 400×400 PNG。
发布新版本
维护者:请参阅 RELEASE.md——简而言之,运行 make publish,始终手动执行,绝不由任何 CI 或 cmdop_go 自身的发布触发。
中继地址
默认情况下,cmdop-care 会通过回环地址(127.0.0.1:63142)连接本地内嵌的 cmdop 中继。对于高级可自托管配置,可设置 CMDOP_CARE_RELAY_ADDR 覆盖连接目标。这只是传输地址——绝不是凭据。
兼容性
cmdop-care 版本 | 兼容的 cmdop 中继线路协议 |
|---|---|
v0.1.2 | 截至 2026-07-18 的 AiAgentService.GetMachineCare / RunMachineCareDiagnostic / roster-list 形状 |
为此代码库贡献
此代码库启用了受版本控制的 pre-commit 钩子,用于拒绝暂存的环境文件、私钥和疑似 API 令牌。克隆后,运行:
git config core.hooksPath .githooks
安全
本项目在实施前经过了明确的威胁模型审查和代码审计(详见 Cmdop 组织内部的
security-architecture-2026-07-18.md 和 code-audit-2026-07-18.md,它们在本仓库的交付跟踪中
有所引用)。如需私下报告安全问题,请发送邮件至
[email protected]——有关应包含的信息和后续流程,请参阅 SECURITY.md。
许可证
Apache-2.0——详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。