MCP Reference: cloudcli.googleapis.com

Cloud CLI MCP サーバーには、リモート サンドボックス環境で Cloud CLI コマンドを実行するためのツールが用意されています。

Model Context Protocol(MCP)サーバーは、大規模言語モデル(LLM)または AI アプリケーションにコンテキスト、データ、機能を提供する外部サービスとの間のプロキシとして機能します。MCP サーバーは、AI アプリケーションをデータベースやウェブサービスなどの外部システムに接続し、そのレスポンスを AI アプリケーションが理解できる形式に変換します。

サーバーの設定

使用する前に、MCP サーバーを有効にして 認証を設定する必要があります。Google と Google Cloud のリモート MCP サーバーの使用方法については、Google Cloud MCP サーバーの概要をご覧ください。

サーバー エンドポイント

MCP サービス エンドポイントは、安全で標準化された接続を確立するために AI アプリケーション(MCP クライアントのホスト)が使用する MCP サーバーのネットワーク アドレスと通信インターフェース(通常は URL)です。これは、LLM がコンテキストをリクエストしたり、ツールを呼び出したり、リソースにアクセスしたりするための接続ポイントとなります。Google MCP エンドポイントをグローバルまたはリージョンにすることができます。

Cloud CLI Execution API MCP サーバーには、次のグローバル MCP エンドポイントがあります。

  • https://cloudcli.googleapis.com/mcp

MCP ツール

MCP ツールは、現実世界でアクションを実行する目的で MCP サーバーが LLM または AI アプリケーションに対して公開する関数または実行可能な機能です。

ツール

cloudcli.googleapis.com MCP サーバーには、次のツールがあります。

MCP ツール
run_gcloud_command

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

  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 のリクエスタ支払いなどの特定のシナリオでは、--billing-project=PROJECT フラグを渡す必要があります。プロジェクト スコープのコマンドの場合は、--billing-project=PROJECT を追加で指定して割り当てプロジェクトをオーバーライドできます。これは、resource-project-override をサポートしていない 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 フラグを使用します。

run_bq_command

単一の BigQuery CLI(bq)コマンドを実行します。このツールを使用すると、GCP リソースの作成、更新、削除を行うコマンド(ミューテーション)など、ユーザーのプロジェクトで任意の bq コマンドを実行できます。重大な安全上の警告(破壊的な可能性がある): このツールは、BigQuery リソース(bq rm、bq cancel、bq query など)を作成、更新、削除できます。読み取り専用コマンドに限定されません。使用する際は十分ご注意ください。禁止されているコマンド: エージェントは、次の bq コマンドを実行してはなりません。bq initbq loadbq pyshellbq shell。厳格な実行ルール:

  1. コマンド文字列には、--project_id または --quota_project_id の少なくとも 1 つを指定する必要があります。
  2. プロジェクト ID と割り当てプロジェクト: --project_id フラグは、コマンドが動作するリソース プロジェクトを指定します(gcloud の --project フラグをミラーリングします)。--quota_project_id フラグは、ダウンストリーム BigQuery API 呼び出しの課金/割り当ての対象となるプロジェクトを指定します(gcloud の --billing-project フラグをミラーリングします)。コマンドで --project_id が指定されている場合は、課金/割り当てプロジェクトとして使用されます。--project_id が指定されていない場合、または --quota_project_id が追加で指定されている場合、課金/割り当てプロジェクトは --quota_project_id フラグで設定されたプロジェクトになります。
  3. フラグの形式: すべての長いオプションで、フラグキーとその値を区切るには、必ず '=' 記号を使用してください。正しい例: '--project_id=my-project' または '--location=us'。誤った例: '--project_id my-project' または '--location us'。フラグとその値の間にスペースを使用しないでください。
  4. 構成のデフォルトなし: bq コマンドはステートレスに実行されます。ローカル構成ファイル(.bigqueryrc など)は読み込まれません。したがって、すべてのリージョン オペレーション(データセットの作成やリージョン データセットのクエリなど)では、--location フラグ(--location=us や --location=EU など)を明示的に指定する必要があります。
  5. 非同期オペレーション: 一部のコマンドは、同期的な長時間実行オペレーション(クエリジョブの実行など)を開始します。エージェントのタイムアウトを防ぐために、これらのコマンドには常に --nosync フラグを渡す必要があります。
  6. コマンドの制限: bq init、bq pyshell、bq shell の bq コマンドは使用しないでください。コマンドのパイプ処理やチェーン処理はサポートされていません。
  7. 自己修正: コマンドがエラーを返す場合は、stderr を分析し、構文またはフラグを修正して、次の反復で再試行します。

ミューテーション bq コマンドの例としては、bq mk、bq rm、bq update、bq insert、bq query(--dry_run なし)などがあります。使用方法: RunBq(command="bq query --project_id=PROJECT_ID 'SELECT 1'", project="projects/PROJECT_ID", input_files=[{"path": "PATH", "contents": "CONTENTS"}]) 'command' パラメータには、完全な bq コマンドを単一の文字列として指定する必要があります。課金、API の有効化、割り当て消費量のチェックを行う API 実行プロジェクトとして、'project' パラメータ(形式: projects/PROJECT_ID)を指定する必要があります。

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

  1. クエリを実行する: bq query --use_legacy_sql=false --project_id=PROJECT_ID 'SELECT * FROM project.dataset.table LIMIT 10'
  2. データセットを作成する: bq mk --dataset --location=us --project_id=PROJECT_ID myDataset
  3. テーブルを作成する: bq mk --table --project_id=PROJECT_ID myDataset.myTable name:string,value:integer
  4. データセットを削除する: bq rm -f --dataset --project_id=PROJECT_ID myDataset
  5. テーブルを削除する: bq rm -f -t --project_id=PROJECT_ID myDataset.myTable
  6. テーブルの説明を更新する: bq update --description="New description" --project_id=PROJECT_ID myDataset.myTable
  7. プロジェクト内のデータセットを一覧表示する: bq ls --datasets=true --project_id=PROJECT_ID

MCP ツールの仕様を取得する

MCP サーバー内のすべてのツールの MCP ツール仕様を取得するには、tools/list メソッドを使用します。次の例は、curl を使用して、MCP サーバー内で現在使用可能なすべてのツールとその仕様を一覧表示する方法を示しています。

Curl リクエスト
                      
curl --location 'https://cloudcli.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'