工具:lookup_weather
检索全面的天气数据,包括天气实况、每小时预报和每日预报。
可用的具体数据:温度(当前温度、体感温度、最高/最低温度、热度指数)、风(风速、阵风、风向)、天体事件(日出/日落、月相)、降水(类型、概率、数量/QPF)、大气条件(紫外线指数、湿度、云量、雷暴概率)和地理编码位置地址。
位置和位置规则(关键):
使用 location 字段指定要请求天气数据的位置。此字段采用“oneof”结构,这意味着您必须仅为以下三个位置子字段中的一个提供值,以确保准确查找天气数据。
地理坐标 (lat_lng)
- 当您获得确切的纬度/经度坐标时,请使用此方法。
- 示例:{"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // 洛杉矶
地点 ID (place_id)
- 明确的字符串标识符(Google 地图地点 ID)。
- place_id 可从 search_places 工具中提取。
- 示例:{"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // 埃菲尔铁塔
地址字符串 (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字段中的信息(如有)将接地输出归因于来源。
以下代码示例展示了如何使用 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 MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
LookupWeather 方法的请求 - 表示所请求位置的天气状况。
LookupWeatherRequest
| JSON 表示法 |
|---|
{ "unitsSystem": enum ( |
| 字段 | |
|---|---|
unitsSystem |
可选。返回的天气状况所使用的单位制。如果未提供,返回的天气状况将采用公制(默认值 = METRIC)。 |
location |
必需。要获取天气状况的位置。 |
联合字段
|
|
date |
可选。所需天气信息的日期。注意:此日期是相对于“地点”字段中指定的地点所在本地时区的日期。日期必须介于过去 24 小时到未来 10 天之间。 |
联合字段
|
|
hour |
可选。所请求天气信息的小时,采用 24 小时制 (0-23)。此值是相对于“location”字段中指定地点的本地时区而言的。不支持 120 小时之后的每小时预报。支持过去 24 小时内的历史每小时天气数据。 |
日期
| 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] 范围内。 |
UnitsSystem
表示用于测量值的单位制。
| 枚举 | |
|---|---|
UNITS_SYSTEM_UNSPECIFIED |
未指定单位制。 |
IMPERIAL |
英制单位系统(例如华氏度、英里等)。 |
METRIC |
公制单位系统(例如摄氏度、公里等)。 |
输出架构
LookupWeather RPC 的响应 - 表示所请求位置的天气状况。
此响应同时代表每小时和每日信息,因此响应分为三个部分:每小时、每日和共享。“仅限每小时”和“仅限每日”字段标记为选填。对于每小时和每日信息中共享的字段,有些字段始终存在,因此未标记为可选,而其余字段则标记为可选,因为它们并非始终可用。
LookupWeatherResponse
| JSON 表示法 |
|---|
{ "weatherCondition": { object ( |
| 字段 | |
|---|---|
weatherCondition |
天气状况 |
precipitation |
降水概率和累计降水量 |
wind |
风况 |
returnedLocation |
必需。返回天气信息的地点。此位置与请求中的位置相同,但如果请求的位置是查找粗略位置的自由文本地址(例如“Mountain View, CA”),则可能与请求中的位置不同。 |
attribution |
与天气信息一起显示的必需提供方信息。 |
联合字段
|
|
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,不包括文件类型扩展名。如需显示图标,请根据需要在此 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 是 Quantitative Precipitation Forecast(定量降水预报)的缩写(如需了解详情,请参阅 QuantitativePrecipitationForecast 定义)。 |
qpf |
一段时间内累积的降水量(以液态水当量衡量)。注意:QPF 是 Quantitative Precipitation Forecast(定量降水预报)的缩写(如需了解详情,请参阅 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] 范围内。 |
归因
| JSON 表示法 |
|---|
{ "title": string, "url": string } |
| 字段 | |
|---|---|
title |
要为提供方显示的标题。 |
url |
要链接到的归因网址。 |
TemperatureUnit
表示用于测量温度的单位。
| 枚举 | |
|---|---|
TEMPERATURE_UNIT_UNSPECIFIED |
未指定温度单位。 |
CELSIUS |
温度以摄氏度为单位。 |
FAHRENHEIT |
温度以华氏度为单位。 |
MoonPhase
标记月相。
| 枚举 | |
|---|---|
MOON_PHASE_UNSPECIFIED |
未指定月相。 |
NEW_MOON |
月球没有被太阳照亮。 |
WAXING_CRESCENT |
月球右侧(北半球 🌒)或左侧(南半球 🌘)有 0%-50% 的区域被照亮。 |
FIRST_QUARTER |
月球在北半球右侧被照亮 50.1% 🌓,在南半球左侧被照亮 50.1% 🌗。 |
WAXING_GIBBOUS |
在北半球,月球右侧有 50%-100% 的区域被照亮 🌔;在南半球,月球左侧有 50%-100% 的区域被照亮 🌖。 |
FULL_MOON |
月球完全被照亮。 |
WANING_GIBBOUS |
月球在北半球左侧 50%-100% 的区域被照亮 🌖,在南半球右侧 50%-100% 的区域被照亮 🌔。 |
LAST_QUARTER |
月球在北半球的左侧 🌗 和南半球的右侧 🌓 被照亮 50.1%。 |
WANING_CRESCENT |
月球左侧(北半球 🌘)或右侧(南半球 🌒)有 0%-50% 的区域被照亮。 |
类型
在天气预报元素上下文中标记天气状况类型。
| 枚举 | |
|---|---|
TYPE_UNSPECIFIED |
天气状况未指定。 |
CLEAR |
无云。 |
MOSTLY_CLEAR |
间歇性多云。 |
PARTLY_CLOUDY |
局部多云(有少量云)。 |
MOSTLY_CLOUDY |
以多云为主(云多于晴)。 |
CLOUDY |
多云(全是云,没有太阳)。 |
WINDY |
大风。 |
WIND_AND_RAIN |
大风伴有降水。 |
LIGHT_RAIN_SHOWERS |
间歇性小雨。 |
CHANCE_OF_SHOWERS |
可能有间歇性降雨。 |
SCATTERED_SHOWERS |
间歇性降雨。 |
RAIN_SHOWERS |
阵雨是指持续时间比雨短的降雨,其特点是开始和停止时间具有突发性,且强度变化迅速。 |
HEAVY_RAIN_SHOWERS |
强阵雨。 |
LIGHT_TO_MODERATE_RAIN |
雨(小到中雨)。 |
MODERATE_TO_HEAVY_RAIN |
雨(中到大雨)。 |
RAIN |
中雨。 |
LIGHT_RAIN |
小雨。 |
HEAVY_RAIN |
大雨。 |
RAIN_PERIODICALLY_HEAVY |
雨,偶有大雨。 |
LIGHT_SNOW_SHOWERS |
小雪,短时间内降雪强度会有所变化。 |
CHANCE_OF_SNOW_SHOWERS |
或有阵雪。 |
SCATTERED_SNOW_SHOWERS |
短时间内以不同强度降雪。 |
SNOW_SHOWERS |
阵雪。 |
HEAVY_SNOW_SHOWERS |
强阵雪。 |
LIGHT_TO_MODERATE_SNOW |
小到中雪。 |
MODERATE_TO_HEAVY_SNOW |
中到大雪。 |
SNOW |
中雪。 |
LIGHT_SNOW |
小雪。 |
HEAVY_SNOW |
大雪。 |
SNOWSTORM |
有雪,可能伴有雷电。 |
SNOW_PERIODICALLY_HEAVY |
雪,有时大雪。 |
HEAVY_SNOW_STORM |
大雪,可能伴有雷电。 |
BLOWING_SNOW |
降雪,伴有强风。 |
RAIN_AND_SNOW |
雨夹雪。 |
HAIL |
冰雹。 |
HAIL_SHOWERS |
短时间内以不同强度降落的冰雹。 |
THUNDERSTORM |
雷暴。 |
THUNDERSHOWER |
伴有雷电的阵雨。 |
LIGHT_THUNDERSTORM_RAIN |
轻度雷暴夹雨。 |
SCATTERED_THUNDERSTORMS |
雷暴,伴有不同强度的短时降雨。 |
HEAVY_THUNDERSTORM |
强雷暴。 |
PrecipitationType
表示指定位置的降水类型。
| 枚举 | |
|---|---|
PRECIPITATION_TYPE_UNSPECIFIED |
未指定的降水类型。 |
NONE |
无降水。 |
SNOW |
降雪。 |
RAIN |
降雨。 |
LIGHT_RAIN |
小雨。 |
HEAVY_RAIN |
大雨。 |
RAIN_AND_SNOW |
雨雪天气。 |
SLEET |
雨夹雪。 |
FREEZING_RAIN |
冻雨。 |
单位
表示用于测量累积降水量的单位。
| 枚举 | |
|---|---|
UNIT_UNSPECIFIED |
未指定降水量单位。 |
MILLIMETERS |
降水量以毫米为单位。 |
INCHES |
降水量以英寸为单位。 |
CardinalDirection
表示基本方向(包括序数方向)。
| 枚举 | |
|---|---|
CARDINAL_DIRECTION_UNSPECIFIED |
未指定基本方向。 |
NORTH |
北向。 |
NORTH_NORTHEAST |
北东北次级间方位。 |
NORTHEAST |
东北方向。 |
EAST_NORTHEAST |
东北偏东次要间方位。 |
EAST |
东。 |
EAST_SOUTHEAST |
东南偏东次级间方位。 |
SOUTHEAST |
东南方向。 |
SOUTH_SOUTHEAST |
南偏东南次要间方位。 |
SOUTH |
南。 |
SOUTH_SOUTHWEST |
南西南次要间方位。 |
SOUTHWEST |
西南方向。 |
WEST_SOUTHWEST |
西南偏西次级间方位。 |
WEST |
西方。 |
WEST_NORTHWEST |
西西北次要间方位。 |
NORTHWEST |
西北方向。 |
NORTH_NORTHWEST |
北西北次要间方位。 |
SpeedUnit
表示用于测量速度的单位。
| 枚举 | |
|---|---|
SPEED_UNIT_UNSPECIFIED |
未指定速度单位。 |
KILOMETERS_PER_HOUR |
速度以公里/小时为单位。 |
MILES_PER_HOUR |
速度以英里/小时为单位。 |
工具注释
工具注解会发送到 MCP 客户端,用于描述给定工具的基本风险。大多数客户端会将这些提示视为不可信,但可用于决定何时向用户发送确认提示。
除了标题字符串之外,还定义了以下布尔值提示:
readOnlyHint:如果为 true,则该工具不会修改其环境。默认值:false。destructiveHint:如果为 true,则该工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。idempotentHint:如果为 true,则使用相同参数重复调用该工具不会对其环境产生额外影响。默认值:false。openWorldHint:如果为 true,则该工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体交互。例如,网页搜索工具是开放世界,而记忆工具不是开放世界。
破坏性提示:❌ | 幂等性提示:❌ | 只读提示:✅ | 开放世界提示:❌