MCP Reference: mapstools.googleapis.com

Este es un servidor de MCP que proporciona la API de Maps Grounding Lite. El servidor proporciona herramientas para que los desarrolladores creen aplicaciones de LLM sobre Google Maps Platform.

Un servidor de Protocolo de contexto del modelo (MCP) actúa como proxy entre un servicio externo que proporciona contexto, datos o capacidades a un modelo de lenguaje grande (LLM) o una aplicación de IA. Los servidores de MCP conectan aplicaciones de IA a sistemas externos, como bases de datos y servicios web, y traducen sus respuestas a un formato que la aplicación de IA puede comprender.

Configuración del servidor

Debes habilitar los servidores de MCP y configurar la autenticación antes de usarlos. Para obtener más información sobre el uso de servidores de MCP remotos de Google y Google Cloud, consulta Descripción general de los servidores de MCP de Google Cloud.

Extremos del servidor

Un extremo de servicio de MCP es la dirección de red y la interfaz de comunicación (por lo general, una URL) del servidor de MCP que usa una aplicación de IA (el host para el cliente de MCP) para establecer una conexión segura y estandarizada. Es el punto de contacto para que el LLM solicite contexto, llame a una herramienta o acceda a un recurso. Los extremos de MCP de Google pueden ser globales o regionales.

El servidor de MCP de la API de Maps Grounding Lite tiene el siguiente extremo de MCP global:

  • https://mapstools.googleapis.com/mcp

Herramientas de MCP

Una herramienta de MCP es una función o capacidad ejecutable que un servidor de MCP expone a un LLM o una aplicación de IA para realizar una acción en el mundo real.

Herramientas

El servidor de MCP de mapstools.googleapis.com tiene las siguientes herramientas:

Herramientas de MCP
search_places

Llama a esta herramienta cuando la solicitud del usuario sea encontrar lugares, empresas, direcciones, ubicaciones, puntos de interés o cualquier otra búsqueda relacionada con Google Maps.

Requisitos de entrada (CRÍTICOS):

  1. text_query (cadena, OBLIGATORIO): Es la consulta de búsqueda principal. Debe definir claramente lo que busca el usuario.

    • Ejemplos: 'restaurants in New York', 'coffee shops near Golden Gate Park', 'SF MoMA', '1600 Amphitheatre Pkwy, Mountain View, CA, USA', 'pets friendly parks in Manhattan, New York', 'date night restaurants in Chicago', 'accessible public libraries in Los Angeles'.
    • Para obtener detalles específicos del lugar: Incluye el atributo solicitado (p.ej., 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address').
  2. location_bias (objeto, OPCIONAL): Úsalo para priorizar los resultados cerca de un área geográfica específica.

    • Formato: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Uso:
      • Para priorizar un radio de 5 km: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Para priorizar en gran medida el punto central: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (omitiendo radius_meters).
  3. language_code (cadena, OPCIONAL): Es el idioma en el que se mostrará el resumen de los resultados de la búsqueda.

    • Formato: Un código de idioma de dos letras (ISO 639-1), seguido de un guion bajo y un código de país de dos letras (ISO 3166-1 alfa-2), p.ej., en, ja, en_US, zh_CN, es_MX. Si no se proporciona el código de idioma, los resultados estarán en inglés.
  4. region_code (cadena, OPCIONAL): Es el código regional CLDR de Unicode del usuario. Este parámetro se usa para mostrar los detalles del lugar, como el nombre del lugar específico de la región, si está disponible. El parámetro puede afectar los resultados según la ley aplicable.

    • Formato: Un código de país de dos letras (ISO 3166-1 alfa-2), p.ej., US, CA.

Instrucciones para la llamada a la herramienta:

  • Información de ubicación (CRÍTICA): La búsqueda debe contener suficiente información de ubicación. Si la ubicación es ambigua (p.ej., solo "pizzerías"), debes especificarla en text_query (p.ej., "pizzerías en Nueva York") o usar el parámetro location_bias. Incluye el nombre de la ciudad, el estado o la provincia, y la región o el país si es necesario para la desambiguación.

  • Siempre proporciona la text_query más específica y contextual posible.

  • Solo usa location_bias si se proporcionan coordenadas de forma explícita o si inferir una ubicación del contexto conocido de un usuario es adecuado y necesario para obtener mejores resultados.

  • El resultado fundamentado debe atribuirse a la fuente con la información del campo attribution cuando esté disponible.

lookup_weather

Recupera datos meteorológicos integrales, incluidas las condiciones actuales, los pronósticos por hora y diarios.

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 tormenta eléctrica) y dirección de ubicación geocodificada.

Ubicación y reglas de ubicación (CRÍTICAS):

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: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Los Ángeles
  2. ID de lugar (place_id)

    • Un identificador de cadena inequívoco (ID de lugar de Google Maps).
    • El place_id se puede recuperar de la herramienta search_places.
    • Ejemplo: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Torre Eiffel
  3. Cadena de dirección (address)

    • Una cadena de formato libre que requiere especificidad para la geocodificación.
    • 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 ir acompañados de un nombre de país (p. ej., "90210, EE.UU.", NO "90210").
    • Ejemplo: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

Modos de uso:

  • Clima actual: Proporciona solo location. No especifiques date ni hour.

  • Pronóstico por hora: Proporciona location, date y hour (0-23). Úsalo para horas específicas (p. ej., "a las 5 p.m.") o términos como "próximas horas" o "más tarde hoy". Si el usuario especifica minutos, redondea a la hora más cercana. No se admite el pronóstico por hora más allá de las 120 horas a partir de ahora. El clima histórico por hora se admite hasta 24 horas en el pasado.

  • Pronóstico diario: Proporciona location y date. No especifiques hour. Úsalo para solicitudes generales del día (p.ej., "clima para mañana", "clima el viernes", "clima el 25/12"). Si la fecha de hoy no está en el contexto, debes aclararla con el usuario. No se admite el pronóstico diario más allá de 10 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 números enteros {year, month, day}.
  • Unidades: El valor predeterminado es METRIC. Establece units_system en IMPERIAL para Fahrenheit/millas si el usuario implica estándares de EE.UU. o lo solicita de forma explícita.
  • El resultado fundamentado debe atribuirse a la fuente con la información del campo attribution cuando esté disponible.

compute_routes

Calcula una ruta de viaje entre un origen y un destino especificados. Modos de viaje admitidos: DRIVE (predeterminado), WALK.

Requisitos de entrada (CRÍTICOS): Requiere origen y destino. Cada uno debe proporcionarse con uno de los siguientes métodos, anidados dentro de su campo respectivo:

  • address: (cadena, p.ej., "Torre Eiffel, París"). Nota: Cuanto más detallada o específica sea la dirección de entrada, mejores serán los resultados.

  • lat_lng: (objeto, {"latitude": número, "longitude": número})

  • place_id: (cadena, p. ej., "ChIJOwE_Id1w5EAR4Q27FkL6T_0"). Nota: Este ID se puede obtener de la herramienta search_places. Se permite cualquier combinación de tipos de entrada (p.ej., origen por dirección, destino por lat_lng). Si falta el origen o el destino, DEBES pedirle al usuario que lo aclare antes de intentar llamar a la herramienta.

Ejemplo de llamada a la herramienta: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • El resultado fundamentado debe atribuirse a la fuente con la información del campo attribution cuando esté disponible.
resolve_names

Resuelve una lista por lotes de consultas de ubicación específicas (nombres de lugares de interés o direcciones exactas) en IDs de lugar canónicos de Google Maps.

Requisitos de entrada (CRÍTICOS):

  1. queries (array de objetos, OBLIGATORIO): Es una lista de consultas de ubicación para resolver. Puedes especificar hasta 20 consultas.

    • Cada objeto de consulta debe tener lo siguiente:
      • text (cadena, OBLIGATORIO): Es la consulta de texto que representa un nombre o una dirección de lugar específicos para resolver.
        • Ejemplos: 'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'.
  2. location_bias (objeto, OPCIONAL): Úsalo para priorizar los resultados cerca de un área geográfica específica.

    • Formato: {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code (cadena, OPCIONAL): Es el código regional CLDR de Unicode (código de país de dos letras, p.ej., US, CA) del usuario para priorizar los resultados.

Instrucciones para la llamada a la herramienta:

  • Especificidad (CRÍTICA): Las consultas deben representar un nombre o una dirección de lugar específicos. No se admiten búsquedas generales como 'restaurants' ni nombres de cadenas como 'Starbucks'.
  • NO llames a esta herramienta si las herramientas downstream que planeas invocar ya aceptan directamente cadenas de dirección o nombre de lugar sin procesar.

Manejo de errores (CRÍTICO):

  • Esta es una herramienta de procesamiento por lotes. Una solicitud puede mostrar "resultados mixtos" (p.ej., algunas consultas se resuelven correctamente, mientras que otras fallan).
  • Se garantiza que la lista de salida de results se asignará 1:1 con los índices de queries de entrada. Una consulta fallida generará un mensaje Result vacío (no se establece entity) en su índice correspondiente en la lista results.
  • DEBES verificar el campo de mapa failed_requests en la respuesta para identificar qué índice de consulta específico falló. La clave de failed_requests representa el índice basado en 0 de la consulta fallida en la solicitud. No supongas que falló toda la llamada por lotes debido a una falla parcial.
resolve_maps_urls

Resuelve una lista de URLs de Google Maps en IDs de lugar canónicos de Google Maps.

Cuándo llamar a esta herramienta (CRÍTICO):

  • Usa esta herramienta cuando el usuario proporcione una o más URLs o vínculos para compartir de Google Maps (p.ej., "https://maps.app.goo.gl/...", "https://www.google.com/maps/place/..." o "https://maps.google.com/...") y necesites extraer los IDs de lugar canónicos subyacentes.
  • Puedes especificar hasta 20 URLs para resolver en una sola solicitud por lotes.

Requisitos de entrada (CRÍTICOS):

  • urls (array de cadenas, OBLIGATORIO): Es la lista de URLs de Google Maps para resolver. Cada URL debe ser una URL de Google Maps válida de un solo lugar.

Manejo de errores (CRÍTICO):

  • Esta es una herramienta de procesamiento por lotes. Una solicitud puede mostrar "resultados mixtos" (p.ej., algunas URLs se resuelven correctamente, mientras que otras fallan).
  • Se garantiza que la lista de salida de entities se asignará 1:1 con los índices de urls de entrada. Una resolución de URL fallida generará un mensaje Entity vacío (no se establece ningún campo) en su índice correspondiente en la lista entities.
  • DEBES verificar el campo de mapa failed_requests en la respuesta para identificar qué índice de URL específico falló. La clave de failed_requests representa el índice basado en 0 de la URL fallida en la solicitud. No supongas que falló toda la llamada por lotes debido a una falla parcial.

Obtén especificaciones de herramientas de MCP

Para obtener las especificaciones de las herramientas de MCP para todas las herramientas de un servidor de MCP, usa el método tools/list. En el siguiente ejemplo, se muestra cómo usar curl para enumerar todas las herramientas y sus especificaciones disponibles actualmente en el servidor de MCP.

Solicitud curl
                      
curl --location 'https://mapstools.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'