ツール: run_gcloud_command
ユーザーの Google Cloud プロジェクト内で単一の gcloud CLI コマンドを実行します。重大な安全上の警告(破壊的な可能性あり): このツールは、GCP リソースの作成、更新、削除を行うことができます(例: gcloud compute instances delete)。読み取り専用コマンドに限定されません。十分にご注意ください。禁止されているコマンド: エージェントは、次の gcloud コマンド(アルファ版/ベータ版を含む)を実行してはなりません。app deploy、app instances ssh、auth、billing、components、config、docker、feedback、info、init、meta、survey。STRICT EXECUTION RULES:
- このツールを使用する場合は、必ず「project」パラメータ(project="projects/PROJECT_ID" など)を指定してください(Cloud CLI Execution API の有効化チェック、課金、割り当てなどに使用されます)。これは、gcloud が動作するプロジェクトを指定するために使用される gcloud コマンドの --project フラグと同じではありません。
- フラグの形式: すべての長いオプションで、フラグキーとその値を区切るために常に「=」記号を使用しなければなりません。正しい値:
--zone=us-central1-aまたは--project=my-project。不正解:--zone us-central1-aまたは--project my-project。 - 課金プロジェクト: 実行環境で事前構成されたプロジェクトや課金設定を想定することはできません。プロジェクト以外のスコープのコマンド(フォルダレベルや組織レベルなど)や、Cloud Storage Requester Pays などの特定のシナリオでは、
--billing-project=PROJECTフラグを渡す必要があります。プロジェクト スコープのコマンドでは、--billing-project=PROJECTを指定して割り当てプロジェクトをオーバーライドすることもできます。これは、リソース プロジェクトのオーバーライドをサポートしていない GCP API に有効になります。 - プロジェクト スコープ: プロジェクト スコープのコマンドには、常に
--project=PROJECT_IDフラグを渡す必要があります。組織レベルまたはフォルダレベルのコマンドには使用しないでください。プロジェクト スコープのコマンドに --project フラグを指定しない場合、リソース プロジェクトはデフォルトで --billing-project フラグで設定されたプロジェクトになります。 - gcloud コマンドで --billing-project フラグを指定する場合は、値がプロジェクト ID またはプロジェクト番号であることを確認してください。値は特殊な値(LEGACY、CURRENT_PROJECT、CURRENT_PROJECT_WITH_FALLBACK など)であってはなりません。
- コマンド文字列で --project または --billing-project の少なくとも 1 つを指定する必要があります。
- 非同期オペレーション: 長時間実行される同期オペレーション(VM やデータベースの作成など)では、エージェントのタイムアウトを防ぐために、常に
--asyncフラグを渡すべきです。 - ログのレート制限:
gcloud logging readを使用する場合は、認証情報と接続のタイムアウトを防ぐために、常に--limitフラグ(--limit=100など)を含める必要があります。 - 自己修正: コマンドがエラーを返した場合は、stderr を分析し、構文またはフラグを修正して、次のイテレーションで再試行します。
- input_files:(省略可)コマンドを実行する前に環境に作成されるファイルのリスト。各ファイルには、(現在のディレクトリを基準とした)「path」と「contents」が必要です。「contents」は、ファイルの内容を表すプレーン テキストである必要があります。これは、ファイルから読み取るコマンド(gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID など)に便利です。
gcloud コマンド/パターンの例:
- 重大度が ERROR 以上の GCE インスタンス ログを読み取ります。
gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID- フィルタ式で引用符を使用していることに注意してください。
- すべての PSC エンドポイントを一覧表示します。
gcloud compute forwarding-rules list --project=PROJECT_ID - PSC エンドポイントの説明を取得します。
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID- --region フラグに「=」が使用されていることに注意してください。
- すべてのクラスタを一覧表示します。
gcloud container clusters list --project=PROJECT_ID - クラスタの説明を取得する:
gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID - コンピューティング インスタンスを一覧表示する:
gcloud compute instances list --project=PROJECT_ID - プロジェクトの 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 ( |
| フィールド | |
|---|---|
project |
必須。Cloud CLI Execution API の API 有効化と割り当て使用量のプロジェクト。 形式は projects/ |
command |
必須。単一の文字列として実行する完全な gcloud コマンドライン。例: 「gcloud compute instances create my-vm --zone=us-central1-a」 LLM は、タイムアウトを回避するために、長時間実行オペレーションに |
inputFiles[] |
省略可。gcloud コマンドの実行に使用できるファイル。 |
ファイル
| JSON 表現 |
|---|
{ "path": string, "contents": string } |
| フィールド | |
|---|---|
path |
必須。ホーム ディレクトリからの相対ファイルパス。親ディレクトリのトラバーサル(..)やシェル拡張を含めることはできません。 |
contents |
必須。ファイルの内容。 |
出力スキーマ
RunGcloud のレスポンス メッセージ。
RunGcloudResponse
| JSON 表現 |
|---|
{ "response": { object ( |
| フィールド | |
|---|---|
response |
CLI ツールの実行からのレスポンス。独立した stdout、stderr ストリームと終了コードが含まれます。 |
outputFiles[] |
gcloud コマンドの実行によって生成されたファイル。 |
CliExecutionResponse
| JSON 表現 |
|---|
{ "stdout": string, "stderr": string, "exitCode": string } |
| フィールド | |
|---|---|
stdout |
CLI ツールの実行からの stdout ストリーム。 |
stderr |
CLI ツールの実行からの stderr ストリーム。 |
exitCode |
CLI ツールの実行の終了コード。 |
ファイル
| JSON 表現 |
|---|
{ "path": string, "contents": string } |
| フィールド | |
|---|---|
path |
必須。ホーム ディレクトリからの相対ファイルパス。親ディレクトリのトラバーサル(..)やシェル拡張を含めることはできません。 |
contents |
必須。ファイルの内容。 |
ツールのアノテーション
破壊的ヒント: ✅ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌