MCP Tools Reference: mapstools.googleapis.com

工具: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 區域代碼 (兩個字母的國家/地區代碼,例如 US、CA),用於偏好結果。

工具呼叫操作說明:

  • 具體性 (重要):查詢必須代表特定地點名稱或地址。不支援「'restaurants'」等一般搜尋或「'Starbucks'」等連鎖店名稱。
  • 如果預計叫用的下游工具已直接接受原始地址或地點名稱字串,請「不要」呼叫這項工具。

儲存至 Google 地圖:

  • 回應包含 save_to_maps_url 欄位:單一 Google 地圖連結,內含所有成功解析的地點。
  • 如果使用者想在 Google 地圖中,將解析的地點儲存、分享或開啟為清單,請向使用者顯示這個連結。請勿自行建構這個連結。

錯誤處理 (重要):

  • 這項工具可批次處理資料,要求可能會傳回「混合結果」(例如部分查詢成功解析,其他查詢則失敗)。
  • results 的輸出清單保證與輸入 queries 索引一對一對應。如果查詢失敗,results 清單中對應索引處會出現空白的 Result 訊息 (未設定 entity)。
  • 您必須檢查回應中的 failed_requests 對應欄位,找出失敗的特定查詢索引。failed_requests 的鍵代表要求中失敗查詢的索引 (從 0 開始)。請勿假設整個批次呼叫因部分失敗而失敗。

下列程式碼範例說明如何使用 curl 呼叫 resolve_names MCP 工具。

Curl 要求
curl --location 'https://mapstools.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "resolve_names",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

輸入內容的結構定義

ResolveNames 的要求訊息。

ResolveNamesRequest

JSON 表示法
{
  "queries": [
    {
      object (LocationQuery)
    }
  ],
  "locationBias": {
    object (LocationBias)
  },
  "regionCode": string
}
欄位
queries[]

object (LocationQuery)

必填。要解析的位置查詢清單。最多可指定 20 項查詢。

locationBias

object (LocationBias)

(選用步驟) 選用區域,可影響解析結果。如果指定,解析結果會偏向靠近這個區域的實體。加入 location_bias 或 region_code 通常能縮小搜尋範圍,提供更準確的結果。

如果同時指定 location_bias 和 region_code,location_bias 的優先順序高於 region_code。

regionCode

string

(選用步驟) 選用的區域代碼,用於偏好解析結果。如果指定,解析結果會偏向位於指定區域內或附近的實體。請使用 CLDR 區域代碼。例如「US」或「CA」。加入 location_bias 或 region_code 通常能縮小搜尋範圍,提供更準確的結果。

如果同時指定 location_bias 和 region_code,location_bias 的優先順序高於 region_code。

LocationQuery

JSON 表示法
{
  "text": string
}
欄位
text

string

必填。文字查詢,用於解析 Google 地圖上的特定地理空間實體,例如地點或地址。查詢越具體,解決方案就越準確。例如「舊金山」、「Googleplex, Mountain View, CA」、「1600 Amphitheatre Parkway, Mountain View, CA」或「巴黎艾菲爾鐵塔」。查詢必須是特定地址或地點名稱。不支援連鎖店名稱 (例如星巴克) 等大概位置,或「餐廳」等搜尋查詢。

LocationBias

JSON 表示法
{

  // Union field type can be only one of the following:
  "viewport": {
    object (Viewport)
  }
  // End of list of possible types for union field type.
}
欄位
聯集欄位 type。地點偏誤的類型。type 只能是下列其中一項:
viewport

object (Viewport)

由定界框定義的可視區域。

可視區域

JSON 表示法
{
  "low": {
    object (LatLng)
  },
  "high": {
    object (LatLng)
  }
}
欄位
low

object (LatLng)

必填。可視區域的低點。

high

object (LatLng)

必填。可視區域的最高點。

LatLng

JSON 表示法
{
  "latitude": number,
  "longitude": number
}
欄位
latitude

number

緯度度數,必須介於 [-90.0, +90.0] 的範圍之間。

longitude

number

經度度數,必須介於 [-180.0, +180.0] 的範圍之間。

輸出內容的結構定義

ResolveNames 的回應訊息。

ResolveNamesResponse

JSON 表示法
{
  "results": [
    {
      object (Result)
    }
  ],
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  },
  "saveToMapsUrl": string
}
欄位
results[]

object (Result)

僅供輸出。位置查詢中已解析的實體清單。保證與要求 queries 索引 1:1 對應。索引 i 的空白字串表示該查詢的解析失敗。如果解析失敗,請查看 failed_requests 欄位,瞭解錯誤狀態。

failedRequests

map (key: integer, value: object (Status))

僅供輸出。傳達部分失敗的地圖。鍵是 queries 欄位中失敗要求的索引。值則是錯誤狀態,詳細說明解析失敗的原因。

這個物件中包含 "key": value 組合的清單,例如 { "name": "wrench", "mass": "1.3kg", "count": "3" }。

saveToMapsUrl

string

僅供輸出。這個連結可將所有成功解析的實體儲存到 Google 地圖。

結果

JSON 表示法
{
  "entity": {
    object (Entity)
  },
  "confidence": enum (Confidence)
}
欄位
entity

object (Entity)

僅供輸出。從位置查詢解析出的實體。

confidence

enum (Confidence)

僅供輸出。解析度的信賴水準。

實體

JSON 表示法
{

  // Union field entity can be only one of the following:
  "place": string
  // End of list of possible types for union field entity.
}
欄位
聯集欄位 entity。解析的實體類型。entity 只能是下列其中一項:
place

string

已解析地點的資源名稱。

FailedRequestsEntry

JSON 表示法
{
  "key": integer,
  "value": {
    object (Status)
  }
}
欄位
key

integer

value

object (Status)

狀態

JSON 表示法
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
欄位
code

integer

狀態碼,應為 google.rpc.Code 的列舉值。

message

string

向開發人員顯示的錯誤訊息,應以英文呈現。所有面向使用者的錯誤訊息都應經過本地化,並透過 google.rpc.Status.details 欄位傳送,或是由用戶端加以本地化。

details[]

object

包含錯誤詳細資料的訊息清單。這是供 API 使用的一組常用訊息類型。

包含任意類型欄位的物件。額外的 "@type" 欄位則包含能辨識類型的 URI。範例:{ "id": 1234, "@type": "types.example.com/standard/id" }。

不限

JSON 表示法
{
  "typeUrl": string,
  "value": string
}
欄位
typeUrl

string

使用 URI 參照來識別序列化 Protobuf 訊息的類型,其中包含以斜線結尾的前置字串,以及完整類型名稱。

範例:type.googleapis.com/google.protobuf.StringValue

這個字串必須包含至少一個 / 字元,且最後一個 / 後方的內容必須是標準格式的完整類型名稱,開頭不得為點號。請勿在這些 URI 參照上寫入配置,以免用戶端嘗試與其聯絡。

前置字串可任意指定,Protobuf 實作項目應直接移除最後一個 / 之前的所有內容 (包括 ),以識別類型。type.googleapis.com/ 是常見的預設前置字元,某些舊版實作項目需要使用。這個前置字串不代表類型的來源,且包含這個前置字串的 URI 不會回應任何要求。

所有類型網址字串都必須是合法的 URI 參照,且有額外限制 (文字格式),參照內容只能包含英數字元、百分比編碼逸出字元,以及下列字元集中的字元 (不含外側反引號):/-.~_!$&()*+,;=。雖然我們允許百分比編碼,但實作時不應取消逸出,以免與現有剖析器混淆。例如,type.googleapis.com%2FFoo 應遭拒。

在 Any 的原始設計中,我們曾考慮在這些類型網址啟動類型解析服務,但 Protobuf 從未實作這項服務,並認為與這些網址通訊會造成問題,且可能引發安全性問題。請勿嘗試輸入網址。

value

string (bytes format)

保留 type_url 所述類型的 Protobuf 序列化。

Base64 編碼字串。

可信度

解析度的信賴水準。

列舉
CONFIDENCE_UNSPECIFIED 預設值。這個值不會用到。
MEDIUM 中等可信度表示解析結果可能正確,但可能還有其他候選項目。
HIGH 高信賴度表示解析結果正確,且代表特定地理空間實體 (例如特定地點)。

工具註解

工具註解會傳送至 MCP 用戶端,說明特定工具的基本風險。大多數用戶端會將這些提示視為不受信任,但可用於決定何時向使用者傳送確認提示。

除了標題字串外,下列布林值提示的定義如下:

  • readOnlyHint:如果設為 true,工具不會修改環境。預設值:false。
  • destructiveHint:如果為 true,工具可以執行破壞性動作。如果為 false,則工具只能執行附加動作。預設值:true。
  • idempotentHint:如果設為 true,則使用相同引數重複呼叫工具,不會對環境造成額外影響。預設值:false。
  • openWorldHint:如果設為 true,工具就能與外部實體的「開放世界」互動。如果設為 false,工具只能與內部實體互動。舉例來說,網頁搜尋工具是開放世界,而記憶工具則不是。

Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌