マップ Grounding Lite

Google Maps Platform Grounding Lite は、Model Context Protocol(MCP)をサポートするサービスです。このサービスを使用すると、Google マップの信頼できる地理空間データを使用して AI アプリケーションを簡単にグラウンディングできます。MCP サーバーは、LLM が場所、天気、ルートの機能にアクセスできるようにするツールを提供します。マップ Grounding Lite は、MCP サーバーをサポートするツールで有効にすることで試すことができます。

ツール

Maps Grounding Lite には、LLM が次の Google マップの機能にアクセスできるツールが用意されています。

  • 場所を検索する: 場所に関する情報をリクエストし、AI によって生成された場所のデータ概要を取得します。概要に含まれる各場所のプレイス ID、緯度と経度の座標、Google マップのリンクも取得できます。返されたプレイス ID と緯度と経度の座標を他の Google Maps Platform API と組み合わせて、地図上に場所を表示できます。
  • 天気情報を検索する: 天気に関する情報をリクエストし、現在の状況、1 時間ごとの予報、毎日の予報を返します。
  • ルートの計算: 2 つの地点間の車または徒歩のルートに関する情報をリクエストし、ルートの距離と所要時間の情報を返します。

Maps Grounding Lite MCP サーバーを有効にすると、LLM はサーバーによって公開された新しいツールを呼び出して、上記のデータ型の追加のグラウンディング情報を返すことができます。LLM はこの追加情報をコンテキストに使用できますが、LLM が最終的に生成するレスポンスには、MCP サーバーから返された情報が正確に含まれていない場合があります。生成された回答の正確性を確認する必要があります。

Maps Grounding Lite サンプルアプリを試す(新しいタブで開く)

課金と割り当て

請求方法

Google Maps Platform の従量課金制モデルでは、Maps Grounding Lite の使用量はリクエストごとに計算されます。各リクエストは 1 つの課金イベントを表します。使用量はサービス SKU ごとにトラッキングされます。請求書には、合計料金に加えて、各 SKU の項目が表示されます。詳しくは、レポートの概要をご覧ください。

料金の詳細については、メインの料金表インドの料金表をご覧ください。

マップ Grounding Lite は、Essentials と Pro の定期購入で割引パッケージでも提供されます。

割り当て

Maps Grounding Lite が提供するツールには、次の割り当てが適用されます。

  • 場所の検索: 1 プロジェクトあたり 1 分あたり 300 件のクエリ。
  • 天気の検索: プロジェクトごとに 1 分あたり 300 件のクエリ。
  • コンピューティング ルート: プロジェクトごとに 1 分あたり 300 件のクエリ。

ポリシーと利用規約

Maps Grounding Lite には、このサービスのサービス固有の規約を含む Google Maps Platform 利用規約が適用されます。このセクションでは、互換性のある LLM やソースの帰属要件など、Maps Grounding Lite の追加のサービス使用要件について説明します。

互換性のある LLM の要件

Maps Grounding Lite は、Google Maps Platform 利用規約に準拠した LLM でのみ使用できます。

たとえば、Google マップ コンテンツが、お客様が使用する LLM によってキャッシュに保存されたり、保存されたり、改善に使用されたりしないようにする責任はお客様にあります。Maps Grounding Lite を使用する前に、Maps Grounding Lite で使用する予定のモデルの利用規約を確認する必要があります。モデルに入力されたデータをモデルのトレーニングや改善に使用するモデルでは、Maps Grounding Lite を使用しないでください。お客様は、モデルの使用が Google Maps Platform 利用規約(サービス固有の規約を含む)の Google マップ コンテンツに関する制限に完全に準拠していることを確認する責任を負います。

Google マップのソースの帰属表示の要件

Maps Grounding Lite からの各ツール レスポンスにはソースが含まれています。Maps Grounding Lite が提供するツールを使用した結果を表示する場合は、次の要件を満たす方法で、関連する Google マップのソースを含める必要があります。

  • Google マップのソースは、ソースがサポートする生成コンテンツの直後に示す必要があります。この生成されたコンテンツは、グラウンディングされた出力ともいいます。
  • Google マップのソースは、1 回のユーザー操作で表示できる必要があります。

場所検索ツールの情報源

search_places ツールの places フィールドには、summary をサポートするソースが示されます。places の場合、次のメタデータが返されます。

  • place(リソース名)
  • id
  • location
  • googleMapsLinks

各プレースについて、次の要件を満たすリンクのプレビューを生成する必要があります。

MCP サーバーを使用するように LLM を構成する

Maps Grounding Lite を使用するには、まず Maps Grounding Lite API サービスが有効になっている Google Cloud プロジェクトと、API キーまたは OAuth クライアント ID が必要です。次に、MCP サーバーにアクセスするように LLM を構成できます。Grounding Lite MCP サーバーは Streamable HTTP トランスポートを使用します。

Google Cloud プロジェクトで Maps Grounding Lite サービスを有効にする

プロジェクトで API を有効にするには:

  1. Google Cloud コンソールで、Maps Grounding Lite に使用するプロジェクトを選択します。
  2. Google Cloud コンソールでプロジェクトの課金を有効にします。
  3. Google Cloud コンソールの API ライブラリで Maps Grounding Lite を有効にします。

API キーを使用して認証する

Google Cloud プロジェクトとキーの両方で Maps Grounding Lite API サービスを有効にしている限り、Maps Grounding Lite で既存の API キーを使用することも、新しい API キーを作成することもできます。

API キーを使用して認証するには:

  1. Google Maps Platform スタートガイドの手順に沿って、API キーを作成または構成します。
  2. X-Goog-Api-Key ヘッダーを使用して、鍵を MCP サーバーに渡します。これは、LLM の MCP ツール構成でカスタム HTTP ヘッダーとして指定する必要があります。

OAuth を使用して認証する

OAuth を使用して認証するには、OAuth 認証情報を作成して MCP ホストまたは MCP サーバー アプリケーションに渡します。

OAuth を使用して認証するには:

  1. Google Cloud コンソールで、Maps Grounding Lite に使用するプロジェクトを選択します。
  2. [API とサービス] メニューで、[認証情報] を選択します。
  3. 上部のメニューで、[認証情報を作成] > [OAuth クライアント ID] を選択します。
  4. プロジェクトに同意画面が構成されていない場合は、[同意画面を構成] をクリックし、画面上の手順に沿って操作します。
  5. [指標] セクションで、[OAuth クライアントを作成] をクリックします。
  6. [OAuth クライアント ID の作成] 画面で、アプリケーション タイプを選択し、クライアント ID の名前を入力します。
  7. アプリケーション タイプに関連する追加の詳細を指定します。たとえば、ウェブ アプリケーションを作成する場合は、ブラウザとサーバーのリクエストに対して承認済み URI を追加します。
  8. クライアントを作成したら、クライアント ID とシークレットを保存します。
  9. Maps Grounding Lite にアクセスするように MCP ホストまたは MCP サーバー アプリケーションを構成する場合は、OAuth クライアント ID とシークレットを渡します。次のスコープもリクエストする必要があります: https://www.googleapis.com/auth/maps-platform.mapstools

詳しくは、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。

Maps Grounding Lite MCP サーバーにアクセスするように LLM を構成する

Maps Grounding Lite API サービスが有効になっている Google Cloud プロジェクトと、API キーや OAuth クライアント ID と Secret などの有効な認証情報があれば、対応する MCP 構成ドキュメントに沿って、Maps Grounding Lite MCP サーバーの URL(https://mapstools.googleapis.com/mcp)を使用して MCP サーバーにアクセスするように LLM を構成できます。

詳細については、AI アプリケーションで MCP を構成するをご覧ください。

Gemini CLI を使用して Maps Grounding Lite を構成する

このセクションでは、Gemini CLI を使用して Maps Grounding Lite MCP サーバーを構成する方法の例を示します。詳細については、Gemini CLI を使用した MCP サーバーをご覧ください。

  1. Gemini CLI をインストールしたら、add コマンドを使用して Maps Grounding Lite MCP サーバーを構成できます。

    gemini mcp add -s user -t http -H 'X-Goog-Api-Key: API_KEY' maps-grounding-lite-mcp https://mapstools.googleapis.com/mcp
    

    構成が成功すると、サーバーがユーザー設定に追加されたことを確認するメッセージが表示されます。

  2. サーバーが正しく機能していることを確認するには、/mcp list コマンドを実行します。

    > /mcp list
    
    Configured MCP servers:
    
    maps-grounding-lite-mcp - Ready (3 tools)
    Tools:
    -   compute_routes
    -   lookup_weather
    -   search_places
    
  3. CLI を使用して、マップ関連の質問を始めます。たとえば、「マウンテン ビューのレストランをいくつかおすすめして」と入力すると、ユーザーに代わって search_places ツールが呼び出されます。

Agent Development Kit(ADK)を使用して Grounding Lite を構成する

このセクションでは、Agent Development Kit(ADK)と Python、Java、TypeScript のいずれかを使用して Grounding Lite MCP サーバーを構成する方法を示す例を示します。

Python

ステップ 1: Google Maps Grounding Lite の McpToolset を使用してエージェントを定義する

agent.py ファイルを変更します。YOUR_GOOGLE_MAPS_API_KEY は実際の API キーに置き換えてください。

# ./adk_agent_samples/mcp_agent/agent.py
import os
from google.adk.agents.llm_agent import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams

# Retrieve the API key from an environment variable or directly insert it.
GOOGLE_MAPS_API_KEY = os.getenv("GOOGLE_MAPS_API_KEY")
if not GOOGLE_MAPS_API_KEY:
    GOOGLE_MAPS_API_KEY = "YOUR_GOOGLE_MAPS_API_KEY_HERE"

if GOOGLE_MAPS_API_KEY == "YOUR_GOOGLE_MAPS_API_KEY_HERE":
    print("WARNING: GOOGLE_MAPS_API_KEY is not set.")

root_agent = Agent(
    model='gemini-flash-latest',
    name='travel_planner_agent',
    description='A helpful assistant for planning travel routes.',
    tools=[
        McpToolset(
            connection_params=StreamableHTTPConnectionParams(
                url="https://mapstools.googleapis.com/mcp",
                headers={
                    "X-Goog-Api-Key": GOOGLE_MAPS_API_KEY,
                    "Content-Type": "application/json",
                    "Accept": "application/json, text/event-stream"
                }
            )
        )
    ]
)
    
ステップ 2: __init__.py が存在することを確認する

agent.py と同じディレクトリに __init__.py があることを確認します。

from . import agent
    
ステップ 3: adk web を実行して操作する
  1. 環境変数を設定する:
    ターミナルで Google Maps API キーを環境変数として設定します。
    export GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"
            
  2. adk web を実行する:
    次のコマンドを実行して、ADK ウェブ インターフェースを起動します。
    adk web
            
  3. UI で操作する:
    • travel_planner_agent を選択します。
    • 次のようなプロンプトを試してみましょう。
      • 「明日はサンフランシスコにいます。天気はどう?」
      • 「ゴールデン ゲート パークの近くのカフェを探して。」
      • 「Googleplex から SFO までのルートを教えて。」

Java

Java で McpToolset を初期化するエージェントを定義します。環境変数を使用しない場合は、YOUR_GOOGLE_MAPS_API_KEY_HERE を取得した実際の API キーに置き換えます。

package agents;

import com.google.adk.agents.LlmAgent;
import com.google.adk.runner.InMemoryRunner;
import com.google.adk.sessions.SessionKey;
import com.google.adk.tools.mcp.McpToolset;
import com.google.adk.tools.mcp.StreamableHttpServerParameters;
import com.google.genai.types.Content;
import com.google.genai.types.Part;
import java.util.HashMap;
import java.util.Map;

public class MapsAgentCreator {
    public static void main(String[] args) {
        String googleMapsApiKey = System.getenv("GOOGLE_MAPS_API_KEY");
        if (googleMapsApiKey == null || googleMapsApiKey.trim().isEmpty()) {
            googleMapsApiKey = "YOUR_GOOGLE_MAPS_API_KEY_HERE";
            if ("YOUR_GOOGLE_MAPS_API_KEY_HERE".equals(googleMapsApiKey)) {
                System.out.println("WARNING: GOOGLE_MAPS_API_KEY is not set.");
            }
        }

        Map<String, String> headers = new HashMap<>();
        headers.put("X-Goog-Api-Key", googleMapsApiKey);
        headers.put("Content-Type", "application/json");
        headers.put("Accept", "application/json, text/event-stream");

        StreamableHttpServerParameters serverParams = StreamableHttpServerParameters.builder("https://mapstools.googleapis.com/mcp")
                .headers(headers)
                .build();

        try (McpToolset toolset = new McpToolset(serverParams)) {
            LlmAgent agent = LlmAgent.builder()
                    .model("gemini-flash-latest")
                    .name("travel_planner_agent")
                    .description("A helpful assistant for planning travel routes.")
                    .tools(toolset)
                    .build();

            System.out.println("Agent created: " + agent.name());

            InMemoryRunner runner = new InMemoryRunner(agent);
            String userId = "maps-user-" + System.currentTimeMillis();
            String sessionId = "maps-session-" + System.currentTimeMillis();
            String promptText = "Please give me directions to the nearest pharmacy to Madison Square Garden.";

            SessionKey sessionKey = runner.sessionService().createSession(runner.appName(), userId, null, sessionId).blockingGet().sessionKey();
            System.out.println("Session created: " + sessionId + " for user: " + userId);

            Content promptContent = Content.fromParts(Part.fromText(promptText));
            System.out.println("\nSending prompt: \"" + promptText + "\" to agent...\n");

            runner.runAsync(sessionKey, promptContent)
                    .blockingForEach(event -> {
                        System.out.println("Event received: " + event.toJson());
                    });
        } catch (Exception e) {
            System.err.println("An error occurred: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
    

TypeScript

TypeScript で MCPToolset を初期化するエージェントを定義します。

import 'dotenv/config';
import {LlmAgent, MCPToolset} from "@google/adk";

const googleMapsApiKey = process.env.GOOGLE_MAPS_API_KEY;
if (!googleMapsApiKey) {
    console.warn("WARNING: GOOGLE_MAPS_API_KEY is not set.");
    throw new Error('GOOGLE_MAPS_API_KEY is not provided, please run "export GOOGLE_MAPS_API_KEY=YOUR_ACTUAL_KEY" to add that.');
}

export const rootAgent = new LlmAgent({
    model: "gemini-flash-latest",
    name: "travel_planner_agent",
    description: "A helpful assistant for planning travel.",
    tools: [
        new MCPToolset({
            type: "SseConnectionParams",
            url: "https://mapstools.googleapis.com/mcp",
            headers: {
                "X-Goog-Api-Key": googleMapsApiKey,
                "Content-Type": "application/json",
                "Accept": "application/json, text/event-stream"
            }
        })
    ],
});
    

フィードバックの共有

Maps Grounding Lite に関するフィードバックを送信するには、次のフォームを使用します。