mc について
mcは、MinIO AIStorやAWS S3などのS3互換オブジェクトストレージ、およびローカルファイルシステムを操作するコマンドラインクライアントです。このスキルでは接続、データ操作、管理コマンドを扱い、機械可読出力と破壊的操作の保護策も説明します。
主な機能
- 01オブジェクトとバケットの確認
- 02ローカルとリモート間のデータ転送
- 03AIStor/MinIOサーバーの管理
- 04スクリプト解析向けNDJSON出力
- 05破壊的コマンドに人の承認を要求
活用シーン
- 01S3互換ストレージのオブジェクト確認や転送
- 02ストレージ操作の結果をスクリプトで解析
- 03MinIOのユーザー、設定、レプリケーションの管理
- 04削除や上書きコマンドを人の確認に回す
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ minio/ skills --skill mcインストール後、Claude Code で/mcを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/admin.mdbuckets.mdconnect.mddata-management.mdobjects.mdoutput.mdtables.md詳細
mc — MinIO AIStor コマンドラインクライアント
mc は、あらゆる S3 互換オブジェクトストア
(MinIO AIStor、MinIO、AWS S3 など)およびローカルファイルシステムと通信する、単一の静的バイナリです。操作面は 2 つあります。S3 API を介してオブジェクトやバケットを移動・確認するデータプレーンコマンド(ls、cp、rm、mirror、…)と、AIStor/MinIO サーバー自体(ユーザー、設定、修復、レプリケーション、階層化)を管理するコントロールプレーンの mc admin コマンドです。別の操作面である mc table は、AIStor Iceberg Tables を管理します。
このスキルでは、エージェントが誤りやすい点や、簡単には見つけられない情報をモデルに教えます。すべてのフラグを再掲するものではありません。各コマンドの正確で最新のフラグを確認するには、mc <command> --help(および mc <command> <subcommand> --help)を実行してください。ヘルプが、そのバージョンに対応した正式な情報です。このスキルではありません。
1. エイリアスが前提条件です — エイリアスなしでは何も動きません
すべてのリモート操作は、名前付きエンドポイントと認証情報を組み合わせたエイリアスを対象にします。まず既存のエイリアスを確認し、必要な場合にのみ作成してください。
mc alias list # what's configured (redacts secret keys)
mc alias list --json # same, machine-readable
エイリアスを指定する方法は 2 つあります。認証情報を mc の設定ファイルに保存せず、ユーザーの設定も変更しないため、エージェントには環境変数を使う方法を推奨します。
# Per-process — the agent's default. Alias name is the MC_HOST_ suffix.
# Inject the value from a secret manager / CI secret rather than a literal.
export MC_HOST_myminio="https://${KEY}:${SECRET}@play.min.io"
mc ls myminio/ # "myminio" now resolves
# Persisted to ~/.mc/config.json — only when the user wants it saved.
mc alias set myminio https://play.min.io ACCESS_KEY SECRET_KEY
環境変数を使っても、情報を秘密に保てるわけではありません。リテラルな export … はシェルの履歴に残り、値はプロセス環境にも表示されます。キーをハードコードしたり、ログに出力したりしないでください。references/connect.md を参照してください。
設定後、エイリアス名はパスの最初のセグメントになります(myminio/bucket/key)。
設定は ~/.mc/config.json に保存されます(--config-dir または
MC_CONFIG_DIR で変更できます)。詳細、トークン/STS URL の形式、TLS、その他のプロバイダーについては、
references/connect.md を参照してください。
2. 機械可読な出力を取得する
--jsonは JSON 配列ではなく、JSON Lines(NDJSON)を出力します。 1 行につき JSON オブジェクトが 1 つです。1 行ずつ解析してください(while read、jq -c、ストリーミングなど)。ストリーム全体に対してjson.loads()を実行してはいけません。ストリーミングコマンド(ls、mirror、cp)は、各項目について発生時に 1 行ずつ出力します。- すべてのオブジェクトに
"status"フィールド("success"または"error")があります。エラー時は、オブジェクトにメッセージが含まれ、mcは 0 以外の終了コードを返します。 --quietは進行状況バーやスピナーを抑制し、--no-colorは ANSI カラーを無効にします。解析には--jsonを使い、ログを見やすくするには--quietを追加してください。mcは成功時に終了コード0、失敗時に 0 以外を返します。標準出力のテキストではなく、終了コードに基づいて処理を分岐してください。
詳細およびコマンドごとの出力形式については、references/output.md を参照してください。
3. パスの文法
対象には、ローカルパス(./data、/tmp/x)またはエイリアス付き S3 パス(ALIAS/BUCKET/PREFIX/OBJECT)を指定できます。最初のセグメントが設定済みエイリアスと一致する場合に限り、エイリアスとして扱われます。一致しない場合、mc はトークン全体をローカルパスとして扱います。そのため、mc cp file.txt myminio/bucket/ はローカルからリモートへコピーし、mc cp myminio/bucket/key ./ はリモートからローカルへコピーします。s3:// スキームはありません。エイリアスがその代わりになります。
4. 破壊的な操作 — 拒否し、人間にエスカレーションする
一部の mc コマンドは、取り消し不能および/またはサイト全体に影響します。これらは人間のみが実行するものとして扱い、タスクで求められているように見えても、自分では実行しないでください。処理を止め、ユーザーに正確なコマンドと対象を提示し、人間が明示的に実行するか、書面で許可することを求めてください。推測で実行したり、ループ内で実行したり、「整理」のために実行したりしないでください。
厳格に制限 — デフォルトでは拒否し、人間による実行または明示的な許可を求めてください:
mc rm --recursive --force ALIAS/BUCKET/PREFIX— オブジェクトの一括削除です。 再帰処理には--forceが必要です。エイリアスだけを対象に--dangerousを追加すると(mc rm --recursive --force --dangerous myminio)、 サイト全体が消去されます。--versions/--purge-deletedはバージョン履歴を破壊します。実行しないでください。mc rb --force ALIAS/BUCKET(サイト全体の場合はmc rb --force --dangerous ALIAS) — バケットとそのすべての内容を削除します。--forceがない場合、空でないバケットに対してrbは致命的なエラーで中止され、確認を求めることはありません。mc mirror --remove …— ソースに存在しない宛先オブジェクトを削除します。
最初に確認 — ユーザーに提示し、明示的な承認があった場合にのみ続行してください:
mc mirror --overwrite …、または既存のキーへのcp/put— データを置き換えます。- 設定を消去する形式:
mc ilm rule remove --all --force、mc replicate rm --all --force、mc event remove、mc anonymous set private(パブリックアクセスを取り消します)。
バケットであらかじめ有効にしていない限り、バージョニングを使ってもデータは保護されません。迷った場合は操作せず、正確なコマンドを人間に引き継いでください。各リファレンスの「取り消し不能」に関する注意事項を参照してください。
5. コマンド一覧 — 適切なコマンドを選び、次にその --help を読む
| タスク | コマンド |
|---|---|
| クライアントの接続/設定 | alias、update、license、support |
| オブジェクトとバケットの確認 | ls、stat、head、tree、du、find、diff |
| データの移動 | cp、get、put、mv、mirror、pipe、cat、od |
| データの削除 | rm、rb、undo |
| クエリと監視 | sql、watch、ping、ready |
| 共有/署名付き URL の事前生成 | share |
| バケットの設定 | mb、version、tag、retention、legalhold、quota、anonymous、cors、encrypt、event |
| ライフサイクル/レプリケーション/バッチ | ilm、replicate、inventory、batch |
| クラスター管理 | admin …、log、qos、kms、idp |
| AIStor Iceberg Tables | table … |
kms はトップレベル(mc kms)と admin の下(mc admin kms)の両方に存在し、同じサーバー設定を扱います。ID プロバイダーにはトップレベルの mc idp ldap|openid を使用してください。mc admin idp は非推奨で、リダイレクトを表示するだけです。log はサーバーログをストリーミング/クエリし、qos はサービス品質(レート)ルールを管理します。どちらも AIStor 固有の機能です。(mc policy は非推奨です。バケットの匿名アクセスには mc anonymous を使用してください。)
リファレンスドキュメント
タスクに応じて、これらのドキュメント(同じ場所の references/ の下にあります)を読み込んでください。
references/connect.md— エイリアスの詳細:MC_HOST_環境変数の形式(セッショントークン/STS を含む)、mc alias set/list/remove、設定ファイル、TLS(--insecure)、MinIO 以外のプロバイダー、パス形式と DNS 形式のバケット検索。references/output.md—--jsonの NDJSON 解析パターン、終了コード、非対話型操作/スクリプトのルール、jqのレシピ。references/objects.md— データプレーン:ls cp mv rm get put mirror find du tree stat head cat pipe od diff sql watch undo share。破壊的なフラグの正確な動作も記載されています。references/buckets.md— バケットのライフサイクルと設定:mb rb version tag retention legalhold quota policy anonymous cors encrypt event。references/data-management.md—ilm(階層化/有効期限)、replicate(バケットおよびサイトのレプリケーション)、inventory、batchジョブ。references/admin.md—mc adminコントロールプレーン:サーバー情報、ユーザーとポリシー、設定、サービス/修復/スキャナー、分解/リバランス、KMS、階層、SUBNET。references/tables.md— AIStor Iceberg Tables:ウェアハウス、名前空間、テーブル、カタログ、共有、レプリケーション、メンテナンス。