CMDOP Machine Care について
CMDOP Machine Care は、登録済み CMDOP マシン群の一覧、健康状態、限定的な診断、ストレージ使用量を公開する読み取り専用 MCP サーバーです。シェル実行や任意ファイルの読み取り、マシンへの処理委任は行わず、ホストの cmdop CLI が保持する認証情報を利用します。
主な機能
- 01登録済みマシンの一覧表示
- 02マシンの状態と検出事項の取得
- 03プロセスと起動項目の限定的な診断
- 04cmdop 管理ストレージ使用量の確認
- 05シェルを実行しない読み取り専用操作
活用シーン
- 01登録済みマシン群のオンライン状況を確認
- 02オフラインマシンの状態情報を確認
- 03稼働中マシンのプロセスと起動項目を診断
- 04cmdop 管理ストレージの使用量を集計
MCP 対応
stdio MCP サーバーとして、マシン一覧、状態、限定診断、ストレージ照会のための読み取り専用ツールを 4 つ公開します。登録済み cmdop CLI がホストの OS キーチェーンに保存した認証情報を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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
すでに登録済みの cmdop マシンフリートを対象に、フリートの一覧、マシンの状態、 範囲を限定したライブ診断1件、cmdop が管理するストレージ使用量を提供する、読み取り専用ツール4つを備えた小規模な読み取り専用の Model Context Protocol (MCP)stdio サーバーです。
公開先: io.github.commandoperator/cmdop-care
· 現在のバージョン: v0.1.2 · ライセンス: Apache-2.0
すでにマシンで cmdop をお使いの場合、これは保守的な MCP の導入窓口です。MCP 対応アシスタントを接続して、シェルや任意のファイル読み取り、範囲を限定しないマシンへの処理委任を公開することなく、フリートの状態を読み取れます。ホストはすでに登録されている必要があり、認証情報はホストのオペレーティングシステムのキーチェーンに保管されます。より広範なマシン操作には、メインの 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 join <join-key>の実行時にcmdopCLI が OS キーチェーン(macOS Keychain/Linux Secret Service/Windows Credential Manager)に保存したリレーの OAuth/登録用 Bearer トークン。care_diagnoseのみを対象に、cmdopCLI が同じキーチェーンにすでにキャッシュしている、マシンごとの接続 PIN(たとえば、以前にcmdop connectを実行したときのもの)。
トークンが見つからない場合、すべてのツールは黙って失敗したり応答しなくなったりするのではなく、「未登録」であることを明確に示します。
この「ホストのキーチェーンを介した認証情報の引き継ぎ」モデルは、製品の認証情報を扱う経路を二重化して脆弱にすることを避けるため、意図的に採用されました(このアーティファクトのソースリポジトリにある security-architecture-2026-07-18.md を参照)。このバイナリは完全に単独で動作する ID ではなく、ホストにすでにインストールされている CLI と同じ登録を利用します。
4つのツール
list_machines
登録済みフリートのマシン一覧を取得します。
- 入力: なし。
- 出力:
{host, online, os}の配列。マシン ID/UUID は一切返されません。これは意図的な秘匿化の判断であり、内部リレー識別子は表示時に省略するだけでなく、シリアル化の前に破棄されます。
care_status
登録済みの1台のマシンについて、永続化された Machine Care のプロジェクション(事実、検出事項、カバレッジ、鮮度)を読み取ります。
- 入力:
machine(文字列、必須)—list_machinesが返す表示名と完全に一致する値。 - 出力: 語彙を固定したコード、カバレッジフラグ、理由コードを含む集約済みの事実/検出事項。生のパス、コマンド、環境変数、マシンの識別情報は含まれません。
- 読み取り専用です。対象のマシンがオフラインでも動作します(ライブの往復通信ではなく、リレーに保存されたプロジェクションを読み取ります)。
care_diagnose
稼働中の登録済みマシンに対して、範囲を限定した型付きのプロセス/スタートアップ診断を 1 回実行します。「このマシンの動作が遅いのはなぜか?」を調べるときに便利です。
- 入力:
machine(文字列、必須)。 - 出力: プロセスとスタートアップ項目の情報を範囲限定で取得したスナップショット。
このツールを使用する前に、以下の 2 つの開示事項をお読みください。
- PIN の転送。 対象マシンで接続 PIN が必要な場合、このホストのローカル OS キーリングにキャッシュされた PIN が自動的に転送されます。ツールの引数として PIN を渡すことはできず、その必要もありません。マシンで PIN が必要にもかかわらず、このホストにキャッシュされていない場合、呼び出しは権限エラーでフェイルクローズし、PIN なしで処理が続行されることはありません。
- プロセスデータは LLM プロバイダーに送信されます。 レスポンスには、対象マシンのOS の生プロセス ID(PID)とプロセス名が含まれます。つまり、使用している MCP クライアントと LLM が Claude Code、Codex、その他の MCP 対応アシスタントのいずれであっても、そのマシンで実行中のプロセス名が表示されます。これは、レビュー済みの診断仕様に意図的に含まれている内容です(範囲は限定され、プロセスエントリは最大 20 件で、コマンドライン、引数、環境変数、ファイルパスは含まれません)。ただし、プロセス一覧を外部の LLM プロバイダーに見せたくないマシンでこのツールを有効にする前に、この点をご確認ください。
シェルコマンドを実行することはなく、PID やコマンド引数も受け付けず、変更も行いません。
care_storage_inventory
登録済みマシン 1 台について、検証済みの最新の cmdop 所有ストレージインベントリを読み取ります。
- 入力:
machine(文字列、必須)。 - 出力: クローズドな語彙で定義されたストレージソース(例:
cmdop_logs、devcache_go_build)ごとの合計バイト数。パス引数は受け付けず、削除も行いません。
すべてのツール呼び出しで行われないこと
- シェルコマンド、ファイルパス、生の 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 対応アシスタント)に指定してください。
最小限の MCP JSON 設定や最初のプロンプトなど、AI クライアントのセットアップに関するメモは、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 形式 |
このリポジトリへの貢献
このリポジトリでは、ステージ済みの環境ファイル、秘密鍵、API トークンと思われる文字列を拒否する、追跡対象の pre-commit フックが有効になっています。クローンした後、次を実行してください。
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。