Google Maps Platform Grounding Lite は、Model Context Protocol(MCP)をサポートするサービスです。このサービスを使用すると、Google マップの信頼できる地理空間データを使用して AI アプリケーションを簡単にグラウンディングできます。MCP サーバーは、LLM が場所、天気、ルートの機能にアクセスできるようにするツールを提供します。Maps Grounding Lite は、MCP サーバーをサポートするツールで有効にすることで試すことができます。
ツール
Maps Grounding Lite には、LLM が次の Google マップの機能にアクセスできるようにするツールが用意されています。
- 場所を検索: 場所に関する情報をリクエストし、AI が生成した場所データの概要、 プレイス ID、緯度と経度の座標、Google マップの リンクを取得します。返されたプレイス ID と緯度と経度の座標を他の Google Maps Platform API と組み合わせて使用すると、地図上に場所を表示できます。
- **天気を検索**: 天気に関する情報をリクエストし、現在の状況、1 時間ごとの予報、1 日ごとの予報を返します。
ルートを計算: 2 つの場所間の自動車または徒歩のルートに関する情報をリクエストし ルートの距離と所要時間の情報を返します。
Maps Grounding Lite MCP サーバーを有効にすると、LLM はサーバーが公開する新しいツールを呼び出して、上記のデータ型のグラウンディング情報を返すことができます。LLM はこの追加情報をコンテキストに使用できますが、LLM が最終的に生成するレスポンスには、MCP サーバーから返された情報が正確に含まれていない可能性があります。生成されたレスポンスの正確性を確認する必要があります。
Resolution API(試験運用版)
Maps Grounding Lite には Resolution API が用意されています。この API を使用すると、自由形式の場所テキストと URL を構造化された Google マップの場所識別子に解決できます。 Resolution API は 2 つのエンドポイントで構成されています。
- 名前を解決: 場所の名前または住所のバッチを Google マップ上の特定の場所エンティティに解決します。これは、構造化されていないユーザー クエリを安定したプレイス ID にグラウンディングする場合に便利です。
- マップの URL を解決: Google マップの URL のバッチを特定の場所エンティティに解決します。サポートされている形式には、標準の場所 URL と短縮 URL があります。
これらのエンドポイントを使用すると、構造化されていないユーザー クエリやリンクを安定したプレイス ID にグラウンディングして、他の Google Maps Platform API と統合できます。
詳細については、Maps Tools Resolution API(試験運用版) をご覧ください。
Maps Grounding Lite サンプルアプリを試す (新しいタブで開く)
課金と割り当て
請求について
Google Maps Platform の従量課金制モデルでは、Maps Grounding Lite の使用量はリクエストごとに計算されます。各リクエストは 1 つの課金イベントを表します。使用量は各製品 SKUで追跡されます。請求書には、合計料金に加えて、SKU ごとの項目が表示されます。詳しくは、 レポートの概要 をご覧ください。
料金の詳細については、 メインの料金表 と インドの料金表 をご覧ください。
Maps Grounding Lite は、Essentials と Pro サブスクリプション パッケージ でも提供されています。
割り当て
Maps Grounding Lite が提供するツールと API には、次の割り当てが適用されます。
- 場所を検索: 1 プロジェクトにつき 1 分あたり 300 クエリ。
- 天気を検索: 1 プロジェクトにつき 1 分あたり 300 クエリ。
- ルートを計算: 1 プロジェクトにつき 1 分あたり 300 クエリ。
- 名前を解決(試験運用版): 1 プロジェクトにつき 1 分あたり 600 クエリ。
- マップの URL を解決(試験運用版): 1 プロジェクトにつき 1 分あたり 600 クエリ。
ポリシーと利用規約
Maps Grounding Lite には、このサービスの サービス固有の 規約を含むGoogle Maps Platform の 利用規約が適用されます。このセクションでは、互換性のある LLM やソースの帰属表示の要件など、Maps Grounding Lite の追加サービス使用に関する要件について説明します。
互換性のある LLM の要件
Maps Grounding Lite は、Google Maps Platform の利用規約に準拠した LLM でのみ使用できます。
たとえば、使用する LLM で Google マップのコンテンツがキャッシュに保存されたり、保存されたり、改善に使用されたりしないようにする必要があります。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(リソース名)idlocationgoogleMapsLinks
場所ごとに、次の要件を満たすリンクのプレビューを生成する必要があります。
- Maps Grounding Lite のテキスト帰属表示のガイドラインに従って、各ソースを Google マップに帰属させます。
- レスポンスの
places.googleMapsLinks.placeUrlを使用してソースにリンクします。
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 を有効にするには:
- Google Cloud コンソールで、 Maps Grounding Lite に使用するプロジェクトを選択します。
- Google Cloud コンソールでプロジェクトの課金を有効にします。
- Google Cloud コンソールの API ライブラリで Maps Grounding Lite を有効にします。
API キーを使用して認証する
Google Cloud プロジェクトとキーの両方で Maps Grounding Lite API サービス を有効にしていれば、Maps Grounding Lite で既存の API キーを使用することも、新しい API キーを作成することもできます。
API キーを使用して認証するには:
- Google Maps Platform のスタートガイド の手順に沿って、API キーを作成または構成します。
X-Goog-Api-Keyヘッダーを使用して、キーを MCP サーバーに渡します。これは、LLM の MCP ツール構成でカスタム HTTP ヘッダーとして指定する必要があります。
OAuth を使用して認証する
OAuth 認証情報を作成して MCP ホストまたは MCP サーバー アプリケーションに渡すことで、OAuth を使用して認証できます。
OAuth を使用して認証するには:
- Google Cloud コンソールで、 Maps Grounding Lite に使用するプロジェクトを選択します。
- [API とサービス ] メニューで [認証情報] を選択します。
- 上部のメニューで、[認証情報を作成 > OAuth クライアント ID] を選択します。
- プロジェクトに同意画面が構成されていない場合は、[同意画面を構成] をクリックし、画面上の手順に沿って操作します。
- [指標 ] セクションで、[OAuth クライアントを作成] をクリックします。
- [OAuth クライアント ID の作成 ] 画面で、アプリケーション タイプを選択し、クライアント ID の名前を入力します。
- アプリケーション タイプに関連する詳細情報を指定します。 たとえば、ウェブ アプリケーションを作成する場合は、ブラウザ リクエストとサーバー リクエストの承認済み URI を追加します。
- クライアントが作成されたら、クライアント ID とシークレットを保存します。
- 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 サーバーをご覧ください。
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構成が成功すると、サーバーがユーザー設定に追加されたことを示す確認メッセージが表示されます。
サーバーが正しく動作していることを確認するには、
/mcp listコマンドを実行します。> /mcp list Configured MCP servers: maps-grounding-lite-mcp - Ready (3 tools) Tools: - compute_routes - lookup_weather - search_placesCLI で Google マップ関連の質問を始めます。たとえば、「Mountain View のおすすめのレストランを教えて」と入力すると、search_places ツールが呼び出されます。
Agent Development Kit(ADK)で Grounding Lite を構成する
このセクションでは、Agent Development Kit(ADK)と Python、Java、TypeScript のいずれかを使用して Grounding Lite MCP サーバーを構成する方法の例を示します。
Python
ステップ 1: Google マップの Grounding Lite の McpToolset を使用してエージェントを定義する
agent.py ファイルを変更します。Replace
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 を実行して操作する
- 環境変数を設定する:
ターミナルで Google Maps API キーを環境変数として設定します。export GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"
adk webを実行する:
次のコマンドを実行して、ADK ウェブ インターフェースを起動します:adk web
- 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 に関するフィードバックを送信するには、次のフォームを使用してください。