MCP Reference: mapstools.googleapis.com

这是由 Maps Grounding Lite API 提供的 MCP 服务器。该服务器为开发者提供了在 Google Maps Platform 上构建 LLM 应用的工具。

Model Context Protocol (MCP) 服务器充当外部服务(为大语言模型 [LLM] 或 AI 应用提供上下文、数据或功能)与 LLM 或 AI 应用之间的代理。MCP 服务器将 AI 应用连接到数据库和 Web 服务等外部系统,并将这些系统的响应转换为 AI 应用可理解的格式。

服务器设置

您必须先启用 MCP 服务器并设置身份验证,然后才能使用。如需详细了解如何使用 Google 和 Google Cloud 远程 MCP 服务器,请参阅 Google Cloud MCP 服务器概览。

服务器端点

MCP 服务端点是 MCP 服务器的网络地址和通信接口(通常是网址),AI 应用(MCP 客户端的宿主)使用该端点来建立安全、标准化的连接。它是 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 公里半径: {"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(字符串 - 可选):显示搜索结果摘要所用的语言。

    • 格式:一个双字母语言代码 (ISO 639-1),可以选择后跟一个下划线和一个双字母国家/地区代码 (ISO 3166-1 alpha-2),例如 en、ja、en_US、zh_CN、es_MX。如果未提供语言代码,结果将以英语显示。
  4. region_code(字符串 - 可选):用户的 Unicode CLDR 地区代码。此参数用于显示地点详情,例如特定于区域的地点名称(如果有)。此参数可能会根据适用法律影响结果。

    • 格式:双字母国家/地区代码 (ISO 3166-1 alpha-2),例如 US、CA。

工具调用说明:

  • 位置信息(严重):搜索内容必须包含足够的位置信息。如果位置不明确(例如,仅为“披萨店”),您必须在 text_query 中指定位置(例如,“纽约的披萨店”),或使用 location_bias 参数。如果需要消除歧义,请添加城市、州/省/直辖市/自治区和国家/地区名称。

  • 始终提供最具体且最贴合上下文的 text_query。

  • 仅当明确提供坐标时,或者当从用户的已知情境推断位置信息对于获得更好的结果是适当且必要的时,才使用 location_bias。

  • 如果 attribution 字段中包含信息,则必须使用该信息将基于事实的输出归因于来源。

lookup_weather

检索全面的天气数据,包括天气实况、每小时预报和每日预报。

可获取的具体数据:温度(当前温度、体感温度、最高/最低温度、热指数)、风(风速、阵风、风向)、天体事件(日出/日落、月相)、降水(类型、概率、降水量/QPF)、大气状况(紫外线指数、湿度、云量、雷暴概率)和地理编码位置地址。

位置和位置规则(严重):

使用 location 字段指定请求天气数据的位置。此字段是一个“oneof”结构,这意味着您必须仅为以下三个位置子字段之一提供值,以确保天气数据查找准确无误。

  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"}}

使用模式:

  • 当前天气:仅提供 location。请勿指定 date 和 hour。

  • 每小时天气预报:提供 location、date 和 hour(0-23)。用于指定具体时间(例如“下午 5 点”)或“未来几小时”或“今天晚些时候”等字词。如果用户指定了分钟,则向下舍入为最接近的小时。不支持从现在起 120 小时以后的每小时天气预报。支持查看过去 24 小时内的历史每小时天气信息。

  • 每日天气预报:提供 location 和 date。请勿指定 hour。用于一般日期请求(例如“明天的天气”“周五的天气”“12 月 25 日的天气”)。如果上下文中没有今天的日期,您应该向用户明确说明。不支持今天之后超过 10 天的每日天气预报。不支持历史天气。

参数限制:

  • 时区:所有 date 和 hour 输入都必须相对于相应位置的本地时区,而不是用户的时区。
  • 日期格式:输入内容必须分为 {year, month, day} 个整数。
  • 单位:默认值为 METRIC。如果用户暗示或明确要求使用美国标准,请将 units_system 设置为 IMPERIAL(华氏度/英里)。
  • 如果 attribution 字段中包含信息,则必须使用该信息将基于事实的输出归因于来源。

compute_routes

计算指定出发地和目的地之间的出行路线。支持的出行方式:DRIVE(默认)、WALK。

输入要求(关键):需要同时提供出发地和目的地。必须使用以下方法之一在相应字段中嵌套提供每个值:

  • address:(字符串,例如“埃菲尔铁塔,巴黎”)。注意:输入的地址越精细或越具体,结果就越好。

  • lat_lng:(对象,{"latitude": number, "longitude": number})

  • place_id::(字符串,例如“ChIJOwE_Id1w5EAR4Q27FkL6T_0”)注意:此 ID 可通过 search_places 工具获取。允许使用任何输入类型组合(例如,按地址指定出发地,按 lat_lng 指定目的地)。如果缺少出发地或目的地,您必须先询问用户以明确信息,然后再尝试调用该工具。

工具调用示例:{"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 地区代码(双字母国家/地区代码,例如 US、CA),用于使结果产生偏差。

工具调用说明:

  • 具体性(严重):查询必须表示具体的地点名称或地址。不支持 'restaurants' 等一般性搜索或 'Starbucks' 等连锁店名称。
  • 如果您计划调用的下游工具已直接接受原始地址或地点名称字符串,请勿调用此工具。

保存到 Google 地图:

  • 响应包含一个 save_to_maps_url 字段:一个 Google 地图链接,其中包含所有成功解析的地点。
  • 当用户想要在 Google 地图中保存、分享或打开已解析的地点列表时,请向用户显示此链接。请勿自行构建此链接。

错误处理(严重):

  • 这是一个批处理工具。请求可能会返回“混合结果”(例如,某些查询成功解析,而其他查询失败)。
  • 输出 results 的列表保证与输入 queries 的索引一一对应。如果查询失败,则 results 列表中相应索引处的 Result 消息将为空(未设置 entity)。
  • 您必须检查响应中的 failed_requests 地图字段,以确定哪个具体查询索引失败。failed_requests 的键表示请求中失败查询的索引(从 0 开始)。请勿因部分失败而假定整个批处理调用失败。
resolve_maps_urls

将 Google 地图网址列表解析为规范的 Google 地图地点 ID。

何时调用此工具(关键):

  • 当用户提供一个或多个 Google 地图分享链接或网址(例如“https://maps.app.goo.gl/…”“https://www.google.com/maps/place/…”)时,请使用此工具。'https://www.google.com/maps/place/…' 或 'https://maps.google.com/…'),您需要提取基础规范地点 ID。
  • 您可以在单个批量请求中指定最多 20 个要解析的网址。

输入要求(关键):

  • urls(字符串数组 - 必需):要解析的 Google 地图网址列表。每个网址都必须是有效的单地点 Google 地图网址。

保存到 Google 地图:

  • 响应包含一个 save_to_maps_url 字段:一个 Google 地图链接,其中包含所有成功解析的地点。
  • 当用户想要在 Google 地图中保存、分享或打开已解析的地点列表(例如收集对话中分享的地点)时,请向用户显示此链接。请勿自行构建此链接。

错误处理(严重):

  • 这是一个批处理工具。请求可能会返回“混合结果”(例如,某些网址成功解析,而其他网址失败)。
  • 输出 entities 的列表保证与输入 urls 的索引一一对应。如果网址解析失败,则 entities 列表中相应索引处的 Entity 消息将为空(未设置任何字段)。
  • 您必须检查响应中的 failed_requests 地图字段,以确定哪个特定网址的索引编制失败。failed_requests 的键表示请求中失败网址的索引(从 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
}'