1. はじめに
ようこそ。この Codelab では、Google 管理の Model Context Protocol(MCP)サーバー を使用して AI エージェントを強化する方法を学びます。
Model Context Protocol(MCP) は、AI モデルが外部のデータソースやツールに安全かつ効率的に接続できるようにするオープンソース標準です。ほとんどの MCP 実装はマシン上でローカルに実行されますが、Google はマネージド リモート MCP サーバー を提供しています。これらはフルホスト型のエンタープライズ対応のエンドポイントであり、サーバーサイドのコードやコンテナを管理することなく、エージェントが Google Cloud インフラストラクチャと直接やり取りできます。
「マネージド」のメリット
標準入出力(stdio)を使用するローカル MCP サーバーとは異なり、Google のマネージド サーバーはストリーミング可能な HTTP を使用します。このアーキテクチャには次のような利点があります。
- インフラストラクチャ不要: サーバーのプロビジョニングやスケーリングは不要です。
- 設計によるセキュリティ: Google Cloud IAM と監査ログとのネイティブ統合。
- ステートレス スケーリング: 標準のロードバランサとプロキシによるシームレスなインタラクション。
学習内容
- マネージド MCP サーバーを有効にして認証する方法。
- Cloud Logging MCP サーバー を基本的なベースラインとして使用する方法。
- 複数の MCP サーバー(Developer Knowledge、Firestore など)をオーケストレートして自律型ワークフローを構築する方法。
必要なもの
- 課金を有効にした Google Cloud プロジェクト
- Google Cloud コンソールと
gcloudCLI の知識 - Google Cloud Shell (Gemini CLI がプリインストールされています)
この Codelab は、初心者を含むあらゆるレベルのユーザーとデベロッパーを対象としています。
問題の報告
Codelab と Antigravity を使用しているときに問題が発生する可能性があります。
Codelab 関連の問題(誤字脱字、誤った手順)については、この Codelab の左下にある Report a mistake ボタンからバグを報告してください。

2. 始める前に
この手順では、Google Cloud 環境を準備します。すべてのタスクは、永続的な事前構成済みターミナルを提供するGoogle Cloud Shell内で実行します。
Cloud Shell をアクティブにする
- Google Cloud コンソール に移動します。
- 右上のヘッダーにある [Cloud Shell をアクティブにする] アイコンをクリックします。
- ターミナル セッションが開始したら、プロンプトが表示されたら承認します。
プロジェクト ID を設定する
Cloud Shell が正しいプロジェクトを指していることを確認します。
# Set your active project
gcloud config set project YOUR_PROJECT_ID
# Verify the setting
gcloud config list project
基盤 API を有効にする
マネージド MCP サーバーでは、基盤となるプロダクト API と MCP インターフェースの両方を有効にする必要があります。サービスを有効にすると、そのサービスの基盤となる MCP インターフェースも有効になります。
次のコマンドを実行して、Cloud Logging バックエンド(このラボのベースライン)を有効にします。
# Enable the Cloud Logging API and its MCP interface
gcloud services enable logging.googleapis.com
注: マネージド MCP サービスは現在ベータ版 です。有効にするには、gcloud beta コンポーネントを使用する必要があります。
アプリケーションのデフォルト認証情報(ADC)を設定する
Gemini CLI は、ユーザー ID を使用して MCP サーバーと通信します。エージェントに代行権限を付与します。
gcloud auth application-default login
ターミナルの URL に沿ってログインし、認証コードを Cloud Shell に貼り付けます。
基盤となる IAM ロールを割り当てる
マネージド MCP サーバーは二層 セキュリティ モデルを使用します。ゲートを通過するには、次の 2 つの特定のゲート で検証を受ける必要があります。
- ゲート 1(MCP アクセス): プロトコルを呼び出すことができるロール。
- ゲート 2(サービス アクセス): データを表示できるロール(ログの表示など)。
次のコマンドを実行して、必要なアクセス権を自分に付与します。
export PROJECT_ID=$(gcloud config get-value project)
export USER_EMAIL=$(gcloud config get-value account)
# Gate 1: Permission to use the MCP protocol
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/mcp.toolUser"
# Gate 2: Permission to view the actual logs
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/logging.viewer"
3. 基盤: 最初の MCP サーバーを接続する
この手順では、AI エージェント(Gemini CLI)をGoogle Cloud Logging MCP サーバー にリンクします。エージェントがプロジェクト内で発生していることをリアルタイムで確認できるため、これが「基盤」となります。
タスク 1: Logging MCP サーバーを構成する
Gemini CLI は settings.json ファイルを使用して接続を管理します。このファイル(~/.gemini フォルダにあります)を編集して、mcpServers ブロック内に次のスニペットを追加する必要があります。YOUR_PROJECT_ID は実際のプロジェクト ID に置き換えてください。
"logging-mcp": {
"httpUrl": "https://logging.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/logging.read"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
注: マネージド MCP サーバーでは、API の使用状況と課金がプロジェクトに正しく帰属するように、x-goog-user-project ヘッダーが必要です。
タスク 2: プロジェクト アクティビティをシミュレートする(ログを作成する)
プロジェクトが新しい場合やアイドル状態の場合、最近の「興味深い」ログがない可能性があります。gcloud CLI を使用してカスタム エントリをいくつか挿入し、エージェントが検索できるようにします。
次のコマンドを 1 つずつ実行して、一連のイベントをシミュレートします。
# 1. Simulate a standard system start
gcloud logging write mcp-test-log "System boot sequence initiated" --severity=INFO
# 2. Simulate a warning about resource limits
gcloud logging write mcp-test-log "High memory pressure detected in zone us-central1-a" --severity=WARNING
# 3. Simulate a critical authentication failure
gcloud logging write mcp-test-log "ERROR: Failed to connect to Cloud SQL. Permission Denied." --severity=ERROR
タスク 3: Gemini CLI でツールを確認する
チャットを開始する前に、エージェントが Logging サーバーによって公開されたツールを「認識」できることを確認しましょう。Gemini CLI を起動します。
gemini
Gemini CLI プロンプト(>)内で、list コマンドを実行します。
/mcp list
検証チェックポイント: logging-mcp が準備完了 として表示され、list_log_entries を含む約 6 個のツール が使用可能になっていることを確認します。
タスク 4: 最初のライブ インフラストラクチャ プロンプト
作成したログをエージェントに検索させましょう。先ほど roles/logging.viewer ロールを付与したため、エージェントはプロジェクトの状態に「アクセス」して読み取ることができます。
Gemini CLI に次のプロンプトを入力します。
Show me the 3 most recent log entries from the log named 'mcp-test-log'. What is the highest severity issue you see?
エージェントを確認します。
- エージェントから Google Cloud プロジェクト ID の入力を求められることがあります。その場合は入力してください。
list_log_entriesツールが必要であることが特定されます。- ツールの実行権限を求められます。Select 1. はい、1 回許可します] を選択します。
- JSON レスポンスが解析され、シミュレートしたCloud SQL 権限拒否 エラーが表示されます。
4. 手順 A: ブレイン(Developer Knowledge MCP)
この手順では、Google Developer Knowledge MCP サーバー に接続して、エージェントに「ブレイン」を提供します。
AI エージェントの最大のリスクの 1 つは、ハルシネーション です。古い CLI コマンドや非推奨の API パラメータを自信を持って提供することです。この MCP サーバーは、Google Cloud、Firebase、Android などを網羅する Google の公式のライブ デベロッパー ドキュメント コーパスにエージェントをグラウンディングすることで、この問題を解決します。
タスク 1: Knowledge サービスを有効にする
基盤の手順と同様に、バックエンド API と MCP サービス エンドポイントを有効にする必要があります。
# 1. Enable the Developer Knowledge API
gcloud services enable developerknowledge.googleapis.com
タスク 2: 制限付き API キーをプロビジョニングする
Developer Knowledge MCP は認証にAPI キー を使用します。セキュリティのため、キーを作成し、この特定の API でのみ使用できるように制限します。
- 次のスクリプトを実行して、キーを作成して取得します。
# Create the restricted API key
gcloud alpha services api-keys create \
--display-name="MCP-Knowledge-Key" \
--api-target service=developerknowledge.googleapis.com
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Knowledge-Key'" \
--format="value(name)") \
--format="value(keyString)"
- 2 番目のコマンドから返された長い文字列をコピーします。これが
YOUR_API_KEYです。
タスク 3: Gemini CLI を構成する
Knowledge MCP サーバーをエージェントに登録します。これにより、エージェントは 100% の確信を持って回答できない技術的な質問に遭遇したときに、公式ドキュメントを検索できます。
~/.gemini/settings.json ファイルの mcpServers セクションに次のスニペットを追加し、YOUR_API_KEY をコピーした文字列に置き換えます。
"developer-knowledge-mcp": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_API_KEY"
}
}
タスク 4: ハルシネーション防止テスト
エージェントが「推測」するのではなく「調査」していることを確認しましょう。
Gemini CLI を起動します。
gemini
サーバーが準備完了であることを確認します。/mcp list と入力します。google-developer-knowledge に 2 つのツール(search_documents、get_document)が表示されます。
プロンプト: エージェントに特定の最新のコマンドを検索させます。
I want to create a Google Cloud Storage bucket using the modern gcloud storage command. Search the official documentation for the exact syntax and show me an example for a bucket in the 'us-central1' region.
確認すべき点:
- Gemini から
search_documentsの使用権限を求められます。 - 次に、
get_documentを呼び出して、見つかった特定のページを読み取る可能性があります。 - 最終的な回答には、ドキュメントから直接引用された
gcloud storage buckets create ...コマンドが含まれている必要があります。
5. 手順 B: トリアージ(自律的なトラブルシューティング)
前提条件: この手順では、エージェントが修正を調査できるように、手順 A: ブレイン を完了している必要があります。
この手順では、エージェントの目 (Cloud Logging MCP)とブレイン (Developer Knowledge MCP)を組み合わせて、自律的なトラブルシューティング ループ を構築します。
エラーコードを検索エンジンに手動でコピーする代わりに、エージェントに 1 つのプロンプトを入力して、プロジェクトのエラーをスキャンし、公式の解決策を調査して、実行可能な修正レポートを生成します。
タスク 1: GCP で「悪い日」をシミュレートする
自律的なトラブルシューティングの威力を確認するには、現実的な一連の障害が必要です。Python スクリプトを使用して、権限拒否エラーから割り当ての問題まで、さまざまなインフラストラクチャの障害をログに直接挿入します。
- Cloud Shell で、任意のフォルダを作成して移動します。
simulate_errors.pyという名前のファイルを作成します。
nano simulate_errors.py
- 次のコードをエディタに貼り付けます。
import argparse
from google.cloud import logging
def simulate_errors(project_id):
client = logging.Client(project=project_id)
logger = client.logger("mcp-scenario-logger")
print(f"Simulating realistic errors for project: {project_id}...")
# 1. GCS Permission Error
logger.log_text("ERROR: GCS Upload failed for 'gs://my-app-bucket/data.json'. Status: 403 Forbidden. Missing 'storage.objects.create' for service account.", severity="ERROR")
# 2. Cloud Run Startup Error
logger.log_text("ERROR: Cloud Run service 'api-gateway' failed to start. Container failed to listen on port 8080. Check 'Cloud Run container startup requirements'.", severity="ERROR")
# 3. Secret Manager Access Error
logger.log_text("ERROR: Access denied to secret 'API_KEY'. The identity lacks 'secretmanager.versions.access'.", severity="ERROR")
print("Log entries written to 'mcp-scenario-logger'.")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--project", required=True)
args = parser.parse_args()
simulate_errors(args.project)
- Ctrl+O、Enter、
Ctrl+Xを押して保存し、終了します。 Google Cloud Loggingライブラリをインストールして、スクリプトを実行します。
python -m venv mcp_env
source mcp_env/bin/activate
pip install google-cloud-logging
python simulate_errors.py --project $(gcloud config get-value project)
タスク 2: 自律ループを実行する
Gemini に両方の MCP サーバーを同時にオーケストレートするように指示する複雑なプロンプトを送信します。
Gemini CLI を起動します。
gemini
エージェントに次の「マスター プロンプト」を入力します。
I need to troubleshoot recent issues in my project. Perform the following autonomous loop:
Step 1 : Retrieval: Use the Logging MCP to fetch the 5 most recent ERROR entries from the log 'mcp-scenario-logger'.
Step 2 : Iteration: For every unique error found, extract the service and specific error message.
Step 3 : Research: Use the Developer Knowledge MCP to find the official resolution or gcloud command to fix each issue.
Step 4 : Resolution: Consolidate everything into a markdown table with columns: | Service | Error Summary | Recommended Fix |.
その後の流れ
エージェント型ワークフロー をリアルタイムで確認できます。エージェントは次の処理を行います。
list_log_entriesを呼び出して、シミュレートした「悪い日」を確認します。- テキストを分析して、GCS、Cloud Run、Secret Manager が失敗していることを特定します。
- これらのサービスごとに
search_documentsとget_documentを呼び出して、正しい IAM ロールまたは構成の修正を見つけます。 - 次のような構造化されたテーブルを表示します(推奨事項は異なる場合があります)。
サービス | エラーの概要 | 推奨の解決方法 |
Cloud Storage | アップロードで 403 Forbidden | サービス アカウントに |
Cloud Run | ポート 8080 でのリッスンに失敗しました | アプリが |
Secret Manager | バージョン アクセス ロールがありません | ID に |
6. 手順 C: データ(Firestore MCP)
この手順では、Firestore MCP サーバー を使用して、自然言語のみを使用して NoSQL ドキュメント データベースを管理します。
Firestore は柔軟でスケーラブルなデータベースですが、管理には複雑な SDK コードの記述やコンソールの操作が必要になることがよくあります。MCP を使用すると、エージェントは データベース管理者 になり、データのシード処理、レコードのクエリ、チャットによる複雑なスキーマ移行を行うことができます。
タスク 1: Firestore サービスを有効にする
まず、Firestore API と対応する MCP エンドポイントを有効にします。
# 1. Enable the Firestore API
gcloud services enable firestore.googleapis.com
タスク 2: Firestore IAM ロールを割り当てる
クエリを実行するには、ID に基本的な MCP アクセス以外の特定の権限が必要です。
# Grant Firestore User role
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/datastore.user"
タスク 3: 専用のテストデータベースを作成する
実験を安全に行うため、mcp-lab-db という名前の専用の Firestore データベースを作成します。
gcloud firestore databases create --database=mcp-lab-db --location=nam5 --type=firestore-native
タスク 4: Gemini CLI を構成する
Firestore MCP サーバーをエージェントに追加します。~/.gemini/settings.json ファイルの mcpServers セクションに次の構成を追加します。YOUR_PROJECT_ID は実際のプロジェクト ID に置き換えてください。
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
タスク 5: 自然言語 DB オペレーション
Gemini CLI を起動し、基本的なオペレーションを実行して接続を確認します。
Gemini CLI を起動します。
gemini
サーバーが準備完了であることを確認します。/mcp list と入力します。firestore-mcp にいくつかのツール(add_document, create_database, list_documents, etc)が表示されます。
次のプロンプトを順番に試してください。
シードデータ:
In the 'mcp-lab-db' database, add three documents to a 'products' collection. Include a laptop (stock 5), a mouse (stock 25), and a keyboard (stock 8).
確認事項:
List all documents in the 'products' collection from the 'mcp-lab-db' database.
自然言語で Firestore データベースとコレクションを管理するのに役立つ他のプロンプトも試してみてください。
7. 手順 D: インテリジェンス(BigQuery と Maps)
この手順では、BigQuery と Maps Grounding Lite MCP サーバーを使用して、ペタバイト単位のデータを分析し、現実世界を理解する機能をエージェントに提供します。
このセクションの最後までに、エージェントは自然言語を複雑な SQL クエリに変換し、コンテキスト認識型の地理空間アドバイス(移動時間や天気など)を提供して、回答を現実にグラウンディングできるようになります。
タスク 1: インテリジェンス サービスを有効にする
BigQuery と Google マップの両方で、API と MCP インターフェースを有効にします。
# 1. Enable product APIs
gcloud services enable bigquery.googleapis.com mapstools.googleapis.com
タスク 2: BigQuery IAM ロールを割り当てる
クエリを実行するには、ID に基本的な MCP アクセス以外の特定の権限が必要です。
# Grant BigQuery Job User and Data Viewer roles
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.dataViewer"
タスク 3: Maps API キーをプロビジョニングする
IAM のみに依存する他のサービスとは異なり、Maps Grounding Lite サーバーでは割り当てと課金に API キーが必要です。
キーを作成します。
gcloud alpha services api-keys create --display-name="MCP-Maps-Key"
キー文字列を取得します。
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Maps-Key'" \
--format="value(name)") \
--format="value(keyString)"
次のステップで使用するためにキー文字列をコピー します。
タスク 4: Gemini CLI を構成する
両方のサーバーを登録します。次のスニペットを ~/.gemini/settings.json ファイルの mcpServers セクションに追加します。 必要に応じて YOUR_PROJECT_ID と YOUR_MAPS_API_KEY を置き換えます。
"bigquery-mcp": {
"httpUrl": "https://bigquery.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
},
"maps-grounding-lite-mcp": {
"httpUrl": "https://mapstools.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_MAPS_API_KEY"
}
}
タスク 5: インテリジェンスの活用
Gemini CLI を起動し、新しい「インテリジェンス」機能をテストします。
gemini
サーバーが準備完了であることを確認します。/mcp list と入力します。bigquery-mcp と maps-grounding-lite-mcp にいくつかのツールが表示されます。。
シナリオ 1: 分析エンジン(BigQuery) SQL を知らなくても、エージェントに公開データセットのクエリを実行させます。
Run a query to count the number of penguins on each island in the BigQuery public dataset ml_datasets.penguins.
シナリオ 2: 地理空間コンテキスト(Maps) エージェントに実際の旅行を計画させます。
I am planning a drive from Mumbai to Pune tomorrow morning. Based on current weather and routing, what should I expect in terms of travel time and what should I carry?
確認すべき点:
- BigQuery の場合、エージェントは
execute_sqlを呼び出してスキーマを検出し、クエリを実行します。 - Maps の場合、
lookup_weatherと compute_routes をオーケストレートして、グラウンディングされた役立つ旅行プランを提供します。
8. 強化: 本番環境のセキュリティと IAM
この最後の手順では、広範な「オーナー」権限の使用から本番環境グレードの多層防御 モデルに移行します。
AI エージェントは本質的に「役立ちます」。UI レベルでツールを制限すると、スマート エージェントはシェルコマンドを実行してその制限を回避しようとする可能性があります。インフラストラクチャを真に保護するには、Google Cloud IAM を使用して厳格な境界を構築する必要があります。
二層セキュリティ モデル
エージェントがアクションを実行するには、次の 2 つのゲートを通過する必要があります。
- ゲート 1(MCP ゲート): ID に
roles/mcp.toolUserがありますか?(プロトコルを使用する権限)。 - ゲート 2(サービス ゲート): ID に特定のプロダクト ロール(
roles/datastore.viewerなど)がありますか?(データを確認する権限)。
タスク 1: レイヤ 1 - クライアントサイド フィルタリング(excludeTools)
最初の防御レイヤは、エージェントからツールを非表示にして、ツールを使用することを「考えない」ようにすることです。
- Cloud Shell エディタで Gemini CLI の設定を開きます。
cloudshell edit ~/.gemini/settings.json
- firestore-mcp ブロックを見つけて、破滅的なアクションを非表示にする
excludeToolsディレクティブを追加します。
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"excludeTools": ["delete_database", "update_database", "delete_document"],
...
}
ファイルを保存して、Gemini CLI を再起動します。/mcp list を実行すると、これらのツールがなくなっていることがわかります。
タスク 2: レイヤ 2 - インフラストラクチャの優位性(IAM バウンサー)
クライアントサイド フィルタリングは「ソフト」なガードレールです。エージェントに「Firestore データベースを削除する」ように指示し、ツールが非表示になっている場合、gcloud firestore databases delete を実行しようとする可能性があります。これを防ぐため、最小権限のサービス アカウントを使用します。
「読み取り専用」サービス アカウントを作成します。
# Create the service account
gcloud iam service-accounts create mcp-reader-sa --display-name="MCP Reader Only"
# Grant ONLY the necessary roles (Gate 1 + Gate 2)
export PROJECT_ID=$(gcloud config get-value project)
SA_EMAIL="mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/mcp.toolUser"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/datastore.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/aiplatform.user"
キーを生成して有効にします。
gcloud iam service-accounts keys create reader-key.json --iam-account=$SA_EMAIL
export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/reader-key.json
タスク 3: 「役立つエージェント」バウンサー テスト
エージェントがセキュリティをバイパスできるかどうかをテストしましょう。
最初の手順では、サービス アカウントを有効にします。これにより、エージェントが gcloud コマンドの使用にフォールバックした場合でも、作成したサービス アカウント ID で動作します。
サービス アカウントを有効にします。
次のコマンドを実行し、[PATH_TO_KEY_FILE] を JSON キーファイルの実際のパス(reader-key.json など)に置き換えます。
gcloud auth activate-service-account --key-file=[PATH_TO_KEY_FILE]
変更を確認します。
コマンドを実行したら、次のコマンドを実行して、サービス アカウントがアクティブであることを確認できます。
gcloud auth list
出力には、サービス アカウントがアクティブな認証情報として表示されます。
Gemini CLI を起動します。
gemini
次のプロンプトを入力します。
I want to delete the 'mcp-lab-db' firestore database. If the tool is missing, try using the gcloud firestore command in the terminal.
何が起こりますか?
- エージェントはまず、Firestore MCP サーバーで delete_database ツールを使用しようとします。権限がないため失敗します。
- 次に、
run_shell_commandツールにフォールバックして gcloud firestore コマンドを使用することで、「役立つ」ことを試みます。
結果:
このコマンドは失敗し、Forbidden エラーが返されます。エージェントは mcp-reader-sa ID で実行されているため、datastore.databases.delete 権限がありません。IAM は究極のバックストップです。エージェントがリソースにアクセスしようとしても、Google Cloud API レベルの「バウンサー」がリクエストをブロックします。
ユーザー アカウントに戻ります。
ユーザー アカウントに戻るには、次のコマンドを入力します。
gcloud config set account YOUR_EMAIL_ADDRESS
9. クリーンアップ
不要な料金が発生しないように、テストリソースを削除してください。
# Delete the Firestore database
gcloud firestore databases delete --database=mcp-lab-db
# Remove the service account
gcloud iam service-accounts delete mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com
10. まとめ
おめでとうございます!Google 管理の MCP サーバー のフルスタックを正常に操作できました。
ラボの「トランク」から始まり、Cloud Logging への基盤となる接続を確立しました。そこから、モジュール式の「アドベンチャー」に分岐しました。エージェントの知識のグラウンディング、複雑なトラブルシューティング ループの自動化、Firestoreでのデータの移行、BigQueryとMapsからのインテリジェンスの抽出です。
最も重要なことは、本番環境のセキュリティのルート にエージェントを固定して終了したことです。エージェントは過度に「役立つ」可能性がありますが、Google Cloud IAM は究極のバウンサーであり、自律型ワークフローが常に最小権限の原則を尊重することを証明しました。
重要ポイント
- マネージド = スケーラブル: 1 台のサーバーをデプロイすることなく、ストリーミング可能な HTTP 経由でインフラストラクチャ レベルのツールに接続しました。
- グラウンディングは必須: LLM の「推測」を Developer Knowledge MCP に置き換え、エージェントが最新の有効なコマンドを使用するようにしました。
- オーケストレーションは強力: エージェントが複数の MCP サーバーを組み合わせて 1 つのビジネス上の問題を解決するときに、真の魔法が起こることを確認しました。