MCP Tools Reference: cloudcli.googleapis.com

ツール: run_gcloud_command

ユーザーの Google Cloud プロジェクト内で単一の gcloud CLI コマンドを実行します。重大な安全上の警告(破壊的な可能性あり): このツールは、GCP リソースの作成、更新、削除を行うことができます(例: gcloud compute instances delete)。読み取り専用コマンドに限定されません。十分にご注意ください。禁止されているコマンド: エージェントは、次の gcloud コマンド(アルファ版/ベータ版を含む)を実行してはなりません。app deployapp instances sshauthbillingcomponentsconfigdockerfeedbackinfoinitmetasurvey。STRICT EXECUTION RULES:

  1. このツールを使用する場合は、必ず「project」パラメータ(project="projects/PROJECT_ID" など)を指定してください(Cloud CLI Execution API の有効化チェック、課金、割り当てなどに使用されます)。これは、gcloud が動作するプロジェクトを指定するために使用される gcloud コマンドの --project フラグと同じではありません。
  2. フラグの形式: すべての長いオプションで、フラグキーとその値を区切るために常に「=」記号を使用しなければなりません。正しい値: --zone=us-central1-a または --project=my-project。不正解: --zone us-central1-a または --project my-project
  3. 課金プロジェクト: 実行環境で事前構成されたプロジェクトや課金設定を想定することはできません。プロジェクト以外のスコープのコマンド(フォルダレベルや組織レベルなど)や、Cloud Storage Requester Pays などの特定のシナリオでは、--billing-project=PROJECT フラグを渡す必要があります。プロジェクト スコープのコマンドでは、--billing-project=PROJECT を指定して割り当てプロジェクトをオーバーライドすることもできます。これは、リソース プロジェクトのオーバーライドをサポートしていない GCP API に有効になります。
  4. プロジェクト スコープ: プロジェクト スコープのコマンドには、常に --project=PROJECT_ID フラグを渡す必要があります。組織レベルまたはフォルダレベルのコマンドには使用しないでください。プロジェクト スコープのコマンドに --project フラグを指定しない場合、リソース プロジェクトはデフォルトで --billing-project フラグで設定されたプロジェクトになります。
  5. gcloud コマンドで --billing-project フラグを指定する場合は、値がプロジェクト ID またはプロジェクト番号であることを確認してください。値は特殊な値(LEGACY、CURRENT_PROJECT、CURRENT_PROJECT_WITH_FALLBACK など)であってはなりません。
  6. コマンド文字列で --project または --billing-project の少なくとも 1 つを指定する必要があります。
  7. 非同期オペレーション: 長時間実行される同期オペレーション(VM やデータベースの作成など)では、エージェントのタイムアウトを防ぐために、常に --async フラグを渡すべきです。
  8. ログのレート制限: gcloud logging read を使用する場合は、認証情報と接続のタイムアウトを防ぐために、常に --limit フラグ(--limit=100 など)を含める必要があります。
  9. 自己修正: コマンドがエラーを返した場合は、stderr を分析し、構文またはフラグを修正して、次のイテレーションで再試行します。
  10. input_files:(省略可)コマンドを実行する前に環境に作成されるファイルのリスト。各ファイルには、(現在のディレクトリを基準とした)「path」と「contents」が必要です。「contents」は、ファイルの内容を表すプレーン テキストである必要があります。これは、ファイルから読み取るコマンド(gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID など)に便利です。

gcloud コマンド/パターンの例:

  1. 重大度が ERROR 以上の GCE インスタンス ログを読み取ります。gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID
    • フィルタ式で引用符を使用していることに注意してください。
  2. すべての PSC エンドポイントを一覧表示します。gcloud compute forwarding-rules list --project=PROJECT_ID
  3. PSC エンドポイントの説明を取得します。gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID
    • --region フラグに「=」が使用されていることに注意してください。
  4. すべてのクラスタを一覧表示します。gcloud container clusters list --project=PROJECT_ID
  5. クラスタの説明を取得する: gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID
  6. コンピューティング インスタンスを一覧表示する: gcloud compute instances list --project=PROJECT_ID
  7. プロジェクトの IAM ポリシーを取得する: gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID

レスポンス文字列は、デフォルトでターミナル出力(stdout または stderr)用にフォーマットされます。形式を変更するには、--format フラグを使用します。

次のサンプルは、curl を使用して run_gcloud_command MCP ツールを呼び出す方法を示しています。

Curl リクエスト
                  
curl --location 'https://cloudcli.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "run_gcloud_command",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

入力スキーマ

RunGcloud のリクエスト メッセージ。

RunGcloudRequest

JSON 表現
{
  "project": string,
  "command": string,
  "inputFiles": [
    {
      object (File)
    }
  ]
}
フィールド
project

string

必須。Cloud CLI Execution API の API 有効化と割り当て使用量のプロジェクト。

形式は projects/ または projects/ にする必要があります。

command

string

必須。単一の文字列として実行する完全な gcloud コマンドライン。例: 「gcloud compute instances create my-vm --zone=us-central1-a」

LLM は、タイムアウトを回避するために、長時間実行オペレーションに --async フラグを使用するように指示されます。

inputFiles[]

object (File)

省略可。gcloud コマンドの実行に使用できるファイル。

ファイル

JSON 表現
{
  "path": string,
  "contents": string
}
フィールド
path

string

必須。ホーム ディレクトリからの相対ファイルパス。親ディレクトリのトラバーサル(..)やシェル拡張を含めることはできません。

contents

string

必須。ファイルの内容。

出力スキーマ

RunGcloud のレスポンス メッセージ。

RunGcloudResponse

JSON 表現
{
  "response": {
    object (CliExecutionResponse)
  },
  "outputFiles": [
    {
      object (File)
    }
  ]
}
フィールド
response

object (CliExecutionResponse)

CLI ツールの実行からのレスポンス。独立した stdout、stderr ストリームと終了コードが含まれます。

outputFiles[]

object (File)

gcloud コマンドの実行によって生成されたファイル。

CliExecutionResponse

JSON 表現
{
  "stdout": string,
  "stderr": string,
  "exitCode": string
}
フィールド
stdout

string

CLI ツールの実行からの stdout ストリーム。

stderr

string

CLI ツールの実行からの stderr ストリーム。

exitCode

string (int64 format)

CLI ツールの実行の終了コード。

ファイル

JSON 表現
{
  "path": string,
  "contents": string
}
フィールド
path

string

必須。ホーム ディレクトリからの相対ファイルパス。親ディレクトリのトラバーサル(..)やシェル拡張を含めることはできません。

contents

string

必須。ファイルの内容。

ツールのアノテーション

破壊的ヒント: ✅ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌