MCP サーバーを使用すると、AI エージェント プラットフォームを使用してリソースを作成、管理、クエリ Google Cloud するツールにアクセスして実行できます。このドキュメント では、Visual Studio Code 用の Google Cloud Data Agent Kit 拡張機能から Google Cloud リモート Model Context Protocol(MCP) サーバーに接続する方法について説明します。
サポートされている MCP サーバー
VS Code 用の Data Agent Kit 拡張機能では、次のリモート MCP サーバーがサポートされています。プロダクト固有の詳細については、次のガイドをご覧ください。
- AlloyDB for PostgreSQL リモート MCP サーバーを使用する
- BigQuery MCP サーバーを使用する
- Cloud SQL リモート MCP サーバーを使用する
- Knowledge Catalog リモート MCP サーバーを使用する
- Managed Service for Apache Spark MCP サーバーを使用する
- Spanner リモート MCP サーバーを使用する
対応する API を有効にすると、リモート MCP サーバーが有効になります。たとえば、プロジェクトで Spanner API を有効にすると、Spanner リモート MCP が自動的に有効になります。
Google Cloud リモート MCP サーバー
Google と Google Cloud リモート MCP サーバーには、次の 機能とメリットがあります。- 簡素化された一元的な検出
- マネージド グローバルまたはリージョン HTTP エンドポイント
- きめ細かい認可
- Model Armor 保護によるプロンプトとレスポンスのセキュリティ(オプション)
- 一元的な監査ロギング
他の MCP サーバーと、Google Cloud サーバーで使用可能なセキュリティ とガバナンスの制御については、Google Cloud MCP サーバーの概要をご覧ください。
Model Context Protocol (MCP)により、大規模言語モデル(LLM)と AI アプリケーション(エージェント)が外部のデータソースに接続する方法が標準化されます。MCP サーバーを使用すると、そのツール、リソース、プロンプトを使用してアクションを実行し、バックエンド サービスから更新されたデータを取得できます。
ローカル MCP サーバーとリモート MCP サーバーの違いは何ですか?
- ローカル MCP サーバー
- 通常はローカルマシンで実行され、同じデバイス上のサービス間の通信に標準の入力ストリームと出力ストリーム(stdio)を使用します。
- リモート MCP サーバー
- サービスのインフラストラクチャで実行され、AI アプリケーションに HTTP エンドポイントを提供して、AI MCP クライアントと MCP サーバー間の通信を行います。MCP アーキテクチャの詳細については、 MCP アーキテクチャをご覧ください。
始める前に
- VS Code 用の Data Agent Kit 拡張機能をインストールします。
- 拡張機能を設定して構成します。 すべての API を有効にしてください。
必要なロール
IDE から
MCP サーバーにアクセスするために必要な権限を取得するには、管理者に、作業中のプロジェクトに対する MCP ツールユーザー
(roles/mcp.toolUser)IAM ロールの付与を依頼してください。 Google Cloud
アクセスするリソースによっては、拡張機能を使用するためのロール以外に追加のロールが必要になる場合があります。サポートされている各サービスのリモート MCP サーバーにアクセスするために必要な最小限の ロールについては、プロダクト固有のガイドをご覧ください。 Google Cloud
ロールの付与については、プロジェクト、 フォルダ、組織へのアクセス権の管理をご覧ください。
サービス アカウントの権限借用
VS Code 用の Data Agent Kit 拡張機能から MCP サーバーに接続する場合は、ユーザー認証情報を使用するか、サービス アカウントの権限借用を使用できます。 MCP サーバーに接続する場合は、gcloud CLI とアプリケーションのデフォルト認証情報(ADC)にサービス アカウントの権限借用を使用することをおすすめします。
これには、VS Code で Google Cloud と gcloud CLI へのログインに使用した認証情報(通常は ユーザーアカウント)から開始します。次に、サービス アカウントの一時的な認証情報をリクエストし、ユーザー認証情報の代わりにサービス アカウントの認証情報を使用します。詳細については、サービス アカウントの権限借用をご覧ください。
サービス アカウントの権限借用を使用して MCP サーバーに対して認証する方法については、サービス アカウントの権限借用をご覧ください。
認証と認可
次の認証と認可の手順を完了します。Google アカウントの認可の詳細については、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。IDE で認証プロセスを開始する
プロセスを開始するには、IDE のエージェント チャットにプロンプトを送信します。
- [チャット] パネルが表示されていない場合は、 Cmd/Ctrl+Shift+P を押してコマンド パレットを開き、「Open Chat」を検索して実行します。
[チャット] パネルで、次のプロンプトを送信します。
list BigQuery datasets using mcp serverエージェントは次の gcloud CLI コマンドを提案します。
gcloud config get-value project[許可] をクリックします。
クライアント ID を指定するかどうかを確認するダイアログが表示されます。
[Copy URIs &Proceed] をクリックします。
コマンド パレットが開き、OAuth クライアント ID を求められます。
OAuth クライアント ID を取得する
次に、 Google Cloud コンソールから OAuth クライアント ID を取得します。
- ブラウザでGoogle Cloud コンソールを開きます。
- [プロジェクトを選択] をクリックします。
- VS Code 用の Data Agent Kit 拡張機能で使用しているのと同じプロジェクトを選択します。
- [API ナビゲーション メニュー] で、[認証情報] をクリックします。
- [OAuth 2.0 クライアント ID] で、使用するクライアントの ID をクリックします。
- 詳細パネルの [その他の情報] で、 [クライアント ID] の値を見つけてコピーします。
VS Code に認証情報を指定する
IDE にクライアント ID とクライアント シークレットを入力します。
- VS Code に戻ります。
- [Add Client Registration Details] ダイアログにクライアント ID を貼り付けます。
- Enter キーを押します。
- コンソールに戻り、[クライアント シークレット] の値をコピーします。
- VS Code に戻ります。
[Add Client Registration Details] ダイアログにクライアント シークレットを貼り付けて、Enter キーを押します。
エージェントの実行が続行され、MCP サーバーが認証を必要としていることを示すダイアログが表示されます。
[許可] をクリックします。
Google アカウントに再度ログインするよう求められたら、手順に沿って操作し、IDE に戻ります。
エージェントは、リクエストされた BigQuery データセットを MCP サーバーから取得し、リストを表示します。
拡張機能で Google Cloud リモート MCP サーバーを構成する
IDE のエージェント ツールを使用すると、単一の MCP サーバーに接続する MCP クライアントをインスタンス化できます。さまざまな MCP サーバーに接続する複数のクライアントを設定できます。リモート MCP サーバーに接続するには、MCP クライアントが少なくともリモート MCP サーバーの URL を認識している必要があります。
クライアントごとに、必要に応じて次のものを使用します。
- サーバー名: SERVER_NAME
- エンドポイント: ENDPOINT
- トランスポート: HTTP
- 認証の詳細: 認証方法に応じて、認証情報、OAuth クライアント ID と
シークレット、またはエージェントの ID と認証情報を入力できます。
Google Cloud
- 認証の詳細については、MCP サーバーに対して認証するをご覧ください。
- サポートされている各サービスの認証の詳細については、 プロダクト固有のガイドをご覧ください。
- OAuth スコープ: AlloyDB MCP サーバーに接続するときに使用する OAuth 2.0 スコープ。
SERVER_NAME と ENDPOINT は、接続先のサービスの値
に置き換えます。AlloyDB の場合は、us-east4 などのリージョンを指定する必要があります。
サービス |
サーバー名 |
エンドポイント |
AlloyDB |
AlloyDB MCP サーバー |
https://alloydb.REGION.rep.googleapis.com/mcp |
BigQuery |
BigQuery MCP サーバー |
https://bigquery.googleapis.com/mcp |
Cloud SQL |
Cloud SQL MCP サーバー |
https://sqladmin.googleapis.com/mcp |
Knowledge Catalog |
Knowledge Catalog MCP サーバー |
https://dataplex.googleapis.com/mcp |
Managed Service for Apache Spark |
Managed Service for Apache Spark MCP サーバー |
https://dataproc-us-central1.googleapis.com/mcp |
Spanner |
Spanner MCP サーバー |
https://spanner.googleapis.com/mcp |
ツールボックスとリモート MCP サーバーの MCP 構成
接続する Google Cloud Data Agent Kit サービスごとに、次の構成を使用します。
AlloyDB
リモート
'alloydb': {
remote: {
vscode: {
'datacloud_alloydb_remote': {
type: 'http',
url: 'https://alloydb.REGION.rep.googleapis.com/mcp',
authProviderType: 'google_credentials',
oauth: {
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
},
},
ローカル
'datacloud_alloydb-postgres-admin_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
'@toolbox-sdk/server@>=1.1.0',
'--prebuilt',
'alloydb-postgres-admin',
'--stdio'
],
'env': {},
},
'datacloud_alloydb-postgres_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
'@toolbox-sdk/server@>=1.1.0',
'--prebuilt',
'alloydb-postgres',
'--stdio'
],
'env': {
'ALLOYDB_POSTGRES_CLUSTER': '',
'ALLOYDB_POSTGRES_DATABASE': '',
'ALLOYDB_POSTGRES_INSTANCE': '',
'ALLOYDB_POSTGRES_IP_TYPE': '',
'ALLOYDB_POSTGRES_PASSWORD': '',
'ALLOYDB_POSTGRES_PROJECT': '',
'ALLOYDB_POSTGRES_REGION': '',
'ALLOYDB_POSTGRES_USER': '',
},
},
BigQuery
リモート
'datacloud_bigquery_remote': {
type: 'http',
url: 'https://bigquery.googleapis.com/mcp',
authProviderType: 'google_credentials',
oauth: {
scopes: [
'https://www.googleapis.com/auth/bigquery',
'https://www.googleapis.com/auth/cloud-platform',
],
},
},
ローカル
'datacloud_bigquery_toolbox': {
command: 'npx',
args: [
'-y',
'@toolbox-sdk/server@>=1.1.0',
'--prebuilt',
'bigquery',
'--stdio'
],
env: {
'BIGQUERY_LOCATION': '',
'BIGQUERY_PROJECT': '',
},
},
Cloud SQL
リモート
'datacloud_cloud-sql_remote': {
type: 'http',
url: 'https://sqladmin.googleapis.com/mcp',
authProviderType: 'google_credentials',
oauth: {
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
},
},
ローカル
'datacloud_cloud-sql-postgresql-admin_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
'@toolbox-sdk/server@>=1.1.0',
'--prebuilt',
'cloud-sql-postgres-admin',
'--stdio'
],
'env': {},
},
'datacloud_cloud-sql-postgresql_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
'@toolbox-sdk/server@>=1.1.0',
'--prebuilt',
'cloud-sql-postgres',
'--stdio'
],
'env': {
'CLOUD_SQL_POSTGRES_DATABASE': '',
'CLOUD_SQL_POSTGRES_INSTANCE': '',
'CLOUD_SQL_POSTGRES_IP_TYPE': '',
'CLOUD_SQL_POSTGRES_PASSWORD': '',
'CLOUD_SQL_POSTGRES_PROJECT': '',
'CLOUD_SQL_POSTGRES_REGION': '',
'CLOUD_SQL_POSTGRES_USER': '',
},
},
Knowledge Catalog
リモート
'datacloud_knowledge_catalog_remote': {
type: 'http',
url: 'https://dataplex.googleapis.com/mcp',
authProviderType: 'google_credentials',
oauth: {
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
},
ローカル
'datacloud_knowledge_catalog_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
'@toolbox-sdk/server@>=1.1.0',
'--prebuilt',
'dataplex',
'--stdio'
],
'env': {
'DATAPLEX_PROJECT': '${PROJECT_ID}',
}
Managed Service for Apache Spark
リモート
'datacloud_managed_apache_spark_remote': {
type: 'http',
url: 'https://dataproc-${REGION}.googleapis.com/mcp',
authProviderType: 'google_credentials',
oauth: {
scopes: ['https://www.googleapis.com/auth/dataproc'],
},
},
ローカル
'datacloud_managed_apache_spark_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
TOOLBOX_VERSION,
'--prebuilt',
'dataproc',
'--stdio',
'--user-agent-metadata',
'google-cloud-data-agent-kit-${IDE_TYPE}',
],
'env': {
'DATAPROC_PROJECT': '${PROJECT_ID}',
'DATAPROC_REGION': '${REGION}',
},
},
'datacloud_serverless-spark_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
TOOLBOX_VERSION,
'--prebuilt',
'serverless-spark',
'--stdio',
'--user-agent-metadata',
'google-cloud-data-agent-kit-${IDE_TYPE}',
],
'env': {
'SERVERLESS_SPARK_PROJECT': '${PROJECT_ID}',
'SERVERLESS_SPARK_LOCATION': '${REGION}',
},
},
Spanner
リモート
'datacloud_spanner_remote': {
type: 'http',
url: 'https://spanner.googleapis.com/mcp',
authProviderType: 'google_credentials',
oauth: {
scopes: [
'https://www.googleapis.com/auth/spanner.admin',
'https://www.googleapis.com/auth/spanner.data',
],
},
},
ローカル
'datacloud_spanner_toolbox': {
'$typeName': 'exa.cascade_plugins_pb.CascadePluginCommandTemplate',
'command': 'npx',
'args': [
'-y',
'@toolbox-sdk/server@>=1.1.0',
'--prebuilt',
'spanner',
'--stdio'
],
'env': {
'SPANNER_DATABASE': '',
'SPANNER_DIALECT': '',
'SPANNER_INSTANCE': '',
'SPANNER_PROJECT': '',
},
},
セキュリティと安全に関するオプションの構成
MCP ツールで実行できるアクションが多岐にわたるため、MCP によって新たなセキュリティリスクと考慮事項が加わります。これらのリスクを最小限に抑えて管理するために、 Google Cloud は、組織またはプロジェクトでの MCP ツールの使用を制御するデフォルト設定とカスタマイズ可能なポリシーを提供します。 Google Cloud
MCP のセキュリティとガバナンスの詳細については、 AI のセキュリティと安全性をご覧ください。
Model Armor を使用する
Model Armor は、AI アプリケーションのセキュリティと 安全性を強化するために設計された Google Cloud サービスです。LLM のプロンプトとレスポンスを事前にスクリーニングすることで、さまざまなリスクから保護し、責任ある AI への取り組みをサポートします。クラウド環境や外部クラウド プロバイダに AI をデプロイする場合でも、Model Armor を使用すると、悪意のある入力からの防御、コンテンツの安全性の検証、センシティブ データの保護、コンプライアンスの維持、多様な AI 環境全体で AI の安全性とセキュリティ ポリシーの一貫した適用が可能になります。
ロギングを有効にして Model Armorを有効にすると、Model Armor はペイロード全体を ログに記録します。これにより、機密情報がログに公開される可能性があります。
Model Armor を有効にする
Model Armor を使用するには、Model Armor API を有効にする必要があります。
コンソール
Model Armor API を有効にする。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。Model Armor を有効にするプロジェクトを選択します。
gcloud
始める前に、Google Cloud CLI で Model Armor API を使用して、次の処理を行います。
コンソールで Cloud Shell をアクティブにします。 Google Cloud
コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。
-
次のコマンドを実行して、Model Armor サービスの API エンドポイントを設定します。
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
LOCATIONは、Model Armor を使用するリージョンに置き換えます。
Google と Google Cloud リモート MCP サーバーの保護を構成する
MCP ツールの呼び出しとレスポンスを保護するには、Model Armor のフロア設定を使用します。フロア設定では、プロジェクト全体に適用される最小限のセキュリティ フィルタを定義します。この構成では、プロジェクト内のすべての MCP ツールの呼び出しとレスポンスに一貫したフィルタセットが適用されます。
MCP サニタイズを有効にして、Model Armor のフロア設定を行います。詳細については、Model Armor のフロア 設定を構成するをご覧ください。
次のコマンド例をご覧ください。
gcloud model-armor floorsettings update \ --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \ --enable-floor-setting-enforcement=TRUE \ --add-integrated-services=GOOGLE_MCP_SERVER \ --google-mcp-server-enforcement-type=INSPECT_AND_BLOCK \ --enable-google-mcp-server-cloud-logging \ --malicious-uri-filter-settings-enforcement=ENABLED \ --add-rai-settings-filters='[{"confidenceLevel": "MEDIUM_AND_ABOVE", "filterType": "DANGEROUS"}]'
PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。
次の設定に注意してください。
INSPECT_AND_BLOCK: Google MCP サーバーのコンテンツを検査し、フィルタに一致するプロンプトとレスポンスをブロックする適用タイプ。ENABLED: フィルタまたは 適用を有効にする設定。MEDIUM_AND_ABOVE: 責任ある AI - 危険なフィルタ設定の信頼レベル。この設定は変更できますが、 値を小さくすると誤検出が増える可能性があります。詳細については、Model Armor の信頼レベルをご覧ください。
Model Armor による MCP トラフィックのスキャンを無効にする
プロジェクトのフロア設定に基づいて、Google MCP サーバーとの間のトラフィックを Model Armor が自動的にスキャンしないようにするには、次のコマンドを実行します。
gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--remove-integrated-services=GOOGLE_MCP_SERVER
PROJECT_ID は、 Google Cloud プロジェクト
ID に置き換えます。Model Armor
は、このプロジェクトのフロア設定で定義されたルールを Google MCP サーバーのトラフィックに自動的に適用しません。
Model Armor のフロア設定と一般的な構成は、MCP だけでなく、他のサービスにも影響する可能性があります。Model Armor は Vertex AI などのサービスと統合されているため、フロア設定を変更すると、MCP だけでなく、統合されているすべてのサービスでトラフィックのスキャンと安全性の動作に影響する可能性があります。
IAM 拒否ポリシーで MCP の使用を制御する
Identity and Access Management(IAM)拒否ポリシーは、リモート MCP サーバーの 保護 Google Cloud に役立ちます。不要な MCP ツールのアクセスをブロックするように、これらのポリシーを構成します。
たとえば、次の条件に基づいてアクセスを拒否または許可できます。
- プリンシパル
- 読み取り専用などのツール プロパティ
- アプリケーションの OAuth クライアント ID
詳細については、Identity and Access Management による MCP の使用の制御をご覧ください。
トラブルシューティング
VS Code 用の Data Agent Kit 拡張機能のエラーを診断して解決する方法については、 VS Code 用の Data Agent Kit 拡張機能のトラブルシューティングをご覧ください。