MCP Tools Reference: mapstools.googleapis.com

Herramienta: lookup_weather

Recupera datos meteorológicos integrales, incluidas las condiciones actuales y los pronósticos por hora y por día. Datos específicos disponibles: Temperatura (actual, sensación térmica, máxima/mínima, índice de calor), viento (velocidad, ráfagas, dirección), eventos celestes (amanecer/atardecer, fase lunar), precipitación (tipo, probabilidad, cantidad/QPF), condiciones atmosféricas (índice UV, humedad, cobertura de nubes, probabilidad de tormentas eléctricas) y dirección de ubicación geocodificada. Ubicación y reglas de ubicación (CRÍTICO): La ubicación para la que se solicitan datos meteorológicos se especifica con el campo "location". Este campo es una estructura "oneof", lo que significa que DEBES proporcionar un valor para SOLO UNO de los tres subcampos de ubicación que se indican a continuación para garantizar una búsqueda precisa de datos meteorológicos. 1. Coordenadas geográficas (lat_lng): * Úsalas cuando se te proporcionen coordenadas exactas de latitud y longitud. * Ejemplo: "lat_lng": { "latitude": 34.0522, "longitude": -118.2437 } // Los Ángeles 2. ID de lugar (place_id): Es un identificador de cadena inequívoco (ID de lugar de Google Maps). * El place_id se puede recuperar de la herramienta search_places. * Ejemplo: "place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0" // Torre Eiffel 3. Cadena de dirección (address): * Cadena de formato libre que requiere especificidad para la codificación geográfica. * Ciudad y región: Siempre incluye la región o el país (p.ej., "Londres, Reino Unido", no "Londres"). * Dirección: Proporciona la dirección completa (p.ej., "1600 Pennsylvania Ave NW, Washington, DC"). * Códigos postales: DEBEN estar acompañados del nombre del país (p.ej., "90210, EE.UU.", NO "90210"). Modos de uso: 1. Clima actual: Proporciona solo address. No especifiques date ni hour. 2. Pronóstico por hora: Proporciona address, date y hour (de 0 a 23). Usar en horarios específicos (p.ej., "a las 5 p.m.") o términos como "en las próximas horas" o "más tarde hoy". Si el usuario especifica minutos, redondea hacia abajo a la hora más cercana. No se admite la previsión por hora más allá de las 48 horas a partir de ahora. 3. Pronóstico diario: Proporciona address y date. No especifiques hour. Se usa para solicitudes generales del día (p.ej., "clima para mañana", "clima el viernes", "clima el 25/12"). Si la fecha actual no está en el contexto, debes aclararla con el usuario. No se admite la previsión diaria más allá de los 7 días, incluido el día de hoy. No se admite el clima histórico. Restricciones de parámetros: * Zonas horarias: Todas las entradas de date y hour deben ser relativas a la zona horaria local de la ubicación, no a la zona horaria del usuario. * Formato de fecha: Las entradas deben separarse en {year, month, day} números enteros. * Unidades: La configuración predeterminada es METRIC. Establece units_system en IMPERIAL para Fahrenheit/millas si el usuario implica estándares de EE.UU. o lo solicita explícitamente.

En el siguiente ejemplo, se muestra cómo usar curl para invocar la herramienta de MCP lookup_weather.

Solicitud de 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
}'
                

Esquema de entrada

Solicitud para el método LookupWeather, que representa las condiciones climáticas en la ubicación solicitada.

LookupWeatherRequest

Representación JSON
{
  "DEPRECATEDAddress": string,
  "unitsSystem": enum (UnitsSystem),
  "location": {
    object (Location)
  },

  // Union field _date can be only one of the following:
  "date": {
    object (google.type.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.
}
Campos
DEPRECATEDAddress
(deprecated)

string

OBSOLETO: Usa location en su lugar.

unitsSystem

enum (UnitsSystem)

Opcional. Es el sistema de unidades que se usará para las condiciones climáticas devueltas. Si no se proporciona, las condiciones climáticas devueltas estarán en el sistema métrico (predeterminado = METRIC).

location

object (Location)

Obligatorio. Es la ubicación para la que se obtendrán las condiciones climáticas.

Campo de unión _date.

_date puede ser una de las siguientes opciones:

date

object (google.type.Date)

Opcional. Es la fecha de la información meteorológica requerida. Nota: Esta fecha es relativa a la zona horaria local de la ubicación especificada en el campo de ubicación. La fecha debe ser dentro de los próximos 7 días.

Campo de unión _hour.

_hour puede ser una de las siguientes opciones:

hour

integer

Opcional. Hora de la información meteorológica solicitada, en formato de 24 horas (0-23). Este valor es relativo a la zona horaria local de la ubicación especificada en el campo de ubicación. El pronóstico por hora solo se admite para las próximas 48 horas a partir de la hora actual.

Fecha

Representación JSON
{
  "year": integer,
  "month": integer,
  "day": integer
}
Campos
year

integer

Año de la fecha. Debe ser entre 1 y 9,999, o bien 0 para especificar una fecha sin año.

month

integer

Mes del año. Debe ser del 1 al 12 o 0 para especificar un año sin un mes ni un día.

day

integer

Día del mes. Debe ser entre 1 y 31 y ser válido para el año y el mes o bien 0 para especificar un año solo o un año y un mes en los que el día no sea significativo.

Ubicación

Representación JSON
{

  // Union field location_type can be only one of the following:
  "latLng": {
    object (google.type.LatLng)
  },
  "placeId": string,
  "address": string
  // End of list of possible types for union field location_type.
}
Campos
Campo de unión location_type. Diferentes formas de representar una ubicación. location_type puede ser solo uno de los parámetros siguientes:
latLng

object (google.type.LatLng)

Es un punto especificado con coordenadas geográficas.

placeId

string

Es el ID de lugar asociado a la ubicación .

address

string

Dirección legible o Plus Code. Visita https://plus.codes para obtener más información.

LatLng

Representación JSON
{
  "latitude": number,
  "longitude": number
}
Campos
latitude

number

La latitud expresada en grados. Debe pertenecer al rango [-90.0, +90.0].

longitude

number

La longitud expresada en grados. Debe pertenecer al rango [-180.0, +180.0].

Esquema de salida

Es la respuesta para la RPC de LookupWeather, que representa las condiciones climáticas en la ubicación solicitada.

Esta respuesta representa información tanto por hora como diaria, por lo que se divide en tres secciones: Hourly, Daily y Shared. Los campos Only-Hourly y Only-Daily están marcados como opcionales. En el caso de los campos que se comparten entre la información por hora y la diaria, algunos siempre están presentes, por lo que no se marcan como opcionales, mientras que el resto se marcan como opcionales porque no siempre están disponibles.

LookupWeatherResponse

Representación JSON
{
  "weatherCondition": {
    object (WeatherCondition)
  },
  "precipitation": {
    object (Precipitation)
  },
  "wind": {
    object (Wind)
  },
  "DEPRECATEDGeocodedAddress": string,
  "returnedLocation": {
    object (Location)
  },

  // 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.
}
Campos
weatherCondition

object (WeatherCondition)

La condición climática

precipitation

object (Precipitation)

La probabilidad de precipitaciones y la cantidad de precipitaciones acumuladas

wind

object (Wind)

Las condiciones del viento

DEPRECATEDGeocodedAddress
(deprecated)

string

OBSOLETO: Usa returned_location en su lugar.

returnedLocation

object (Location)

Obligatorio. Es la ubicación para la que se devuelve la información del clima. Esta ubicación es idéntica a la de la solicitud, pero puede ser diferente si la ubicación solicitada es una dirección de texto libre que se busca en una ubicación aproximada (p.ej., "Mountain View, CA").

Campo de unión _temperature.

_temperature puede ser una de las siguientes opciones:

temperature

object (Temperature)

La temperatura por hora

Campo de unión _feels_like_temperature.

_feels_like_temperature puede ser una de las siguientes opciones:

feelsLikeTemperature

object (Temperature)

Es la medida por hora de cómo se siente la temperatura.

Campo de unión _heat_index.

_heat_index puede ser una de las siguientes opciones:

heatIndex

object (Temperature)

Es la temperatura de sensación térmica por hora.

Campo de unión _air_pressure.

_air_pressure puede ser una de las siguientes opciones:

airPressure

object (AirPressure)

Son las condiciones de presión atmosférica por hora.

Campo de unión _max_temperature.

_max_temperature puede ser una de las siguientes opciones:

maxTemperature

object (Temperature)

La temperatura máxima (alta) durante el día.

Campo de unión _min_temperature.

_min_temperature puede ser una de las siguientes opciones:

minTemperature

object (Temperature)

Es la temperatura mínima (baja) durante el día.

Campo de unión _feels_like_max_temperature.

_feels_like_max_temperature puede ser una de las siguientes opciones:

feelsLikeMaxTemperature

object (Temperature)

La sensación térmica máxima (alta) durante el día.

Campo de unión _feels_like_min_temperature.

_feels_like_min_temperature puede ser una de las siguientes opciones:

feelsLikeMinTemperature

object (Temperature)

Es la sensación térmica mínima (baja) durante el día.

Campo de unión _max_heat_index.

_max_heat_index puede ser una de las siguientes opciones:

maxHeatIndex

object (Temperature)

Es la temperatura máxima del índice de calor durante el día.

Campo de unión _sun_events.

_sun_events puede ser una de las siguientes opciones:

sunEvents

object (SunEvents)

Son los eventos relacionados con el sol (p.ej., amanecer, atardecer).

Campo de unión _moon_events.

_moon_events puede ser una de las siguientes opciones:

moonEvents

object (MoonEvents)

Son los eventos relacionados con la Luna (p.ej., salida y puesta de la Luna).

Campo de unión _relative_humidity.

_relative_humidity puede ser una de las siguientes opciones:

relativeHumidity

integer

Porcentaje de humedad relativa (valores de 0 a 100). Se define como opcional porque no siempre está disponible.

Campo de unión _uv_index.

_uv_index puede ser una de las siguientes opciones:

uvIndex

integer

Índice ultravioleta (UV) máximo. Se define como opcional porque no siempre está disponible.

Campo de unión _thunderstorm_probability.

_thunderstorm_probability puede ser una de las siguientes opciones:

thunderstormProbability

integer

Probabilidad de tormenta eléctrica (valores de 0 a 100). Se define como opcional porque no siempre está disponible.

Campo de unión _cloud_cover.

_cloud_cover puede ser una de las siguientes opciones:

cloudCover

integer

Porcentaje del cielo cubierto por nubes (valores de 0 a 100). Se define como opcional porque no siempre está disponible.

Temperatura

Representación 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.
}
Campos
unit

enum (TemperatureUnit)

Es el código de la unidad que se usa para medir el valor de la temperatura.

Campo de unión _degrees.

_degrees puede ser una de las siguientes opciones:

degrees

number

Es el valor de temperatura (en grados) en la unidad especificada.

AirPressure

Representación 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.
}
Campos

Campo de unión _mean_sea_level_millibars.

_mean_sea_level_millibars puede ser una de las siguientes opciones:

meanSeaLevelMillibars

number

Es la presión atmosférica media a nivel del mar en milibares.

SunEvents

Representación JSON
{
  "sunriseTime": string,
  "sunsetTime": string
}
Campos
sunriseTime

string (Timestamp format)

Es la hora en que sale el sol.

NOTA: En algunos casos únicos (p.ej., al norte del círculo polar ártico), es posible que no haya hora de amanecer en un día. En estos casos, este campo no se establecerá.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

sunsetTime

string (Timestamp format)

Es la hora en que se pone el sol.

NOTA: En algunos casos únicos (p.ej., al norte del círculo polar ártico), es posible que no haya hora de puesta del sol en un día. En estos casos, este campo no se establecerá.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

Marca de tiempo

Representación JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa los segundos de la hora UTC desde la época de Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de la duración en nanosegundos, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive.

MoonEvents

Representación JSON
{
  "moonriseTimes": [
    string
  ],
  "moonsetTimes": [
    string
  ],
  "moonPhase": enum (MoonPhase)
}
Campos
moonriseTimes[]

string (Timestamp format)

Es el momento en que el extremo superior de la Luna aparece sobre el horizonte (consulta https://en.wikipedia.org/wiki/Moonrise_and_moonset).

NOTA: En la mayoría de los casos, habrá una sola hora de salida de la Luna por día. En otros casos, la lista podría estar vacía (p.ej., cuando la luna sale después de la medianoche del día siguiente). Sin embargo, en casos únicos (p.ej., en regiones polares), la lista puede contener más de un valor. En estos casos, los valores se ordenan de forma ascendente.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

moonsetTimes[]

string (Timestamp format)

Es el momento en que el extremo superior de la Luna desaparece bajo el horizonte (consulta https://en.wikipedia.org/wiki/Moonrise_and_moonset).

NOTA: En la mayoría de los casos, habrá una sola hora de puesta de la Luna por día. En otros casos, la lista podría estar vacía (p.ej., cuando la luna se oculta después de la medianoche del día siguiente). Sin embargo, en casos únicos (p.ej., en regiones polares), la lista puede contener más de un valor. En estos casos, los valores se ordenan de forma ascendente.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

moonPhase

enum (MoonPhase)

Fase lunar (también conocida como fase de la Luna)

WeatherCondition

Representación JSON
{
  "iconBaseUri": string,
  "description": {
    object (google.type.LocalizedText)
  },
  "type": enum (Type)
}
Campos
iconBaseUri

string

Es el URI base del ícono sin incluir la extensión del tipo de archivo. Para mostrar el ícono, agrega un tema si lo deseas y la extensión del tipo de archivo (.png o .svg) a este URI. De forma predeterminada, el ícono tiene un tema claro, pero se puede agregar _dark para el modo oscuro. Por ejemplo, "https://maps.gstatic.com/weather/v1/dust.svg" o "https://maps.gstatic.com/weather/v1/dust_dark.svg", donde icon_base_uri es "https://maps.gstatic.com/weather/v1/dust".

description

object (google.type.LocalizedText)

Es la descripción textual de esta condición climática (localizada).

type

enum (Type)

Es el tipo de condición climática.

LocalizedText

Representación JSON
{
  "text": string,
  "languageCode": string
}
Campos
text

string

Cadena localizada en el idioma correspondiente a google.type.LocalizedText.language_code a continuación.

languageCode

string

Es el código de idioma BCP-47 del texto, como "en-US" o "sr-Latn".

Para obtener más información, consulta http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.

Precipitaciones

Representación JSON
{
  "probability": {
    object (PrecipitationProbability)
  },
  "snowQpf": {
    object (QuantitativePrecipitationForecast)
  },
  "qpf": {
    object (QuantitativePrecipitationForecast)
  }
}
Campos
probability

object (PrecipitationProbability)

Es la probabilidad de precipitaciones (valores de 0 a 100).

snowQpf

object (QuantitativePrecipitationForecast)

Es la cantidad de nieve, medida como equivalente de agua líquida, que se acumuló durante un período. Nota: QPF es la abreviatura de pronóstico cuantitativo de precipitaciones (consulta la definición de QuantitativePrecipitationForecast para obtener más detalles).

qpf

object (QuantitativePrecipitationForecast)

Es la cantidad de lluvia acumulada durante un período, medida como equivalente de agua líquida. Nota: QPF es la abreviatura de pronóstico cuantitativo de precipitaciones (consulta la definición de QuantitativePrecipitationForecast para obtener más detalles).

PrecipitationProbability

Representación 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.
}
Campos
type

enum (PrecipitationType)

Es un código que indica el tipo de precipitación.

Campo de unión _percent.

_percent puede ser una de las siguientes opciones:

percent

integer

Es un porcentaje de 0 a 100 que indica las probabilidades de precipitación.

QuantitativePrecipitationForecast

Representación 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.
}
Campos
unit

enum (Unit)

Es el código de la unidad que se usa para medir la cantidad de precipitación acumulada.

Campo de unión _quantity.

_quantity puede ser una de las siguientes opciones:

quantity

number

Es la cantidad de precipitación, medida como equivalente de agua líquida, que se acumuló durante un período.

Wind

Representación JSON
{
  "direction": {
    object (WindDirection)
  },
  "speed": {
    object (WindSpeed)
  },
  "gust": {
    object (WindSpeed)
  }
}
Campos
direction

object (WindDirection)

Es la dirección del viento, el ángulo desde el que llega.

speed

object (WindSpeed)

Es la velocidad del viento.

gust

object (WindSpeed)

La ráfaga de viento (aumento repentino de la velocidad del viento).

WindDirection

Representación 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.
}
Campos
cardinal

enum (CardinalDirection)

Es el código que representa la dirección cardinal desde la que sopla el viento.

Campo de unión _degrees.

_degrees puede ser una de las siguientes opciones:

degrees

integer

Dirección del viento en grados (valores de 0 a 360).

WindSpeed

Representación 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.
}
Campos
unit

enum (SpeedUnit)

Es el código que representa la unidad que se usa para medir la velocidad del viento.

Campo de unión _value.

_value puede ser una de las siguientes opciones:

value

number

Es el valor de la velocidad del viento.

Ubicación

Representación JSON
{

  // Union field location_type can be only one of the following:
  "latLng": {
    object (google.type.LatLng)
  },
  "placeId": string,
  "address": string
  // End of list of possible types for union field location_type.
}
Campos
Campo de unión location_type. Diferentes formas de representar una ubicación. location_type puede ser solo uno de los parámetros siguientes:
latLng

object (google.type.LatLng)

Es un punto especificado con coordenadas geográficas.

placeId

string

Es el ID de lugar asociado a la ubicación .

address

string

Dirección legible o Plus Code. Visita https://plus.codes para obtener más información.

LatLng

Representación JSON
{
  "latitude": number,
  "longitude": number
}
Campos
latitude

number

La latitud expresada en grados. Debe pertenecer al rango [-90.0, +90.0].

longitude

number

La longitud expresada en grados. Debe pertenecer al rango [-180.0, +180.0].

Anotaciones de herramientas

Sugerencia destructiva: ❌ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ✅ | Sugerencia de mundo abierto: ❌