工具:lookup_weather
检索全面的天气数据,包括天气实况、每小时预报和每日预报。可用的具体数据:温度(当前温度、体感温度、最高/最低温度、暑热指数)、风(风速、阵风、风向)、天体事件(日出/日落、月相)、降水(类型、概率、降水量/QPF)、大气状况(紫外线指数、湿度、云量、雷暴概率)和地理编码位置地址。位置和位置规则(关键):使用“位置”字段指定请求天气数据的位置。此字段为“oneof”结构,这意味着您必须仅为以下三个位置子字段之一提供值,以确保天气数据查找的准确性。1. 地理坐标 (lat_lng) * 如果您获得了确切的纬度/经度坐标,请使用此参数。 * 示例:“lat_lng”:{“latitude”:34.0522,“longitude”:-118.2437} // 洛杉矶 2. 地点 ID (place_id) * 一个明确的字符串标识符(Google 地图地点 ID)。 * place_id 可从 search_places 工具中获取。* 示例:“place_id”:“ChIJLU7jZClu5kcR4PcOOO6p3I0”// 埃菲尔铁塔 3. 地址字符串(地址)* 一种自由格式的字符串,需要具有明确性才能进行地理编码。* 城市和地区:始终包含地区/国家/地区(例如,“英国伦敦”,而不是“伦敦”)。* 街道地址:提供完整地址(例如,1600 Pennsylvania Ave NW, Washington, DC)。* 邮政编码:必须附带国家/地区名称(例如,“90210, USA”,而不是“90210”)。使用模式:1. 当前天气:仅提供 address。请勿指定 date 和 hour。2. 每小时天气预报:提供 address、date 和 hour(0-23)。用于特定时间(例如,“下午 5 点”)或“未来几小时”或“今天晚些时候”等字词。如果用户指定了分钟,则向下舍入为最接近的小时。不支持从现在起 48 小时后的每小时天气预报。3. 每日天气预报:提供 address 和 date。请勿指定 hour。用于一般日期请求(例如,“明天的天气”“周五的天气”“12 月 25 日的天气”)。如果上下文中未提及今天的日期,您应向用户明确说明。不支持今天之后超过 7 天的每日天气预报。不支持历史天气。参数限制: * 时区:所有 date 和 hour 输入都必须相对于营业地点的本地时区,而不是用户的时区。* 日期格式:输入内容必须分为 {year, month, day} 个整数。* 单位:默认为 METRIC。如果用户暗示或明确要求使用美国标准,请将 units_system 设置为 IMPERIAL(华氏度/英里)。
以下示例演示了如何使用 curl 调用 lookup_weather 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": "lookup_weather", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
针对 LookupWeather 方法的请求 - 表示所请求位置的天气状况。
LookupWeatherRequest
| JSON 表示法 |
|---|
{ "DEPRECATEDAddress": string, "unitsSystem": enum ( |
| 字段 | |
|---|---|
DEPRECATEDAddress |
已弃用:请改用“位置”。 |
unitsSystem |
可选。用于返回天气状况的单位制。如果未提供,返回的天气状况将采用公制单位(默认 = METRIC)。 |
location |
必需。要获取天气状况的地点。 |
联合字段
|
|
date |
可选。所需天气信息的日期。注意:此日期相对于位置字段中指定的位置的本地时区。日期必须在未来 7 天内。 |
联合字段
|
|
hour |
可选。所请求天气信息的小时(采用 24 小时制,范围为 0-23)。此值相对于“地点”字段中指定的地点的本地时区。每小时天气预报仅支持当前时间起未来 48 小时的预报。 |
日期
| JSON 表示法 |
|---|
{ "year": integer, "month": integer, "day": integer } |
| 字段 | |
|---|---|
year |
日期中的年份。必须介于 1 到 9999 之间,或为 0(即指定不含年份的日期)。 |
month |
一年中的第几个月。必须介于 1 到 12 之间,或为 0(即只指定年份,不指定月份和天值)。 |
day |
一个月中的第几天。必须介于 1 到 31 之间并且对年份和月份有效,或为 0(即天不重要,指定单独的年份或者年份和月份)。 |
位置
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 location_type。表示位置的不同方式。location_type 只能是下列其中一项: |
|
latLng |
使用地理坐标指定的点。 |
placeId |
与相应位置相关联的地点 ID。 |
address |
人类可读的地址或 Plus Code。如需了解详情,请参阅 https://plus.codes。 |
LatLng
| JSON 表示法 |
|---|
{ "latitude": number, "longitude": number } |
| 字段 | |
|---|---|
latitude |
纬度(以度为单位)。它必须在 [-90.0, +90.0] 范围内。 |
longitude |
经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。 |
输出架构
LookupWeather RPC 的响应 - 表示所请求位置的天气状况。
此响应同时包含每小时信息和每日信息,因此分为三个部分:每小时、每日和共享。仅限每小时、仅限每天的字段标记为选填。对于在小时级信息和天级信息之间共享的字段,有些字段始终存在,因此未标记为可选,而其余字段标记为可选,因为它们并非始终可用。
LookupWeatherResponse
| JSON 表示法 |
|---|
{ "weatherCondition": { object ( |
| 字段 | |
|---|---|
weatherCondition |
天气状况 |
precipitation |
降水概率和累积降水量 |
wind |
风况 |
DEPRECATEDGeocodedAddress |
已弃用:请改用 returned_location。 |
returnedLocation |
必需。返回天气信息的位置。此位置与请求中的位置相同,但如果请求的位置是查找粗略位置(例如“加利福尼亚州山景城”)的自由文本地址,则此位置可能与请求中的位置不同。 |
联合字段
|
|
temperature |
逐时温度 |
联合字段
|
|
feelsLikeTemperature |
每小时的体感温度。 |
联合字段
|
|
heatIndex |
每小时的酷热指数温度。 |
联合字段
|
|
airPressure |
每小时的气压状况。 |
联合字段
|
|
maxTemperature |
全天的最高温度。 |
联合字段
|
|
minTemperature |
全天的最低温度。 |
联合字段
|
|
feelsLikeMaxTemperature |
全天的最高(高)体感温度。 |
联合字段
|
|
feelsLikeMinTemperature |
全天的最低(低)体感温度。 |
联合字段
|
|
maxHeatIndex |
全天的最高暑热指数温度。 |
联合字段
|
|
sunEvents |
与太阳相关的事件(例如日出、日落)。 |
联合字段
|
|
moonEvents |
与月亮相关的事件(例如月升、月落)。 |
联合字段
|
|
relativeHumidity |
相对湿度百分比(值介于 0 到 100 之间)。定义为可选,因为并非始终可用 |
联合字段
|
|
uvIndex |
紫外线 (UV) 指数的最大值。定义为可选,因为并非始终可用 |
联合字段
|
|
thunderstormProbability |
雷暴概率(值介于 0 到 100 之间)。定义为可选,因为并非始终可用 |
联合字段
|
|
cloudCover |
云覆盖天空的百分比(值介于 0 到 100 之间)。定义为可选,因为并非始终可用 |
温度
| JSON 表示法 |
|---|
{ "unit": enum ( |
| 字段 | |
|---|---|
unit |
用于衡量温度值的单位的代码。 |
联合字段
|
|
degrees |
指定单位的温度值(以度为单位)。 |
AirPressure
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
meanSeaLevelMillibars |
平均海平面气压(以毫巴为单位)。 |
SunEvents
| JSON 表示法 |
|---|
{ "sunriseTime": string, "sunsetTime": string } |
| 字段 | |
|---|---|
sunriseTime |
日出时间。 注意:在某些特殊情况下(例如北极圈以北),某一天可能没有日出时间。在这些情况下,此字段将处于未设置状态。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
sunsetTime |
日落时间。 注意:在某些特殊情况下(例如北极圈以北),某一天可能没有日落时间。在这些情况下,此字段将处于未设置状态。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 时间 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 和 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒的非负分数(纳秒精度)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须介于 0 到 999,999,999 之间(含边界值)。 |
MoonEvents
| JSON 表示法 |
|---|
{
"moonriseTimes": [
string
],
"moonsetTimes": [
string
],
"moonPhase": enum ( |
| 字段 | |
|---|---|
moonriseTimes[] |
月球上肢出现在地平线上的时间(请参阅 https://en.wikipedia.org/wiki/Moonrise_and_moonset))。 注意:在大多数情况下,每天只有一个月升时间。在其他情况下,该列表可能为空(例如,当月亮在第二天午夜之后升起时)。不过,在特殊情况下(例如在极地地区),该列表可能包含多个值。在这些情况下,值按升序排序。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
moonsetTimes[] |
月球上缘消失在地平线以下的时间(请参阅 https://en.wikipedia.org/wiki/Moonrise_and_moonset))。 注意:在大多数情况下,每天只有一个月落时间。在其他情况下,该列表可能为空(例如,当月亮在次日午夜之后落下时)。不过,在特殊情况下(例如在极地地区),该列表可能包含多个值。在这些情况下,值按升序排序。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
moonPhase |
月相。 |
WeatherCondition
| JSON 表示法 |
|---|
{ "iconBaseUri": string, "description": { object ( |
| 字段 | |
|---|---|
iconBaseUri |
图标的基础 URI,不包括文件类型扩展名。如需显示图标,请根据需要将主题和文件类型扩展名( |
description |
相应天气状况的文字说明(已本地化)。 |
type |
天气状况的类型。 |
LocalizedText
| JSON 表示法 |
|---|
{ "text": string, "languageCode": string } |
| 字段 | |
|---|---|
text |
与下方 |
languageCode |
文本的 BCP-47 语言代码,例如“en-US”或“sr-Latn”。 如需了解详情,请参阅 http://www.unicode.org/reports/tr35/#Unicode_locale_identifier。 |
降水概率
| JSON 表示法 |
|---|
{ "probability": { object ( |
| 字段 | |
|---|---|
probability |
降水概率(值介于 0 到 100 之间)。 |
snowQpf |
一段时间内累积的降雪量(以等效液态水衡量)。注意:QPF 是定量降水预报的缩写(请参阅 QuantitativePrecipitationForecast 定义了解详情)。 |
qpf |
在一段时间内累积的降雨量(以等效液态水衡量)。注意:QPF 是定量降水预报的缩写(请参阅 QuantitativePrecipitationForecast 定义了解详情)。 |
PrecipitationProbability
| JSON 表示法 |
|---|
{ "type": enum ( |
| 字段 | |
|---|---|
type |
用于指示降水类型的代码。 |
联合字段
|
|
percent |
一个介于 0 到 100 之间的百分比,表示降水概率。 |
QuantitativePrecipitationForecast
| JSON 表示法 |
|---|
{ "unit": enum ( |
| 字段 | |
|---|---|
unit |
用于衡量累积降水量的单位的代码。 |
联合字段
|
|
quantity |
在一段时间内累积的降水量,以液态水当量来衡量。 |
Wind
| JSON 表示法 |
|---|
{ "direction": { object ( |
| 字段 | |
|---|---|
direction |
风向,风吹来的角度。 |
speed |
风速。 |
gust |
阵风(风速突然增大)。 |
WindDirection
| JSON 表示法 |
|---|
{ "cardinal": enum ( |
| 字段 | |
|---|---|
cardinal |
表示风向的基数方向的代码。 |
联合字段
|
|
degrees |
风向(以度为单位,值介于 0 到 360 之间)。 |
WindSpeed
| JSON 表示法 |
|---|
{ "unit": enum ( |
| 字段 | |
|---|---|
unit |
表示用于测量风速的单位的代码。 |
联合字段
|
|
value |
风速值。 |
位置
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 location_type。表示位置的不同方式。location_type 只能是下列其中一项: |
|
latLng |
使用地理坐标指定的点。 |
placeId |
与相应位置相关联的地点 ID。 |
address |
人类可读的地址或 Plus Code。如需了解详情,请参阅 https://plus.codes。 |
LatLng
| JSON 表示法 |
|---|
{ "latitude": number, "longitude": number } |
| 字段 | |
|---|---|
latitude |
纬度(以度为单位)。它必须在 [-90.0, +90.0] 范围内。 |
longitude |
经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。 |
工具注释
破坏性提示:❌ | 等幂性提示:❌ | 只读提示:✅ | 开放世界提示:❌