MCP Tools Reference: mapstools.googleapis.com

Инструмент: lookup_weather

Получает исчерпывающие данные о погоде, включая текущие условия, почасовые и суточные прогнозы.

Доступны следующие данные: температура (текущая, ощущаемая, максимальная/минимальная, индекс жары), ветер (скорость, порывы, направление), небесные явления (восход/заход солнца, фаза луны), осадки (тип, вероятность, количество/QPF), атмосферные условия (УФ-индекс, влажность, облачность, вероятность грозы) и адрес с геолокацией.

Местоположение и правила определения местоположения (КРИТИЧЕСКИ ВАЖНО):

Местоположение, для которого запрашиваются данные о погоде, указывается с помощью поля « location . Это поле имеет структуру типа «один из», то есть для обеспечения точного поиска данных о погоде НЕОБХОДИМО указать значение ТОЛЬКО для ОДНОГО из трех подполей местоположения, указанных ниже.

  1. Географические координаты (широта_долгота)

    • Используйте этот метод, если вам предоставлены точные координаты широты и долготы.
    • Пример: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Лос-Анджелес
  2. Идентификатор места (place_id)

    • Однозначный строковый идентификатор (идентификатор места в Google Maps).
    • Идентификатор места (place_id) можно получить с помощью инструмента search_places.
    • Пример: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Эйфелева башня
  3. Адресная строка (адрес)

    • Строка произвольной формы, требующая конкретизации для геокодирования.
    • Город и регион: Всегда указывайте регион/страну (например, "Лондон, Великобритания", а не "Лондон").
    • Адрес: Укажите полный адрес (например, "1600 Pennsylvania Ave NW, Washington, DC").
    • Почтовые индексы: ОБЯЗАТЕЛЬНО должны сопровождаться названием страны (например, "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 для вызова инструмента MCP lookup_weather .

Запрос 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 (UnitsSystem),
  "location": {
    object (Location)
  },

  // Union field _date can be only one of the following:
  "date": {
    object (Date)
  }
  // End of list of possible types for union field _date.

  // Union field _hour can be only one of the following:
  "hour": integer
  // End of list of possible types for union field _hour.
}
Поля
DEPRECATEDAddress
(deprecated)

string

УСТАРЕВШАЯ ВЕРСИЯ: Используйте вместо этого местоположение.

unitsSystem

enum ( UnitsSystem )

Необязательный параметр. Система единиц измерения, используемая для возвращаемых погодных условий. Если не указана, возвращаемые погодные условия будут представлены в метрической системе (по умолчанию = МЕТРИЧЕСКАЯ).

location

object ( Location )

Обязательно. Место, для которого необходимо получить информацию о погоде.

Объединенное поле _date .

_date может принимать только одно из следующих значений:

date

object ( Date )

Необязательно. Дата получения необходимой информации о погоде. Примечание: Эта дата указывается относительно местного часового пояса местоположения, указанного в поле местоположения. Дата должна находиться в диапазоне от 24 часов назад до 10 дней в будущем.

Union field _hour .

_hour может принимать только одно из следующих значений:

hour

integer

Необязательно. Время запроса информации о погоде в 24-часовом формате (0-23). ​​Это значение указывается относительно местного часового пояса местоположения, указанного в поле местоположения. Почасовой прогноз на период более 120 часов не поддерживается. Исторические почасовые данные о погоде поддерживаются за период до 24 часов назад.

Дата

JSON-представление
{
  "year": integer,
  "month": integer,
  "day": integer
}
Поля
year

integer

Год даты. Должен быть от 1 до 9999, или 0, чтобы указать дату без года.

month

integer

Месяц года. Должен быть от 1 до 12, или 0, чтобы указать год без месяца и дня.

day

integer

День месяца. Должен быть от 1 до 31 и соответствовать году и месяцу, или 0, чтобы указать только год или год и месяц, где день не имеет значения.

Расположение

JSON-представление
{

  // Union field location_type can be only one of the following:
  "latLng": {
    object (LatLng)
  },
  "placeId": string,
  "address": string
  // End of list of possible types for union field location_type.
}
Поля
Поле объединения location_type . Различные способы представления местоположения. location_type может принимать только одно из следующих значений:
latLng

object ( LatLng )

Точка, заданная с использованием географических координат.

placeId

string

Идентификатор места, связанный с данным местоположением.

address

string

Адрес в удобочитаемом виде или код «плюс». Подробности см. на сайте https://plus.codes .

LatLng

JSON-представление
{
  "latitude": number,
  "longitude": number
}
Поля
latitude

number

Широта в градусах. Она должна находиться в диапазоне [-90,0, +90,0].

longitude

number

Долгота в градусах. Она должна находиться в диапазоне [-180,0, +180,0].

Схема вывода

Ответ на RPC-запрос LookupWeather — отображает погодные условия в запрошенном месте.

Этот ответ содержит как почасовую, так и суточную информацию, поэтому он разделен на три раздела: почасовой, суточный и общий. Поля, содержащие только почасовую и только суточную информацию, помечены как необязательные. Для полей, общих для почасовой и суточной информации, некоторые из них присутствуют всегда и не помечены как необязательные, а остальные помечены как необязательные, поскольку они доступны не всегда.

LookupWeatherResponse

JSON-представление
{
  "weatherCondition": {
    object (WeatherCondition)
  },
  "precipitation": {
    object (Precipitation)
  },
  "wind": {
    object (Wind)
  },
  "DEPRECATEDGeocodedAddress": string,
  "returnedLocation": {
    object (Location)
  },
  "attribution": {
    object (Attribution)
  },

  // Union field _temperature can be only one of the following:
  "temperature": {
    object (Temperature)
  }
  // End of list of possible types for union field _temperature.

  // Union field _feels_like_temperature can be only one of the following:
  "feelsLikeTemperature": {
    object (Temperature)
  }
  // End of list of possible types for union field _feels_like_temperature.

  // Union field _heat_index can be only one of the following:
  "heatIndex": {
    object (Temperature)
  }
  // End of list of possible types for union field _heat_index.

  // Union field _air_pressure can be only one of the following:
  "airPressure": {
    object (AirPressure)
  }
  // End of list of possible types for union field _air_pressure.

  // Union field _max_temperature can be only one of the following:
  "maxTemperature": {
    object (Temperature)
  }
  // End of list of possible types for union field _max_temperature.

  // Union field _min_temperature can be only one of the following:
  "minTemperature": {
    object (Temperature)
  }
  // End of list of possible types for union field _min_temperature.

  // Union field _feels_like_max_temperature can be only one of the following:
  "feelsLikeMaxTemperature": {
    object (Temperature)
  }
  // End of list of possible types for union field _feels_like_max_temperature.

  // Union field _feels_like_min_temperature can be only one of the following:
  "feelsLikeMinTemperature": {
    object (Temperature)
  }
  // End of list of possible types for union field _feels_like_min_temperature.

  // Union field _max_heat_index can be only one of the following:
  "maxHeatIndex": {
    object (Temperature)
  }
  // End of list of possible types for union field _max_heat_index.

  // Union field _sun_events can be only one of the following:
  "sunEvents": {
    object (SunEvents)
  }
  // End of list of possible types for union field _sun_events.

  // Union field _moon_events can be only one of the following:
  "moonEvents": {
    object (MoonEvents)
  }
  // End of list of possible types for union field _moon_events.

  // Union field _relative_humidity can be only one of the following:
  "relativeHumidity": integer
  // End of list of possible types for union field _relative_humidity.

  // Union field _uv_index can be only one of the following:
  "uvIndex": integer
  // End of list of possible types for union field _uv_index.

  // Union field _thunderstorm_probability can be only one of the following:
  "thunderstormProbability": integer
  // End of list of possible types for union field _thunderstorm_probability.

  // Union field _cloud_cover can be only one of the following:
  "cloudCover": integer
  // End of list of possible types for union field _cloud_cover.
}
Поля
weatherCondition

object ( WeatherCondition )

Погодные условия

precipitation

object ( Precipitation )

Вероятность выпадения осадков и количество выпавших осадков.

wind

object ( Wind )

Ветровые условия

DEPRECATEDGeocodedAddress
(deprecated)

string

УСТАРЕЛО: Используйте returned_location вместо этого.

returnedLocation

object ( Location )

Обязательно. Местоположение, куда возвращается информация о погоде. Это местоположение идентично местоположению в запросе, но может отличаться, если запрашиваемое местоположение представляет собой произвольный текстовый адрес, указывающий на приблизительное местоположение (например, «Маунтин-Вью, Калифорния»).

attribution

object ( Attribution )

Необходимо указать источник информации, чтобы она отображалась вместе с погодными условиями.

Объединенное поле _temperature .

_temperature может принимать только одно из следующих значений:

temperature

object ( Temperature )

Почасовая температура

Поле объединения _feels_like_temperature .

_feels_like_temperature может принимать только одно из следующих значений:

feelsLikeTemperature

object ( Temperature )

Почасовая оценка того, как ощущается температура.

Объединенное поле _heat_index .

_heat_index может принимать только одно из следующих значений:

heatIndex

object ( Temperature )

Почасовой индекс тепловой нагрузки.

Объединенное поле _air_pressure .

_air_pressure может принимать только одно из следующих значений:

airPressure

object ( AirPressure )

Почасовые данные об атмосферном давлении.

Объединенное поле _max_temperature .

_max_temperature может принимать только одно из следующих значений:

maxTemperature

object ( Temperature )

Максимальная (высокая) температура в течение дня.

Объединенное поле _min_temperature .

_min_temperature может принимать только одно из следующих значений:

minTemperature

object ( Temperature )

Минимальная (низкая) температура в течение дня.

Поле объединения _feels_like_max_temperature .

_feels_like_max_temperature может принимать только одно из следующих значений:

feelsLikeMaxTemperature

object ( Temperature )

Максимальная (высокая) ощущаемая температура в течение дня.

Поле объединения _feels_like_min_temperature .

_feels_like_min_temperature может принимать только одно из следующих значений:

feelsLikeMinTemperature

object ( Temperature )

Минимальная (низкая) ощущаемая температура в течение дня.

Объединенное поле _max_heat_index .

_max_heat_index может принимать только одно из следующих значений:

maxHeatIndex

object ( Temperature )

Максимальная температура по индексу жары в течение дня.

Union field _sun_events .

_sun_events может принимать только одно из следующих значений:

sunEvents

object ( SunEvents )

События, связанные с солнцем (например, восход, закат).

Объединенное поле _moon_events .

_moon_events может принимать только одно из следующих значений:

moonEvents

object ( MoonEvents )

События, связанные с Луной (например, восход и закат Луны).

Объединенное поле _relative_humidity .

_relative_humidity может принимать только одно из следующих значений:

relativeHumidity

integer

Процент относительной влажности (значения от 0 до 100). Это необязательный параметр, поскольку он доступен не всегда.

Объединенное поле _uv_index .

_uv_index может принимать только одно из следующих значений:

uvIndex

integer

Максимальный ультрафиолетовый (УФ) индекс. Это необязательный параметр, поскольку он доступен не всегда.

Объединенное поле _thunderstorm_probability .

_thunderstorm_probability может принимать только одно из следующих значений:

thunderstormProbability

integer

Вероятность грозы (значения от 0 до 100). Это необязательный параметр, поскольку он доступен не всегда.

Объединенное поле _cloud_cover .

_cloud_cover может принимать только одно из следующих значений:

cloudCover

integer

Процент облачности на небе (значения от 0 до 100). Это необязательный параметр, поскольку он доступен не всегда.

Температура

JSON-представление
{
  "unit": enum (TemperatureUnit),

  // Union field _degrees can be only one of the following:
  "degrees": number
  // End of list of possible types for union field _degrees.
}
Поля
unit

enum ( TemperatureUnit )

Код единицы измерения, используемой для определения значения температуры.

Объединенное поле _degrees .

_degrees может принимать только одно из следующих значений:

degrees

number

Значение температуры (в градусах) в указанной единице измерения.

Давление воздуха

JSON-представление
{

  // Union field _mean_sea_level_millibars can be only one of the following:
  "meanSeaLevelMillibars": number
  // End of list of possible types for union field _mean_sea_level_millibars.
}
Поля

Объединенное поле _mean_sea_level_millibars .

_mean_sea_level_millibars может принимать только одно из следующих значений:

meanSeaLevelMillibars

number

Среднее атмосферное давление на уровне моря в миллибарах.

SunEvents

JSON-представление
{
  "sunriseTime": string,
  "sunsetTime": string
}
Поля
sunriseTime

string ( Timestamp format)

Время восхода солнца.

ПРИМЕЧАНИЕ: В некоторых уникальных случаях (например, к северу от Полярного круга) время восхода солнца в течение дня может отсутствовать. В таких случаях это поле будет пустым.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

sunsetTime

string ( Timestamp format)

Время захода солнца.

ПРИМЕЧАНИЕ: В некоторых уникальных случаях (например, к северу от Полярного круга) время захода солнца в течение дня может отсутствовать. В таких случаях это поле будет пустым.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

Отметка времени

JSON-представление
{
  "seconds": string,
  "nanos": integer
}
Поля
seconds

string ( int64 format)

Обозначает количество секунд UTC-времени с начала эпохи Unix 1970-01-01T00:00:00Z. Должно находиться в диапазоне от -62135596800 до 253402300799 включительно (что соответствует периоду с 0001-01-01T00:00:00Z по 9999-12-31T23:59:59Z).

nanos

integer

Неотрицательные доли секунды с разрешением в наносекунды. Это поле представляет собой наносекундную часть длительности, а не альтернативу секундам. Отрицательные значения секунд с дробными долями должны по-прежнему иметь неотрицательные значения в наносекундах, отсчитываемые вперед во времени. Должны быть в диапазоне от 0 до 999 999 999 включительно.

MoonEvents

JSON-представление
{
  "moonriseTimes": [
    string
  ],
  "moonsetTimes": [
    string
  ],
  "moonPhase": enum (MoonPhase)
}
Поля
moonriseTimes[]

string ( Timestamp format)

Время, когда верхний край Луны появляется над горизонтом (см. https://en.wikipedia.org/wiki/Moonrise_and_moonset) .

ПРИМЕЧАНИЕ: В большинстве случаев в течение дня будет указано только одно время восхода луны. В других случаях список может быть пустым (например, если луна восходит после полуночи следующего дня). Однако в уникальных случаях (например, в полярных регионах) список может содержать более одного значения. В этих случаях значения сортируются в порядке возрастания.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

moonsetTimes[]

string ( Timestamp format)

Время, когда верхний край Луны скрывается за горизонтом (см. https://en.wikipedia.org/wiki/Moonrise_and_moonset) .

ПРИМЕЧАНИЕ: В большинстве случаев в течение дня будет указано только одно время захода Луны. В других случаях список может быть пустым (например, если Луна заходит после полуночи следующего дня). Однако в уникальных случаях (например, в полярных регионах) список может содержать более одного значения. В этих случаях значения сортируются в порядке возрастания.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

moonPhase

enum ( MoonPhase )

Фаза Луны (или лунная фаза).

Погодные условия

JSON-представление
{
  "iconBaseUri": string,
  "description": {
    object (LocalizedText)
  },
  "type": enum (Type)
}
Поля
iconBaseUri

string

Базовый URI для значка, не включающий расширение файла. Чтобы отобразить значок, при желании добавьте тему оформления и расширение файла ( .png или .svg ) к этому URI. По умолчанию значок имеет светлую тему, но для темного режима можно добавить _dark . Например: "https://maps.gstatic.com/weather/v1/dust.svg" или "https://maps.gstatic.com/weather/v1/dust_dark.svg", где icon_base_uri — это "https://maps.gstatic.com/weather/v1/dust".

description

object ( LocalizedText )

Текстовое описание данного погодного явления (локальное).

type

enum ( Type )

Тип погодных условий.

Локализованный текст

JSON-представление
{
  "text": string,
  "languageCode": string
}
Поля
text

string

Локализованная строка на языке, соответствующем значению google.type.LocalizedText.language_code указанному ниже.

languageCode

string

Языковой код текста в системе BCP-47, например, "en-US" или "sr-Latn".

Для получения дополнительной информации см. http://www.unicode.org/reports/tr35/#Unicode_locale_identifier .

Осадки

JSON-представление
{
  "probability": {
    object (PrecipitationProbability)
  },
  "snowQpf": {
    object (QuantitativePrecipitationForecast)
  },
  "qpf": {
    object (QuantitativePrecipitationForecast)
  }
}
Поля
probability

object ( PrecipitationProbability )

Вероятность выпадения осадков (значения от 0 до 100).

snowQpf

object ( QuantitativePrecipitationForecast )

Количество снега, измеренное в эквиваленте жидкой воды, накопившееся за определенный период времени. Примечание: QPF — это аббревиатура от Quantitative Precipitation Forecast (подробнее см. определение QuantitativePrecipitationForecast).

qpf

object ( QuantitativePrecipitationForecast )

Количество осадков в виде дождя, измеренное в эквиваленте жидкой воды, накопившееся за определенный период времени. Примечание: QPF — это аббревиатура от Quantitative Precipitation Forecast (подробнее см. определение QuantitativePrecipitationForecast).

Вероятность осадков

JSON-представление
{
  "type": enum (PrecipitationType),

  // Union field _percent can be only one of the following:
  "percent": integer
  // End of list of possible types for union field _percent.
}
Поля
type

enum ( PrecipitationType )

Код, указывающий на тип осадков.

_percent поля объединения.

_percent может принимать только одно из следующих значений:

percent

integer

Процентное значение от 0 до 100, указывающее на вероятность осадков.

Количественный прогноз осадков

JSON-представление
{
  "unit": enum (Unit),

  // Union field _quantity can be only one of the following:
  "quantity": number
  // End of list of possible types for union field _quantity.
}
Поля
unit

enum ( Unit )

Код единицы измерения, используемой для определения количества накопленных осадков.

Объединенное поле _quantity .

_quantity может принимать только одно из следующих значений:

quantity

number

Количество осадков, измеренное в эквиваленте жидкой воды, накопившееся за определенный период времени.

Ветер

JSON-представление
{
  "direction": {
    object (WindDirection)
  },
  "speed": {
    object (WindSpeed)
  },
  "gust": {
    object (WindSpeed)
  }
}
Поля
direction

object ( WindDirection )

Направление ветра, угол его дуновения.

speed

object ( WindSpeed )

Скорость ветра.

gust

object ( WindSpeed )

Порыв ветра (внезапное увеличение скорости ветра).

Направление ветра

JSON-представление
{
  "cardinal": enum (CardinalDirection),

  // Union field _degrees can be only one of the following:
  "degrees": integer
  // End of list of possible types for union field _degrees.
}
Поля
cardinal

enum ( CardinalDirection )

Код, обозначающий основное направление ветра.

Объединенное поле _degrees .

_degrees может принимать только одно из следующих значений:

degrees

integer

Направление ветра в градусах (значения от 0 до 360).

Скорость ветра

JSON-представление
{
  "unit": enum (SpeedUnit),

  // Union field _value can be only one of the following:
  "value": number
  // End of list of possible types for union field _value.
}
Поля
unit

enum ( SpeedUnit )

Код, обозначающий единицу измерения скорости ветра.

Объединенное поле _value .

_value может принимать только одно из следующих значений:

value

number

Значение скорости ветра.

Расположение

JSON-представление
{

  // Union field location_type can be only one of the following:
  "latLng": {
    object (LatLng)
  },
  "placeId": string,
  "address": string
  // End of list of possible types for union field location_type.
}
Поля
Поле объединения location_type . Различные способы представления местоположения. location_type может принимать только одно из следующих значений:
latLng

object ( LatLng )

Точка, заданная с использованием географических координат.

placeId

string

Идентификатор места, связанный с данным местоположением.

address

string

Адрес в удобочитаемом виде или код «плюс». Подробности см. на сайте https://plus.codes .

LatLng

JSON-представление
{
  "latitude": number,
  "longitude": number
}
Поля
latitude

number

Широта в градусах. Она должна находиться в диапазоне [-90,0, +90,0].

longitude

number

Долгота в градусах. Она должна находиться в диапазоне [-180,0, +180,0].

Атрибуция

JSON-представление
{
  "title": string,
  "url": string
}
Поля
title

string

Заголовок, отображаемый для указания авторства.

url

string

URL-адрес, на который следует ссылаться для указания авторства.

Аннотации инструментов

Подсказка о разрушительном эффекте: ❌ | Подсказка об идемпотентности: ❌ | Подсказка только для чтения: ✅ | Подсказка об открытом мире: ❌