mcpField
C
CMDOP Machine Care

CMDOP Machine Care

本地服务
cmdop.com云与基础设施011 周前更新

关于 CMDOP Machine Care

CMDOP Machine Care 是面向已注册 CMDOP 机器群的只读 MCP 服务,提供设备列表、健康状态、有限诊断和存储用量信息。它不开放 Shell、任意文件读取或机器操作,并依赖主机上已有的 cmdop CLI 凭据。

主要功能

  1. 01查看已注册机器列表
  2. 02读取机器健康状态与发现项
  3. 03执行有限的进程和启动项诊断
  4. 04查看 CMDOP 管理的存储用量
  5. 05只读操作且不执行 Shell

适用场景

  1. 01检查已注册机器群的在线状态
  2. 02查看离线机器的健康投影信息
  3. 03诊断在线机器的进程与启动项
  4. 04汇总机器上的 CMDOP 存储用量

MCP 相关

该 stdio MCP 服务向客户端提供 4 个只读工具,用于查询机器群、健康状态、有限诊断和存储用量。它使用主机已注册 cmdop CLI 存入操作系统密钥环的凭据。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"commandoperator-cmdop-care": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/commandoperator/cmdop-care:v0.1.2"
]
}
}
}
启动命令docker run -i --rm ghcr.io/commandoperator/cmdop-care:v0.1.2

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

安装包
ocighcr.io/commandoperator/cmdop-care:v0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 加入。**它本身不实现加入流程,也不会将中继令牌作为主要凭据,通过环境变量或挂载的密钥接收。启动时,它会读取:

  • cmdop CLI 在你运行 cmdop join <join-key> 时已存入操作系统密钥环的中继 OAuth/加入 Bearer 令牌(macOS Keychain / Linux Secret Service / Windows Credential Manager);
  • cmdop CLI 已缓存到同一密钥环中的各机器连接 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(字符串,必填)。
  • 输出: 范围受限的进程和启动项信息快照。

使用此工具前,请先阅读以下两项披露:

  1. 转发 PIN。 如果目标机器需要连接 PIN,则会自动从此主机本地 OS 密钥环中的 PIN 缓存转发。你无法也不需要将 PIN 作为工具参数传入。如果机器需要 PIN,而此主机上没有缓存,则调用会因权限错误而安全失败——绝不会在没有 PIN 的情况下继续。
  2. 进程数据会发送给你的大模型提供商。 响应包含目标机器上的原始 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。

评论

支持 Markdown

第一次接触 MCP?

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

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