MCP Reference: mapstools.googleapis.com

これは、Maps Grounding Lite API によって提供される MCP サーバーです。このサーバーは、デベロッパーが Google Maps Platform 上で LLM アプリケーションを構築するためのツールを提供します。

Model Context Protocol(MCP)サーバーは、大規模言語モデル(LLM)または AI アプリケーションにコンテキスト、データ、機能を提供する外部サービスとの間のプロキシとして機能します。MCP サーバーは、AI アプリケーションをデータベースやウェブサービスなどの外部システムに接続し、そのレスポンスを AI アプリケーションが理解できる形式に変換します。

サーバーの設定

使用する前に、MCP サーバーを有効にして、認証を設定する必要があります。Google と Google Cloud のリモート MCP サーバーの使用方法については、Google Cloud MCP サーバーの概要をご覧ください。

サーバー エンドポイント

MCP サービス エンドポイントは、安全で標準化された接続を確立するために AI アプリケーション(MCP クライアントのホスト)が使用する MCP サーバーのネットワーク アドレスと通信インターフェース(通常は URL)です。これは、LLM がコンテキストをリクエストしたり、ツールを呼び出したり、リソースにアクセスしたりするための接続ポイントとなります。Google MCP エンドポイントをグローバルまたはリージョンにすることができます。

Maps Grounding Lite API MCP サーバーには、次のグローバル MCP エンドポイントがあります。

  • https://mapstools.googleapis.com/mcp

MCP ツール

MCP ツールは、現実世界でアクションを実行する目的で MCP サーバーが LLM または AI アプリケーションに対して公開する関数または実行可能な機能です。

ツール

mapstools.googleapis.com MCP サーバーには、次のツールがあります。

MCP ツール
search_places

ユーザーのリクエストが、場所、ビジネス、住所、位置情報、スポット、その他の Google マップ関連の検索である場合は、このツールを呼び出します。

入力要件(重大):

  1. text_query(文字列 - 必須): プライマリ検索クエリ。ユーザーが探しているものを明確に定義する必要があります。

    • 例: 'restaurants in New York'、'coffee shops near Golden Gate Park'、'SF MoMA'、'1600 Amphitheatre Pkwy, Mountain View, CA, USA'、'pets friendly parks in Manhattan, New York'、'date night restaurants in Chicago'、'accessible public libraries in Los Angeles'。
    • 特定の場所の詳細の場合: リクエストされた属性('Google Store Mountain View opening hours'、'SF MoMa phone number'、'Shoreline Park Mountain View address' など)を含めます。
  2. location_bias(オブジェクト - 省略可): 特定の地理的エリアに近い結果を優先するために使用します。

    • 形式: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • 使用方法:
      • 半径 5 km にバイアスをかけるには: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • 中心点に強くバイアスをかける場合: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}}(radius_meters は省略)。
  3. language_code(文字列 - 省略可): 検索結果の概要を表示する言語。

    • 形式: 2 文字の言語コード(ISO 639-1)。オプションで、その後にアンダースコアと 2 文字の国コード(ISO 3166-1 alpha-2)が続きます(例: en、ja、en_US、zh_CN、es_MX)。言語コードが指定されていない場合、結果は英語で返されます。
  4. region_code(文字列 - 省略可): ユーザーの Unicode CLDR 地域コード。このパラメータは、地域固有の場所の名前など、場所の詳細を表示するために使用されます(利用可能な場合)。このパラメータは、適用される法律に基づいて結果に影響を与える可能性があります。

    • 形式: 2 文字の国コード(ISO 3166-1 alpha-2)。例: US、CA。

ツール呼び出しの手順:

  • 位置情報(重大): 検索には十分な位置情報が含まれている必要があります。場所が曖昧な場合(「ピザ店」など)、text_query で指定するか(「ニューヨークのピザ店」など)、location_bias パラメータを使用する必要があります。必要に応じて、市区町村、都道府県、地域 / 国名を含めます。

  • 常に、可能な限り具体的でコンテキストに即した text_query を提供します。

  • location_bias は、座標が明示的に指定されている場合、またはユーザーの既知のコンテキストから位置情報を推測することが適切なかつより良い結果を得るために必要な場合にのみ使用します。

  • グラウンディングされた出力は、attribution フィールドの情報が利用可能な場合は、その情報を使用してソースに帰属させる必要があります。

lookup_weather

現在の天気情報、1 時間ごとの予報、毎日の予報など、包括的な天気データを取得します。

利用可能な特定のデータ: 気温(現在、体感温度、最高/最低、暑さ指数)、風(風速、突風、風向)、天体現象(日の出/日の入り、月相)、降水(種類、確率、量/QPF)、大気状態(UV 指数、湿度、雲量、雷雨の確率)、ジオコーディングされた位置情報。

場所と場所に関するルール(重大):

天気データがリクエストされる場所は、location フィールドを使用して指定します。このフィールドは「oneof」構造です。つまり、正確な天気データのルックアップを保証するために、以下の 3 つの場所サブフィールドのうち 1 つのみに値を指定する必要があります。

  1. 地理座標(lat_lng)

    • 正確な緯度/経度座標が提供された場合に使用します。
    • 例: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // ロサンゼルス
  2. プレイス ID(place_id)

    • 曖昧さのない文字列識別子(Google マップのプレイス ID)。
    • place_id は search_places ツールから取得できます。
    • 例: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // エッフェル塔
  3. 住所文字列(address)

    • ジオコーディングに固有性が必要な自由形式の文字列。
    • 市区町村と地域: 常に地域/国を含めます(「ロンドン、英国」など。「ロンドン」は不可)。
    • 住所: 完全な住所を入力します(例: 「1600 Pennsylvania Ave NW, Washington, DC」)。
    • 郵便番号: 国名と併記する必要があります(例: 「90210, USA」。「90210」は不可)。
    • 例: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

使用モード:

  • Current Weather(現在の天気): location のみを提供します。date と hour は指定しないでください。

  • 1 時間ごとの天気予報: location、date、hour(0 ~ 23)を指定します。特定の時間(「午後 5 時」など)や、「数時間後」、「本日中」などの表現に使用します。お客様が分単位で指定した場合は、時間単位で切り捨てます。現在から 120 時間を超える時間単位の天気予報は対象外です。過去 24 時間までの過去の 1 時間ごとの天気予報がサポートされています。

  • 今日の天気予報: location と date を提供します。hour は指定しないでください。一般的な日のリクエスト(「明日の天気」、「金曜日の天気」、「12 月 25 日の天気」など)に使用します。今日の日付がコンテキストに含まれていない場合は、お客様に確認する必要があります。今日を含めて 10 日を超える毎日の天気予報は対象外です。過去の天気はサポートされていません。

パラメータの制約:

  • タイムゾーン: すべての date 入力と hour 入力は、ユーザーのタイムゾーンではなく、場所の現地タイムゾーンを基準にする必要があります。
  • 日付形式: 入力は {year, month, day} 個の整数に分割する必要があります。
  • 単位: デフォルトは METRIC です。ユーザーが米国の規格を暗示している場合や、明示的にリクエストしている場合は、華氏/マイルの units_system を IMPERIAL に設定します。
  • グラウンディングされた出力は、attribution フィールドの情報が利用可能な場合は、その情報を使用してソースに帰属させる必要があります。

compute_routes

指定された出発地と目的地の間の移動ルートを計算します。サポートされている移動手段: DRIVE(デフォルト)、WALK。

入力要件(重要): 出発地と目的地の両方が必要です。それぞれを次のいずれかの方法で、それぞれのフィールド内にネストして指定する必要があります。

  • address:(文字列、例: 「Eiffel Tower, Paris」)。注: 入力した住所が詳細であるほど、より正確な結果が得られます。

  • lat_lng:(オブジェクト、{"latitude": number, "longitude": number})

  • place_id:(文字列、例: 'ChIJOwE_Id1w5EAR4Q27FkL6T_0')注: この ID は search_places ツールから取得できます。入力タイプは自由に組み合わせることができます(出発地を住所で指定し、目的地を緯度 / 経度で指定するなど)。出発地または目的地のいずれかが欠落している場合は、ツールを呼び出す前に必ずユーザーに確認する必要があります。

ツール呼び出しの例: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • グラウンディングされた出力は、attribution フィールドの情報が利用可能な場合は、その情報を使用してソースに帰属させる必要があります。
resolve_names

特定の場所のクエリ(ランドマークの名前や正確な住所)のバッチリストを正規の Google マップの場所 ID に解決します。

入力要件(重大):

  1. queries(オブジェクトの配列 - 必須): 解決する位置情報クエリのリスト。最大 20 個のクエリを指定できます。

    • 各クエリ オブジェクトには次のものが必要です。
      • text(文字列 - 必須): 解決する特定の地名または住所を表すテキスト クエリ。
        • 例: 'Googleplex, Mountain View, CA'、'1600 Amphitheatre Pkwy, Mountain View, CA'、'Eiffel Tower, Paris'
  2. location_bias(オブジェクト - 省略可): 特定の地理的エリアに近い結果を優先するために使用します。

    • 形式: {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code(文字列 - 省略可): 結果をバイアスするユーザーの Unicode CLDR リージョン コード(2 文字の国コード。例: US、CA)。

ツール呼び出しの手順:

  • 具体性(重大): クエリは特定の場所の名前または住所を表す必要があります。'restaurants' などの一般的な検索や、'Starbucks' などのチェーン名はサポートされていません。
  • 呼び出す予定のダウンストリーム ツールがすでに未加工の住所文字列または地名文字列を直接受け入れている場合は、このツールを呼び出さないでください。

Google マップに保存:

  • レスポンスには、save_to_maps_url フィールド(すべての解決済みプレイスを含む単一の Google マップのリンク)が含まれます。
  • 解決された場所を Google マップのリストとして保存、共有、または開く場合は、このリンクをユーザーに提示します。このリンクを自分で作成しないでください。

エラー処理(重大):

  • これはバッチ処理ツールです。リクエストは「混合結果」を返すことがあります(一部のクエリは正常に解決され、他のクエリは失敗するなど)。
  • results の出力リストは、入力 queries インデックスと 1 対 1 でマッピングされることが保証されています。クエリが失敗すると、results リストの対応するインデックスに空の Result メッセージ(entity が設定されていない)が生成されます。
  • レスポンスの failed_requests マップ フィールドをチェックして、どの特定のクエリ インデックスが失敗したかを特定する必要があります。failed_requests のキーは、リクエストで失敗したクエリの 0 ベースのインデックスを表します。部分的な失敗によってバッチ呼び出し全体が失敗したと想定しないでください。
resolve_maps_urls

Google マップの URL のリストを正規の Google マップのプレイス ID に解決します。

このツールを呼び出すタイミング(重大):

  • ユーザーが 1 つ以上の Google マップの共有リンクまたは URL(例: 「https://maps.app.goo.gl/...」)を提供した場合は、このツールを使用します。(例: https://www.google.com/maps/place/...、https://maps.google.com/...)から、基盤となる正規のプレイス ID を抽出する必要があります。
  • 1 つのバッチ リクエストで解決する URL を最大 20 個まで指定できます。

入力要件(重大):

  • urls(文字列の配列 - 必須): 解決する Google マップの URL のリスト。各 URL は、有効な単一の場所の Google マップ URL である必要があります。

Google マップに保存:

  • レスポンスには、save_to_maps_url フィールド(解決に成功したすべての場所を含む単一の Google マップのリンク)が含まれます。
  • 解決された場所を Google マップのリストとして保存、共有、または開きたい場合(会話で共有された場所を収集するなど)、このリンクをユーザーに提示します。このリンクを自分で作成しないでください。

エラー処理(重大):

  • これはバッチ処理ツールです。リクエストから「混合結果」が返されることがあります(一部の URL は正常に解決され、他の URL は失敗するなど)。
  • entities の出力リストは、入力 urls インデックスと 1 対 1 でマッピングされることが保証されています。URL の解決に失敗すると、entities リストの対応するインデックスに空の Entity メッセージ(フィールドが設定されていない)が生成されます。
  • レスポンスの failed_requests マップ フィールドをチェックして、どの特定の URL インデックスが失敗したかを特定する必要があります。failed_requests のキーは、リクエスト内の失敗した URL の 0 ベースのインデックスを表します。部分的な失敗によってバッチ呼び出し全体が失敗したと想定しないでください。

MCP ツールの仕様を取得する

MCP サーバー内のすべてのツールの MCP ツール仕様を取得するには、tools/list メソッドを使用します。次の例は、curl を使用して、MCP サーバー内で現在使用可能なすべてのツールとその仕様を一覧表示する方法を示しています。

Curl リクエスト
curl --location 'https://mapstools.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'