Install the ADK and set up your environment

進行状況を確認

/ 50

Create the API key and deploy the ADK agent

進行状況を確認

/ 50

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
注: 一貫性のある高パフォーマンスなエクスペリエンスを提供するため、このラボでは一部のモデル リクエストに対してキャッシュされた応答が提供される場合があります。

GENAI124

Google Cloud セルフペース ラボ

概要

このラボでは、外部のサービス、データソース、ツール、アプリケーションとのシームレスな統合を可能にするオープン スタンダード、Model Context Protocol(MCP)について理解します。MCP を Agent Development Kit(ADK)エージェントに統合することで、既存の MCP サーバーが提供しているツールを使用して ADK ワークフローを強化する方法を学習します。さらに、独自で作成した MCP サーバーを使用して load_web_page などの ADK ツールを公開し、MCP クライアントとの幅広い統合を実現する方法も紹介します。

Model Context Protocol(MCP)とは

Model Context Protocol(MCP)は、Gemini や Claude などの大規模言語モデル(LLM)が外部のアプリケーション、データソース、ツールと通信する方法を標準化するために設計されたオープン標準です。LLM がコンテキストを取得し、アクションを実行し、さまざまなシステムとやり取りする方法を簡素化する、ユニバーサルな接続メカニズムと考えてください。

MCP では、クライアント / サーバー アーキテクチャが採用されており、データ(リソース)、インタラクティブ テンプレート(プロンプト)、アクション可能な関数(ツール)を MCP サーバーで公開する方法と、それらを MCP クライアント(LLM ホスト アプリケーションまたは AI エージェント)で使用する方法が規定されています。

このラボでは、次の 2 つの主要な統合パターンについて説明します。

  • ADK 内で既存の MCP サーバーを使用する: ADK エージェントが MCP クライアントとして動作し、外部の MCP サーバーが提供しているツールを使用します。
  • MCP サーバーを使用して ADK ツールを公開する: ADK ツールをラップする MCP サーバーを構築し、MCP クライアントにツールを提供します。

目標

このラボでは、次のタスクの実行方法について学びます。

  • ADK エージェントを MCP クライアントとして使用して、既存の MCP サーバーのツールと対話する。
  • 独自の MCP サーバーを構成してデプロイし、ADK ツールを他のクライアントに公開する。
  • 標準化された MCP 通信を通じて、ADK エージェントを外部ツールに接続する。
  • MCP を使用して、LLM とツール間のシームレスな対話を実現する。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

タスク 1. ADK をインストールして環境を設定する

このラボ環境では、Vertex AI APIRoutes APIDirections API がすでに有効になっています。

Cloud Shell エディタタブを準備する

  1. Google Cloud コンソールで、Cloud コンソールの右上にある [Cloud Shell をアクティブにする] ボタン(Cloud Shell をアクティブにする)をクリックします。
  2. [続行] をクリックします。
  3. Cloud Shell を承認するよう求められたら、[承認] をクリックします。
  4. Cloud Shell ターミナル パネルの右上にある「新しいウィンドウで開く」ボタン(「新しいウィンドウで開く」ボタン)をクリックします。
  5. ペインの上部にある [エディタを開く] アイコン(編集(鉛筆)アイコン)をクリックしてファイルを表示します。
  6. 左側のナビゲーション メニューの上部にあるエクスプローラ アイコン(エクスプローラ アイコン)をクリックして、ファイル エクスプローラを開きます。
  7. [Open Folder] ボタンをクリックします。
  8. 表示された [Open Folder] ダイアログで [OK] をクリックし、受講者アカウントのホームフォルダを選択します。
  9. 画面の右側に表示される追加のチュートリアルや Gemini のパネルを閉じると、コードエディタのウィンドウをより広く使用できます。
  10. このラボの残りの部分では、このウィンドウを Cloud Shell エディタと Cloud Shell ターミナルを備えた IDE として使用できます。

ADK とこのラボのコードサンプルをダウンロードしてインストールする

このセクションでは、Cloud Shell ターミナルで次のコマンドを実行します。

  1. Cloud Shell ターミナルで次のコマンドを実行して、Cloud Storage からプロジェクト ディレクトリをコピーします。

    gcloud storage cp -r gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/* .
  2. 次のコマンドを実行して、Agent Development Kit(ADK)と、サンプル アプリケーションの実行に必要なその他の依存関係をインストールします。

    export PATH=$PATH:"/home/${USER}/.local/bin" python3 -m pip install google-adk==1.22.1 -r adk_mcp_tools/requirements.txt

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ADK をインストールして環境を設定する

タスク 2. ADK 開発 UI で ADK エージェント(MCP クライアントとして動作する ADK)から Google マップ MCP サーバーを使用する

このセクションでは、外部の Google マップ MCP サーバーのツールを ADK エージェントに統合する方法を説明します。これは、ADK エージェントが、MCP インターフェースを公開している既存のサービスから提供される機能を使用する必要がある場合に最も一般的な統合パターンです。MCPToolset クラスをエージェントの tools リストに直接追加することで、MCP サーバーへのシームレスな接続や MCP サーバーのツールの検出を可能にし、エージェントがツールを使用できるようにする方法を確認します。これらの例は、主に adk web 開発環境内でのやり取りに焦点を当てています。

MCPToolset

MCPToolset クラスは、MCP サーバーのツールを統合するための ADK の主要なメカニズムです。エージェントの tools リストに MCPToolset インスタンスを指定すると、指定した MCP サーバーとの対話が自動的に処理されます。仕組みは次のとおりです。

  • 接続管理: 初期化時に、MCPToolset は MCP サーバーへの接続を確立し、この接続を管理します。この接続は、ローカル サーバーでのプロセスにすることも(StdioServerParameters を使用して標準入出力による通信を行う)、リモート サーバーにすることもできます(SseServerParams を使用して Server-Sent Events を実行する)。ツールセットはまた、エージェントまたはアプリケーションが終了したときに、この接続を正常にシャットダウンさせます。
  • ツールの検出と適応: 接続が確立されると、MCPToolset は MCP サーバーに利用可能なツールを問い合わせます(list_tools MCP メソッドを使用)。その後、検出された MCP ツールのスキーマを ADK 対応の BaseTool インスタンスに変換します。
  • エージェントへの公開: これらの適応されたツールは、ネイティブの ADK ツールであるかのように、LlmAgent で使用できるようになります。
  • ツール呼び出しのプロキシ: LlmAgent がこれらのツールのいずれかを使用することを決定すると、MCPToolset は(call_tool MCP メソッドを使用して)呼び出しを MCP サーバーに透過的に中継し、必要な引数を送信して、サーバーからのレスポンスをエージェントに返します。
  • フィルタリング(省略可): MCPToolset を作成する際に tool_filter パラメータを使用すると、MCP サーバーから特定のツールのサブセットを選択できます。これにより、すべてのツールをエージェントに公開する必要がなくなります。

API キーを取得して API を有効にする

Google マップ MCP サーバーは、Google マップサービスと通信するために API キーを必要とします。この手順では、GOOGLE_MAPS_API_KEY という名前の新しい API キーを生成し、セキュリティのために Directions API と Routes API に制限します。

  1. Google Cloud コンソールのブラウザタブに移動します(Cloud Shell エディタではありません)。

  2. このブラウザタブで Cloud Shell ターミナル ペインを閉じて、コンソール領域を広げます。

  3. ページ上部の検索バーで「認証情報」を検索します。検索結果から認証情報を選択します。

  4. [認証情報] ページで、ページ上部にある [認証情報の作成] をクリックし、[API キー] を選択します。

  5. [名前] に「GOOGLE_MAPS_API_KEY」と入力します。

  6. [このキーを使用してアクセスできる API] で、次の API を選択します。

    • Directions API
    • Routes API
  7. [作成] をクリックします。

    [API キーを作成しました] ダイアログで、新しく作成された API キーが表示されます。ラボで後で使用できるように、このキーをコピーしてローカルに保存します。

  8. ダイアログ ボックスで [閉じる] をクリックします。

    Google マップキー

Google マップの MCPToolset を使用してエージェントを定義する

次に、Google マップツールを使用するようにエージェントを構成します。MCPToolset を追加することで、エージェントは必要に応じて Maps API を動的に検出して呼び出すことができます。

  1. 次のコマンドをパソコンのプレーン テキスト ドキュメントに貼り付け、YOUR_ACTUAL_API_KEY の値を、前の手順で生成して保存した Google Maps API キーに更新します。

    cd ~/adk_mcp_tools cat << EOF > google_maps_mcp_agent/.env GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={{{project_0.project_id | Project }}} GOOGLE_CLOUD_LOCATION=global GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_API_KEY" MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}} EOF
  2. 更新したコマンドをコピーして Cloud Shell ターミナルに貼り付け、実行して .env ファイルを作成します。このファイルには、このエージェント ディレクトリの認証情報が記載されています。

  3. 次のコマンドを実行して、.env ファイルをこのラボで後で使用する他のエージェント ディレクトリにコピーします。

    cp google_maps_mcp_agent/.env adk_mcp_server/.env
  4. Cloud Shell エディタのファイル エクスプローラ ペインで、adk_mcp_tools フォルダを見つけます。クリックして開きます。

  5. ディレクトリ adk_mcp_tools/google_maps_mcp_agent に移動します。

  6. agent.py を開き、コメント ## Add the MCPToolset の後(53 行目の後の新しい行)に次のコードを追加して、Google マップ MCP サーバーへのエージェントの接続を構成します。

    tools=[ MCPToolset( connection_params=StdioConnectionParams( server_params=StdioServerParameters( command='npx', args=[ "-y", "@modelcontextprotocol/server-google-maps", ], env={ "GOOGLE_MAPS_API_KEY": google_maps_api_key } ), timeout=15, ), ) ],
  7. ファイルを保存します。

  8. adk_mcp_tools プロジェクト ディレクトリから、次のコマンドで Agent Development Kit 開発 UI を起動します。

    adk web --allow_origins "regex:https://.*.cloudshell.dev" --otel_to_cloud --reload_agents

    出力:

    INFO: Started server process [2434] INFO: Waiting for application startup. +----------------------------------------------------+ | ADK Web Server started | | | | For local testing, access at http://localhost:8000.| +----------------------------------------------------+ INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  9. ウェブ インターフェースを新しいタブで表示するには、ターミナルの出力にある http://127.0.0.1:8000 リンクをクリックします。

  10. 新しいブラウザタブが開き、ADK 開発 UI が表示されます。左側の [エージェントを選択] プルダウンから、[google_maps_mcp_agent] を選択します。

  11. エージェントとの会話を開始し、次のプロンプトを実行します。

    Googleplex から SFO までのルートを教えて。 注: API を初めて使用したときにタイムアウトになった場合は、ADK 開発 UI の右上にある [+ 新しいセッション] をクリックして、もう一度お試しください。 フランスのパリからドイツのベルリンまでのルートを教えて。

    出力:

    エージェントの回答

  12. 稲妻のマークが表示されたエージェントのチャットのふきだしの横にあるエージェントのアイコンをクリックします。稲妻のマークは関数呼び出しを表しています。このイベントのイベント インスペクタが開きます。

    ADK のツール呼び出し

    エージェント グラフに、さまざまなツール(レンチの絵文字(🔧)で表されています)が表示されていることに注目してください。MCPToolset を 1 つだけインポートしましたが、このツールセットには、maps_place_detailsmaps_directions など、ここにリストされているさまざまなツールが付属しています。

    複数のツールが示されているエージェントのグラフ

    [イベント] タブで、リクエストの構造を確認できます。イベント インスペクタの上部にある矢印を使用して、エージェントの思考、関数呼び出し、回答を閲覧できます。

  13. このエージェントへの質問が終わったら、開発 UI のブラウザタブを閉じます。

  14. Cloud Shell ターミナル パネルに戻り、Ctrl+C キーを押してサーバーを停止します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 API キーを作成し、ADK エージェントをデプロイする

タスク 3. ADK ツールを使用して MCP サーバーを構築する(ADK を公開する MCP サーバー)

このセクションでは、独自で作成した MCP サーバーを使用して ADK load_web_page ツールを公開する方法を学びます。このパターンを使用すると、既存の ADK ツールをラップして、標準の MCP クライアント アプリケーションに提供することができます。

MCP サーバー スクリプトを作成し、サーバー ロジックを実装する

  1. Cloud Shell エディタに戻り、adk_mcp_tools/adk_mcp_server ディレクトリを選択します。

  2. adk_server.py という名前の Python ファイルを開きます。このファイルには、カスタム MCP サーバーのロジックが含まれています。コードを確認して、ADK ツールをラップして提供する方法を確認します。

    時間を取ってそのファイルの内容を確認し、コメントを読んで、コードがツールをラップして MCP サーバーとして提供していることを理解してください。MCP クライアントが、利用可能なツールを一覧表示できるだけでなく、ADK ツールを非同期で呼び出して、MCP 準拠の形式でリクエストとレスポンスを処理できることに注目してください。

ADK エージェントでカスタム MCP サーバーをテストする

  1. adk_mcp_server ディレクトリの agent.py を開きます。

  2. 31 行目で、PATH_TO_YOUR_MCP_SERVER_SCRIPT の値を次のパスに更新して、エージェントがカスタム サーバー スクリプトに接続できるようにします。

    /home/{{{project_0.startup_script.updated_lab_username | Username}}}/adk_mcp_tools/adk_mcp_server/adk_server.py
  3. 次に、55 行目agent.py ファイルの ## Add the MCPToolset below: と記載されている行の後)に次のコードを追加して、エージェントに MCPToolset を追加します。ADK エージェントは MCP サーバーのクライアントとして機能します。この ADK エージェントは MCPToolset を使用して adk_server.py スクリプトに接続します。

    tools=[ MCPToolset( connection_params=StdioConnectionParams( server_params=StdioServerParameters( command="python3", # MCP サーバー スクリプトを実行するコマンド args=[PATH_TO_YOUR_MCP_SERVER_SCRIPT], # 引数はスクリプトのパス ), timeout=15, ), tool_filter=['load_web_page'] # 省略可: 特定のツールのみが読み込まれるようにする ) ],
  4. ファイルを保存します。

  5. MCP サーバーを実行するために、Cloud Shell ターミナルで次のコマンドを実行して adk_server.py スクリプトを起動します。

    python3 ~/adk_mcp_tools/adk_mcp_server/adk_server.py

    出力:

    MCP サーバー

  6. Cloud Shell ターミナル ウィンドウの上部にある セッションを追加するボタン ボタンをクリックして、新しい Cloud Shell ターミナルタブを開きます。

  7. Cloud Shell ターミナルで、adk_mcp_tools プロジェクト ディレクトリから次のコマンドで Agent Development Kit 開発 UI を起動します。

    export PATH=$PATH:"/home/${USER}/.local/bin" cd ~/adk_mcp_tools adk web --allow_origins "regex:https://.*.cloudshell.dev" --otel_to_cloud --reload_agents 注: 新しい Cloud Shell ターミナルでは、`PATH` を含めずにコマンドを実行するとエラーが発生する可能性があるため、このコマンドに `PATH` を追加してリセットしています。通常、これは「adk web」が見つからないエラーです。
  8. ウェブ インターフェースを新しいタブで表示するには、ターミナルの出力にある http://127.0.0.1:8000 リンクをクリックします。

  9. 左側の [エージェントを選択] プルダウンから、[adk_mcp_server] を選択します。

  10. エージェントに次のようにプロンプトを入力します。

    http://example.com からコンテンツを読み込んで。

    出力:

    エージェントの回答

    ここでは次の処理が行われます。

    • ADK エージェント(web_reader_mcp_client_agent)が、MCPToolset を使用して adk_server.py に接続します。
    • MCP サーバーが、call_tool リクエストを受信し、ADK load_web_page ツールを実行して結果を返します。
    • ADK エージェントがこの情報を中継します。Cloud Shell ターミナルのタブに、ADK ウェブ UI(およびそのターミナル)と adk_server.py ターミナルの両方からのログが表示されます。

    これは、ADK ツールを MCP サーバー内にカプセル化することで、ADK エージェントを含む幅広い MCP 準拠クライアントから ADK ツールにアクセスできるようになったことを示しています。

お疲れさまでした

このラボでは、MCPToolset クラスを使用して、外部の Model Context Protocol(MCP)ツールを Agent Development Kit(ADK)エージェントに統合する方法を学びました。MCP サーバーに接続し、エージェント内でサーバーのツールを使用する方法、カスタム MCP サーバーを介して load_web_page などの ADK ツールを公開する方法を学びました。これらのスキルにより、強力な外部サービスで ADK エージェントを拡張し、ウェブ開発ワークフローを強化できます。

マニュアルの最終更新日: 2026 年 4 月 21 日

ラボの最終テスト日: 2026 年 4 月 21 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。

ラボを開始するには、この簡単な手順を完了してください。