Google Cloud MCP Serversを解説

記事タイトルとURLをコピーする

G-gen の佐々木です。当記事では、Google Cloud が提供するリモート MCP サーバーである Google Cloud MCP Servers について解説します。

概要

Google Cloud MCP servers とは

Google Cloud MCP servers は、Google および Google Cloud が提供するフルマネージドのリモート MCP サーバーです。BigQuery や Compute Engine といったプロダクトを利用するための MCP ツールが提供されます。

Google Cloud MCP servers は Google 管理のインフラストラクチャ上で動作するため、ユーザーによる運用管理は不要です。専用の HTTP エンドポイントを通じて、MCP サーバーをすぐに使い始めることができます。

Google Cloud MCP servers で提供される MCP サーバーに対しては、Identity and Access Management(IAM)、OAuth、API キーなどの方法で認証を行います。

提供される MCP サーバー

Google Cloud MCP servers として提供されている MCP サーバーは、Google プロダクトに関する Google MCP Servers と、Google Cloud プロダクトに関する Google Cloud MCP Servers の2種類があります。当記事では、それぞれの呼称を「Google Cloud MCP servers」と統一します。

2025年12月12日時点では、以下のプロダクトの MCP サーバーがサポートされています。

  • BigQuery
  • Compute Engine
  • Google Kubernetes Engine(GKE)
  • Google Maps Platform Grounding Lite

提供されている MCP サーバーの一覧は、後述の Cloud API Registry の API で取得することができます。

# 利用できる MCP サーバーの一覧を取得する(2025年12月12日時点)
$ gcloud beta api-registry mcp servers list --all --format="table(urls[0],description)"
URLS                          DESCRIPTION
compute.googleapis.com/mcp    This is an MCP server which provides tools to manage Google Compute Engine resources.
container.googleapis.com/mcp  This is an MCP server which provides tools to manage Google Kubernetes Engine (GKE) clusters and their Kubernetes resources.
bigquery.googleapis.com/mcp   BigQuery MCP server provides tools to interact with BigQuery
mapstools.googleapis.com/mcp  This is an MCP server provided by the Maps Grounding Lite API. The server provides tools for developers to build LLM applications on top of Google Maps Platform.

注意点

Google Cloud MCP Servers は、2025年12月現在、Public Preview 版です。当記事で解説する内容は一般提供(GA)の際に変更される可能性があることを予めご了承ください。

Preview 版のサービスや機能を使うに当たっての注意点は、以下の記事も参考にしてください。

blog.g-gen.co.jp

前提知識

MCP サーバーとは

Model Context Protocol(MCP)は、Anthropic 社によって開発された、大規模言語モデル(LLM)と外部ツールを連携するためのオープンプロトコルです。

MCP サーバーは、MCP で実装された外部ツールを提供するためのサーバーです。ファイルシステムやメール、データベース、天気情報 API などを操作する機能をツールとして公開することで、LLM の機能を特定の用途に合わせて拡張することができます。

MCP サーバーに対しては、Gemini CLI や Claude Desktop、Cursor、Cline といった LLM アプリケーションから接続することができます。

リモート MCP サーバー

ローカル MCP サーバーはローカル環境で動作する MCP サーバーであり、GitHub などで公開されている MCP サーバーや、自分で実装した MCP サーバーをローカル環境(自分の PC 等)で実行して利用します。

それに対して、リモート MCP サーバーはインターネットを通じてアクセスできる MCP サーバーであり、Streamable HTTP を使用して MCP サーバーに接続します。ローカル MCP サーバーと比べて、複数のユーザーが利用する MCP サーバーを一元的に管理・共有できるメリットがあります。

リモート MCP サーバーの例として、サーバーレス コンピューティング サービスである Cloud Run を利用して、MCP サーバーをホストする方法があります。Cloud Run の強みであるスケーラビリティや、IAM 認証によるアクセス制御を活用することで、複数のユーザーに対して MCP サーバーを安全に提供することができます。

Cloud Run でリモート MCP サーバーをホストする方法については、以下の記事をご一読ください。

blog.g-gen.co.jp

セキュリティと安全性

MCP サーバーに対する認証

Google Cloud の IAM を使用して、MCP サーバーに対するアクセス制御を行うことができます。

MCP サーバーのツールを使用するには、プリンシパル(Google アカウント、サービスアカウントなど)に対して組織/フォルダ/プロジェクトレベルで以下のロールを付与します。

  • MCP ツールのユーザーroles/mcp.toolUser
  • Service Usage ユーザーroles/serviceusage.serviceUsageAdmin

また、MCP ツールを介して操作する各サービスの権限も必要となる点に注意してください。

ユーザーのローカル環境から Google Cloud MCP Servers にアクセスする場合、gcloud auth application-default login コマンドを使用してアプリケーションのデフォルト認証情報(ADC)を設定するか、サービスアカウントの権限借用(impersonate)を使用して認証を行います。

Compute Engine や Cloud Run などの Google Cloud リソースから MCP サーバーにアクセスする場合は、リソースに紐付けられたサービスアカウントで認証を行います。

その他の環境では、Google API の OAuth クライアント ID を使用して認証を行うこともできます。

拒否ポリシーによる読み取り/書き込み操作の制限

MCP ツールの利用に際しては、IAM の機能である拒否ポリシーを設定することができます。これにより、特定のユーザーが呼び出した MCP ツールによる意図しないリソース変更などを防ぐことができます。

例えば、以下の拒否ポリシーは、すべてのプリンシパルに対して読み取り専用ではない(リソースの作成/変更/削除を行う)MCP ツールの呼び出しを禁止します。

{
  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/public:all"
        ],
        "deniedPermissions": [
          "mcp.googleapis.com/tools.call"
        ],
        "denialCondition": {
          "title":  "Deny read-write tools",
          "expression": "api.getAttribute('mcp.googleapis.com/tool.isReadOnly', false) == false",
        }
      }
    }
  ]
}

IAM の拒否ポリシーの詳細については、以下の記事をご一読ください。

blog.g-gen.co.jp

組織ポリシーによる制限

組織ポリシーを使用することで、MCP サーバーの利用を特定のプロジェクトに制限したり、特定の MCP サーバーのみの使用を許可したりなどの細かい制限を行うことができます。

MCP サーバーの利用の制限には、gcp.managed.mcpAllowedServices 制約を使用します。

組織ポリシーでMCP サーバーの使用を制限する

監査ログ

Cloud Logging には、Google Cloud MCP servers の監査ログが記録されます。

MCP サーバーごとの監査ログは以下のクエリ条件で取得できます。

protoPayload.serviceName="<サービス API エンドポイント>/mcp"

例えば、BigQuery MCP サーバーの場合は、以下の条件で監査ログをフィルタリングすることができます。

protoPayload.serviceName="bigquery.googleapis.com/mcp"

監査ログには、使用した MCP サーバーのエンドポイントやツールの名前などが記録されています。

Google Cloud MCP Servers の監査ログ

監査ログのうち、MCP サーバーのデータアクセス監査ログについては、MCP ツールによるデータアクセスが非常に多くなり、監査ログのサイズが膨大になる可能性があります。データアクセス監査ログはデフォルトで無効になっています。

Model Armor との統合

Model Armor は、生成 AI のプロンプトやレスポンスをスクリーニングして、不適切な内容や機密データを漏洩する可能性のある内容、プロンプトインジェクションなどを検出、サニタイズすることができるフルマネージドサービスです。

Model Armor との統合により、MCP ツールの利用をスクリーニングし、より安全に MCP サーバーを利用することができます。

Model Armor の詳細については、以下の記事をご一読ください。

blog.g-gen.co.jp

Cloud API Registry

Cloud API Registry は、Google Cloud MCP servers、および Apigee API Hub で管理している自組織の MCP サーバーを管理するためのサービスです。

自組織で利用している MCP サーバーや MCP ツールの検索、Google Cloud MCP servers の有効化/無効化を行うことができます。

使用方法

MCP サーバーの有効化

Google Cloud MCP servers の使用例として、BigQuery remote MCP server を使用してみます。

はじめに、利用する MCP サーバーを有効化します。

# BigQuery MCP サーバーを有効にする
$ gcloud beta services mcp enable bigquery.googleapis.com

有効化した MCP サーバーの一覧を表示してみます。

# 有効化した MCP サーバーの一覧を表示する
$ gcloud beta services mcp list --enabled
NAME                              MCP_ENDPOINT
services/bigquery.googleapis.com  bigquery.googleapis.com/mcp

構成ファイルの準備

当記事では、Gemini CLI を使用して MCP サーバーに接続します。その他のツールを使用する場合や、より詳細な説明については、当記事末尾に記載のドキュメントを参照してください。

Gemini CLI の構成ファイル(.gemini/settings.json)に MCP サーバーの設定を追加します。当記事では、アプリケーションのデフォルトの認証情報(ADC)で認証を行い、BigQuery MCP サーバーに接続します。

{
    "mcpServers": {
        "BigQuery": {
            "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": "<MCP サーバーを有効化したプロジェクトの ID>"
            }
        }
    }
}

MCP サーバーへの接続

gcloud auth application-default login コマンドを使用して MCP サーバーを利用できるアカウントでログインし、アプリケーションのデフォルト認証情報(ADC)を設定します。

# アプリケーションのデフォルト認証情報(ADC)を設定する
$ gcloud auth application-default login

Gemini CLI を起動して、MCP サーバーに接続します。

# Gemini CLI を起動する
$ gemini

Gemini CLI のプロンプトで /mcp コマンドを使用して、接続している MCP サーバーの情報を表示します。

MCP サーバーに接続できていれば、構成ファイルに記述した MCP サーバーと、利用できるツールの一覧が表示されます。

> /mcp

Configured MCP servers:

🟢 BigQuery - Ready (5 tools)
  Tools:
  - execute_sql
  - get_dataset_info
  - get_table_info
  - list_dataset_ids
  - list_table_ids

以下のプロンプトを送信して、BigQuery MCP サーバーのツールを使用してみます。

プロジェクト内にデータセットは何個ありますか?

対象となるプロジェクトの情報が不足していたため、以下のようなレスポンスが返されました。

> プロジェクト内にデータセットは何個ありますか?

✦ プロジェクトIDを教えてください。

プロンプトにプロジェクト ID を入力して送信すると、ツールの使用を許可するかどうかの確認が行われます。

╭──────────────────────────────────────────────────────────────────────────╮
│ ?  list_dataset_ids (BigQuery MCP Server) {"projectId":"myproject"}     ← │
│                                                                          │
│ MCP Server: BigQuery                                                     │
│ Tool: list_dataset_ids                                                   │
│                                                                          │
│ Allow execution of MCP tool "list_dataset_ids" from server "BigQuery"?   │
│                                                                          │
│ ● 1. Yes, allow once                                                     │
│   2. Yes, always allow tool "list_dataset_ids" from server "BigQuery"    │
│   3. Yes, always allow all tools from server "BigQuery"                  │
│   4. No, suggest changes (esc)                                           │
│                                                                          │
╰──────────────────────────────────────────────────────────────────────────╯
⠏ Waiting for user confirmation...

今回のプロンプトでは、BigQuery MCP サーバーの list_dataset_ids ツールを使用するようです。

一回限りのツール実行のみ許可する場合は1を、list_dataset_ids ツールの実行を常に許可する場合は2を、BigQuery MCP サーバーのすべてのツールを常に許可する場合は3を選択します。

ツールの実行を許可すると、プロジェクト内のデータセットのリストが出力され、レスポンスとしてプロジェクト内にあるデータセットの個数が返されました。

╭──────────────────────────────────────────────────────────────────────────╮
│ ✓  list_dataset_ids (BigQuery MCP Server) {"projectId":"myproject"}       │
│                                                                          │
│ {"datasets":[<ここにデータセットのリストが出力される>]}                                  │
╰──────────────────────────────────────────────────────────────────────────╯
✦ プロジェクト「myproject」には16個のデータセットがあります。

参考記事

BigQuery remote MCP server の使用例については、以下の記事も参照してください。

blog.g-gen.co.jp

また、BigQuery に自然言語を使って問い合わせをする手法は、MCP サーバーを使用する以外にもいくつか存在します。その他の方法については、以下の記事も参照してください。

blog.g-gen.co.jp

佐々木 駿太 (記事一覧)

G-gen 最北端、北海道在住のクラウドソリューション部エンジニア

2022年6月に G-gen にジョイン。Google Cloud Partner Top Engineer に選出(2024 / 2025 Fellow / 2026)。好きな Google Cloud プロダクトは Cloud Run。

趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。