Инструмент: lookup_weather
Получает подробные данные о погоде, включая текущие условия, почасовые и ежедневные прогнозы.
Доступные данные: температура (текущая, ощущаемая, максимальная/минимальная, индекс жары), ветер (скорость, порывы, направление), астрономические события (восход/закат, фаза луны), осадки (тип, вероятность, количество), атмосферные условия (УФ-индекс, влажность, облачность, вероятность грозы) и адрес геолокации.
Местоположение и правила для местоположений (КРИТИЧНО)
Местоположение, для которого запрашиваются данные о погоде, указывается с помощью поля location. Это поле имеет структуру "один из", поэтому для точного поиска данных о погоде необходимо указать значение только для одного из трех вложенных полей местоположения.
Географические координаты (lat_lng)
- Используйте этот метод, если у вас есть точные координаты широты и долготы.
- Пример: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Лос-Анджелес
Идентификатор места (place_id)
- Однозначный строковый идентификатор (идентификатор места на Google Картах).
- Идентификатор места можно получить с помощью инструмента search_places.
- Пример: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Эйфелева башня
Строка адреса (address)
- Строка свободного формата, которая должна быть достаточно точной для геокодирования.
- Город и регион. Всегда указывайте регион или страну (например, "Лондон, Великобритания", а не просто "Лондон").
- Улица. Укажите полный адрес, например "ул. Балчуг, д. 7, Москва".
- Почтовые индексы должны сопровождаться названием страны (например, "90210, США", а не просто "90210").
- Пример: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}
Режимы использования
Текущая погода. Укажите только
location. Не указывайте свойстваdateиhour.Прогноз погоды по часам: укажите
location,dateиhour(0–23). Используйте для указания времени (например, "в 17:00") или таких выражений, как "в ближайшие несколько часов" или "сегодня позже". Если пользователь укажет минуты, время будет округлено до ближайшего часа. Почасовой прогноз на период более 120 часов не поддерживается. Почасовые данные о погоде доступны за последние 24 часа.Прогноз на день: укажите
locationиdate. Не указывайте свойствоhour. Используется для общих запросов о погоде на определенный день (например, "погода на завтра", "погода в пятницу", "погода 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 |
Идентификатор места, связанный с местоположением . |
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 |
Метрическая система единиц (например, градусы Цельсия, километры и т.д.). |
Схема вывода
Ответ на вызов RPC LookupWeather, содержащий информацию о погоде в запрошенном местоположении.
В этом ответе представлены данные как за час, так и за день, поэтому он разделен на три раздела: "Почасовые данные", "Ежедневные данные" и "Общие данные". Поля Only-Hourly и Only-Daily отмечены как необязательные. Поля, которые есть и в почасовых, и в ежедневных данных, могут быть обязательными или необязательными. Обязательные поля присутствуют всегда, а необязательные – не всегда.
LookupWeatherResponse
| JSON-представление |
|---|
{ "weatherCondition": { object ( |
| Поля | |
|---|---|
weatherCondition |
Погодные условия |
precipitation |
Вероятность осадков и их количество. |
wind |
Условия ветра |
returnedLocation |
Обязательно. Местоположение, для которого возвращается информация о погоде. Это местоположение идентично местоположению в запросе, но может отличаться от него, если запрошенное местоположение является адресом, введенным в виде обычного текста, который преобразуется в приблизительное местоположение (например, "Маунтин-Вью, Калифорния"). |
attribution |
Обязательный атрибут для показа прогноза погоды. |
Объединенное поле Поле |
|
temperature |
Почасовая температура. |
Объединенное поле Поле |
|
feelsLikeTemperature |
Почасовые данные о том, как ощущается температура. |
Объединенное поле Поле |
|
heatIndex |
Почасовая температура теплового индекса. |
Объединенное поле Поле |
|
airPressure |
Почасовые данные о давлении воздуха. |
Объединенное поле Поле |
|
maxTemperature |
Максимальная температура в течение дня. |
Объединенное поле Поле |
|
minTemperature |
Минимальная температура в течение дня. |
Объединенное поле Поле |
|
feelsLikeMaxTemperature |
Максимальная температура по ощущениям в течение дня. |
Объединенное поле Поле |
|
feelsLikeMinTemperature |
Минимальная температура по ощущениям в течение дня. |
Объединенное поле Поле |
|
maxHeatIndex |
Максимальная температура по индексу жары в течение дня. |
Объединенное поле Поле |
|
sunEvents |
События, связанные с солнцем (например, восход, закат). |
Объединенное поле Поле |
|
moonEvents |
События, связанные с Луной (например, восход и заход Луны). |
Объединенное поле Поле |
|
relativeHumidity |
Процент относительной влажности (значения от 0 до 100). Этот параметр необязательный, поскольку данные о влажности доступны не всегда. |
Объединенное поле Поле |
|
uvIndex |
Максимальный ультрафиолетовый (УФ) индекс. Определите необязательный параметр, поскольку он доступен не всегда. |
Объединенное поле Поле |
|
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-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: |
sunsetTime |
Время заката. ПРИМЕЧАНИЕ. В некоторых случаях (например, к северу от полярного круга) солнце может не заходить в течение дня. В таких случаях это поле будет пустым. Используется формат RFC 3339. Результат всегда будет Z-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: |
Временная метка
| JSON-представление |
|---|
{ "seconds": string, "nanos": integer } |
| Поля | |
|---|---|
seconds |
Представляет собой количество секунд по всемирному координированному времени с начала эпохи Unix (00:00:00 1 января 1970 года). Значение должно быть в диапазоне от -62135596800 до 253402300799 включительно (что соответствует периоду с 00:00:00 1 января 0001 г. до 23:59:59 31 декабря 9999 г. по UTC). |
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-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: |
moonsetTimes[] |
Время, когда верхний край луны исчезает за горизонтом (см. https://en.wikipedia.org/wiki/Moonrise_and_moonset). ПРИМЕЧАНИЕ. В большинстве случаев в день бывает только один заход луны. В других случаях список может быть пустым (например, когда луна заходит после полуночи на следующий день). Однако в некоторых случаях (например, в полярных регионах) в списке может быть несколько значений. В таких случаях значения сортируются по возрастанию. Используется формат RFC 3339. Результат всегда будет Z-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: |
moonPhase |
Фаза Луны. |
WeatherCondition
| JSON-представление |
|---|
{ "iconBaseUri": string, "description": { object ( |
| Поля | |
|---|---|
iconBaseUri |
Базовый URI значка без расширения файла. Чтобы отобразить значок, добавьте к этому URI тему (если нужно) и расширение файла ( |
description |
Текстовое описание погодных условий (локализованное). |
type |
Тип погодных условий. |
LocalizedText
| JSON-представление |
|---|
{ "text": string, "languageCode": string } |
| Поля | |
|---|---|
text |
Локализованная строка на языке, указанном в атрибуте |
languageCode |
Код языка текста по стандарту BCP-47, например "ru-RU" или "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 |
Количество осадков, измеренное в эквиваленте жидкой воды, которое накопилось за определенный период времени. |
Ветер
| 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 |
Идентификатор места, связанный с местоположением . |
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 |
URL, на который ведет ссылка для атрибуции. |
TemperatureUnit
Единица измерения температуры.
| Перечисления | |
|---|---|
TEMPERATURE_UNIT_UNSPECIFIED |
Единица измерения температуры не указана. |
CELSIUS |
Температура указывается в градусах Цельсия. |
FAHRENHEIT |
Температура указывается в градусах Фаренгейта. |
MoonPhase
Обозначает фазу Луны.
| Перечисления | |
|---|---|
MOON_PHASE_UNSPECIFIED |
Неизвестная фаза луны. |
NEW_MOON |
Луна не освещена Солнцем. |
WAXING_CRESCENT |
Луна освещена на 0–50 % с правой стороны в Северном полушарии (🌒) и с левой стороны в Южном полушарии (🌘). |
FIRST_QUARTER |
В Северном полушарии Луна освещена на 50,1% с правой стороны 🌓, а в Южном – с левой 🌗. |
WAXING_GIBBOUS |
Луна освещена на 50–100 % с правой стороны в Северном полушарии 🌔 и с левой стороны в Южном полушарии 🌖. |
FULL_MOON |
Луна полностью освещена. |
WANING_GIBBOUS |
В Северном полушарии освещена левая сторона Луны (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, инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет открытым миром, а инструмент памяти – нет.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌