Herramientas de agentes de Maps Experience

Las herramientas de agentes de Maps Experience (antes Maps Grounding Lite) son un servicio de Google Maps Platform con compatibilidad con el Protocolo de contexto del modelo (MCP) y REST para fundamentar tus aplicaciones de IA con datos geoespaciales confiables de Google Maps. Sus herramientas permiten que los LLM accedan a datos de lugares, clima, calidad del aire, polen y rutas. Otras herramientas resuelven los nombres de las ubicaciones y las URLs de Google Maps en IDs de lugar. Puedes probar las herramientas del agente de Maps Experience habilitando su servidor de MCP en cualquier herramienta que admita servidores de MCP. También puedes llamar a cada herramienta como un método de REST. Para obtener más detalles, consulta Llama a las herramientas con REST.

Las herramientas de agentes de Maps Experience son un producto con dos SKU: Essentials y Pro. Todas las solicitudes se facturan con Essentials, a menos que se use una opción de Pro. Las opciones Pro agregan búsquedas de lugares a lo largo de una ruta, detalles de lugares extendidos, más lugares por búsqueda, más paradas intermedias por ruta, planificación de rutas con tráfico en tiempo real, pronósticos de polen y calidad del aire histórica. Ambos SKU usan las mismas herramientas, el mismo servidor de MCP, los mismos métodos de REST y las mismas credenciales. Para obtener más detalles, consulta Essentials y Pro.

Herramientas

Las herramientas de agentes de Maps Experience permiten que los LLM accedan a las siguientes funciones de Google Maps:

  • Buscar lugares: Solicita información sobre lugares y obtén resúmenes generados por IA. La respuesta también incluye IDs de lugar, coordenadas de latitud y longitud, y vínculos de Google Maps para cada lugar del resumen. Puedes usar los IDs de lugar y las coordenadas de latitud y longitud con otras APIs de Google Maps Platform para mostrar lugares en un mapa. Para mostrar estos lugares con el kit de IU de Places sin costo adicional, usa el token de visualización de datos de agentes (versión preliminar). Con Pro, puedes solicitar detalles de lugares extendidos, como estadísticas de opiniones, y hasta 10 lugares por solicitud.
  • Buscar a lo largo de la ruta: Encuentra lugares a lo largo de una ruta de viaje, especificada con un retrieval_token de compute_routes, route_endpoints o un encoded_polyline, y obtén un resumen generado por IA, detalles del lugar, la distancia del desvío y la duración del viaje, y un token de visualización de datos de agentes (versión preliminar). Cada solicitud de search_along_route se factura con el SKU de Pro.
  • Buscar el clima: Solicita las condiciones ambientales de una ubicación, incluido el clima (condiciones actuales, historial por hora de 24 horas y pronósticos diarios y por hora de hasta 10 días) y la calidad del aire actual o de hasta 4 días. Con Pro, también puedes solicitar previsiones diarias de polen de hasta 5 días (con detalles de las especies de plantas) y hasta 30 días de historial de calidad del aire por hora.
  • Calcular rutas: Solicita una ruta entre un origen y un destino, opcionalmente con paradas intermedias, y devuelve la distancia y la duración de la ruta, y un retrievalToken para las rutas de DRIVE que puedes pasar a search_along_route. Con Pro, las rutas pueden tener en cuenta las condiciones de tráfico en tiempo real y, además, incluir más paradas intermedias.

  • Resolver nombres y Resolver URLs de Maps: Resuelve nombres de ubicaciones, direcciones y URLs de Google Maps para obtener IDs de lugar. Para obtener más información, consulta API de Resolution.

Después de habilitar el servidor de MCP, los LLM pueden llamar a sus herramientas para obtener información de fundamentación para estos tipos de datos. El LLM puede usar esta información como contexto. Sin embargo, es posible que su respuesta final no incluya la información exacta que devolvió el servidor de MCP. Verifica la exactitud de la respuesta generada.

Essentials y Pro

Essentials y Pro son dos SKU del mismo producto, no productos o planes separados. Una solicitud se factura con Pro cuando usa una opción de Pro. Todas las demás solicitudes se facturan con Essentials. Las opciones Pro son campos comunes en la solicitud de la herramienta, por lo que un LLM puede usarlas en tu nombre. Un agente también puede usar ambos SKU en la misma conversación. Por ejemplo, un agente podría usar Essentials para encontrar cafeterías cerca de un punto de referencia. Luego, podría usar Pro para responder una pregunta de seguimiento sobre sus bebidas exclusivas y asientos. No hay un servidor, extremo o credencial de MCP independiente para Pro.

Compara Essentials, Pro y Fundamentación con Google Maps

La fundamentación con Google Maps es un producto independiente. Está integrado en los modelos de Gemini en la API de Gemini, Google AI Studio y Gemini Enterprise Agent Platform. El modelo decide cuándo consultar Google Maps y devuelve respuestas fundamentadas con citas. Elige la Fundamentación con Google Maps cuando crees en Gemini y quieras que el modelo controle la fundamentación. Elige las herramientas de agentes de Maps Experience para otros modelos o frameworks de agentes, o para controlar directamente cada llamada a la herramienta.

En la siguiente tabla, se comparan el SKU de Essentials, el SKU de Pro y la fundamentación con Google Maps:

herramientas de agentes de Maps Experience Fundamentación con Google Maps
SKU de Essentials
(antes Maps Grounding Lite)
SKU de Pro
Cómo se facturan las solicitudes Cada solicitud de herramienta que no use una opción de Pro Cada solicitud de search_along_route o cualquier solicitud a otra herramienta que use una opción Pro. Consulta Qué se factura con el SKU Pro. Cada consulta de Google Maps o instrucción fundamentada, según la plataforma y el modelo
Modelos y plataformas Cualquier framework de modelo o agente que admita MCP o pueda llamar a APIs de REST. Un conjunto de herramientas y las mismas credenciales para ambos SKUs Modelos de Gemini en la API de Gemini, Google AI Studio y Gemini Enterprise Agent Platform
Qué devuelven las herramientas Datos principales: Detalles de hasta 5 lugares por búsqueda, distancia y duración de la ruta sin información sobre el tráfico en tiempo real, clima actual y pronósticos (además del historial meteorológico por hora de las últimas 24 horas), y calidad del aire actual o prevista Todo lo que se incluye en Essentials, además de lugares a lo largo de una ruta con tiempo y distancia de desvío, detalles extendidos de lugares (como estadísticas de opiniones), hasta 10 lugares por búsqueda, rutas con tráfico en tiempo real, hasta 25 puntos de referencia intermedios, pronósticos de polen y hasta 30 días de datos históricos de calidad del aire Place Details y estadísticas de opiniones, además de información de rutas con tráfico en tiempo real
Solicitudes de ejemplo Preguntas fácticas y logísticas: encontrar tiendas o empresas, horarios de atención, direcciones, estimaciones de distancia o duración del viaje, clima actual, pronósticos del clima para 10 días y pronósticos de la calidad del aire actuales o para 4 días Preguntas subjetivas, amplias o especializadas: lugares a lo largo de una ruta, ambiente, platos exclusivos, sugerencias para visitantes, comparaciones de 6 a 10 lugares, duración del viaje con el tráfico actual, pronósticos de polen y alergias, e historial de la calidad del aire en los últimos 30 días Búsqueda conversacional, planificación de itinerarios y descubrimiento local en Gemini
Visualizaciones del kit de IU de Places Se incluye sin costo adicional con el token de visualización de datos de agentes (versión preliminar) Se factura por separado
Uso mensual sin cargo 10,000 solicitudes 5,000 solicitudes Depende de la plataforma y el modelo. Por ejemplo, en la API de Gemini, Gemini 3 y los modelos más recientes incluyen 5,000 búsquedas por mes sin cargo. Después de eso, las búsquedas cuestan USD 14 por cada 1,000.
Precio de pago por uso $7.00 por cada 1,000 solicitudes, con descuentos por volumen $14.00 por cada 1,000 solicitudes, con descuentos por volumen
Suscríbete para ahorrar Se incluye en los planes Essentials y Pro Se incluye en el plan Pro No disponible
Comenzar Una configuración para ambos SKU: consulta Configura LLM para usar el servidor de MCP o Llama a las herramientas con REST. API de Gemini o Agent Platform

Estas opciones funcionan de la misma manera con cualquiera de los SKU: modos de viaje, horas de salida y llegada, rutas alternativas, polilíneas de ruta, búsquedas de clima, búsquedas de calidad del aire actual y prevista (incluidas las concentraciones de contaminantes y las escalas de ICA locales), sistemas de unidades meteorológicas y la API de Resolution. No cambian el SKU con el que se factura una solicitud.

Qué se factura con el SKU de Pro

En la siguiente tabla, se resumen las funciones que se incluyen en Essentials y las que requieren el SKU de Pro:

Herramienta Función Imprescindibles Pro
Cómo buscar lugares Lugares por solicitud Hasta 5 De 6 a 10 (page_size de 6 a 10)
Detalles extendidos de lugares en los resúmenes de búsqueda (información de opiniones, platos destacados del menú, ambiente, qué tan concurrido está un lugar, sugerencias para visitantes y distancia o duración del viaje para búsquedas de proximidad) No disponible Disponible con include_extended_details
Buscar en la ruta Lugares a lo largo de una ruta, distancia y duración del viaje de desvío, y detalles opcionales de lugares extendidos o tiempos de desvío que tienen en cuenta el tráfico No disponible Cada solicitud
Calcula rutas Preferencia de enrutamiento No tiene en cuenta el tráfico en tiempo real. Tiene en cuenta el tráfico en vivo o los datos de transporte público en tiempo real para las rutas de transporte público, con ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL.
Puntos de referencia intermedios por ruta Hasta 10 De 11 a 25 (más de 10 intermediate_waypoints)
Buscar el clima Clima Clima actual, pronósticos por hora y diarios (hasta 10 días) e historial por hora de hasta 24 horas (WEATHER en capabilities o solicitudes heredadas que omiten capabilities, weather_options, air_quality_options y language_code) No hay opciones de Pro (todos los datos de WEATHER se incluyen en Essentials)
Calidad del aire Condiciones actuales, resultados por hora de todo el día de hoy y pronósticos por hora de hasta 4 días (AIR_QUALITY en capabilities) Datos históricos de la calidad del aire de hasta 30 días en el pasado (AIR_QUALITY en capabilities con un date anterior a hoy o un hour pasado en la zona horaria de la ubicación), cuando se devuelven en la respuesta
Pollen No disponible Previsiones diarias sobre los niveles de polen con hasta 5 días de anticipación y detalles de las especies de plantas (POLLEN en capabilities), cuando se devuelven en la respuesta
API de Resolution No hay opciones de Pro. Todas las solicitudes se facturan con el SKU Places API Text Search Essentials (IDs Only) sin cargo.

Para conocer las opciones de solicitud que habilitan cada función, consulta Busca lugares, Busca a lo largo de la ruta, Calcula rutas y Busca el clima.

Controla el uso de Pro

Las opciones Pro están desactivadas de forma predeterminada en search_places, compute_routes y lookup_weather. Un LLM los establece o llama a search_along_route cuando la solicitud del usuario los requiere y la descripción de la herramienta o tus instrucciones lo permiten. Las descripciones de las herramientas le indican al modelo qué opciones tienen un costo más alto y cuándo usarlas: un page_size superior a 5, detalles de lugares extendidos, más de 10 puntos de referencia intermedios, rutas con información del tráfico y search_along_route. Si llamas a las herramientas con REST, tu código establece cada opción. Para administrar los costos, haz lo siguiente:

  • Indícale al modelo cuándo son adecuadas las opciones Pro. Por ejemplo: "Establece include_extended_details solo cuando el usuario pregunte sobre opiniones, menús o el ambiente". O bien: "Usa ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL solo cuando el usuario solicite la duración actual del viaje". O bien: "Llama a search_along_route solo cuando el usuario solicite lugares a lo largo de una ruta". O bien: "Incluye POLLEN o AIR_QUALITY con un date o hour anteriores, solo cuando el usuario pregunte sobre el polen, las alergias o la calidad del aire histórica".
  • Para mantener un agente en el SKU de Essentials, indícale al modelo que nunca llame a search_along_route ni use una opción de Pro. Las opciones de Pro son include_extended_details, page_size superior a 5, ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL, más de 10 puntos de referencia intermedios, POLLEN en capabilities y un date o hour anteriores con AIR_QUALITY en capabilities. Si tu cliente de MCP puede restringir las herramientas o los argumentos de las herramientas, también puedes bloquear search_along_route y esos valores de argumentos en la configuración de la herramienta.
  • Supervisa el SKU de Maps Grounding Pro en tus informes de facturación y establece alertas de presupuesto.

API de Resolution

Las herramientas de agentes de Maps Experience proporcionan la API de Resolution. Resuelve el texto de ubicación de formato libre y las URLs en identificadores de lugares estructurados de Google Maps. La API de Resolution está disponible como métodos de REST y como herramientas en el servidor de MCP:

  • Resolver nombres (REST, MCP): Resuelve un lote de nombres o direcciones de ubicaciones en entidades de lugares específicos en Google Maps. Esta herramienta ayuda a fundamentar las consultas no estructuradas de los usuarios en IDs de lugar estables.
  • Resuelve URLs de Maps (REST, MCP): Resuelve un lote de URLs de Google Maps en entidades de lugares específicas. Entre los formatos admitidos, se incluyen las URLs de lugares estándar y las URLs abreviadas.

Puedes usar los IDs de lugar devueltos con otras APIs de Google Maps Platform. Cada respuesta también incluye un vínculo que guarda los lugares resueltos como una lista en Google Maps.

Para obtener más información, consulta la API de Maps Tools Resolution.

Prueba la app de ejemplo (se abre en una pestaña nueva)

Facturación y cuotas

Cómo se te factura

Con el modelo de precios de pago por uso de Google Maps Platform, el uso de las herramientas de agente de Maps Experience se calcula para cada solicitud. Cada solicitud representa un evento de facturación. Se hace un seguimiento del uso de cada SKU de producto. En tu factura, se muestra un elemento de una sola línea para cada SKU, además de los cargos totales. Consulta la descripción general de los informes para obtener más información.

Cada solicitud de Search places, Search along route, Compute routes o Lookup weather, a través del servidor de MCP o con REST, se factura con un SKU: Maps Grounding Essentials o Maps Grounding Pro. Cada solicitud search_along_route y cualquier solicitud que use una opción Pro se factura con el SKU Pro. Una solicitud nunca se factura con ambos SKU, y la cantidad de opciones Pro en una solicitud no cambia el cargo. Para conocer las capacidades y opciones que determinan el SKU de cada herramienta, consulta Qué se factura con el SKU Pro.

Las solicitudes de Maps Grounding Essentials se facturan a USD 7.00 por cada 1,000 solicitudes después de las primeras 10,000 solicitudes de cada mes. Las solicitudes de Maps Grounding Pro se facturan a USD 14.00 por cada 1,000 solicitudes después de las primeras 5,000 solicitudes de cada mes. Ambos SKU tienen descuentos por volumen para un uso mensual más alto.

Consulta la tabla de precios principal y la tabla de precios de India para obtener detalles sobre los precios.

Las solicitudes a la API de Resolution (ResolveNames y ResolveMapsUrls) se facturan sin cargo con el SKU Places API Text Search Essentials (IDs Only).

Si muestras los lugares de una respuesta de search_places o search_along_route con el kit de IU de Places, puedes usar el token de visualización de datos de agentes (versión preliminar) para que no se facturen esas solicitudes del kit de IU de Places.

El uso del SKU de Essentials se incluye en los planes Suscríbete para ahorrar de Essentials y Pro. El uso del SKU de Pro se incluye en el plan Pro.

Cuotas

Las siguientes cuotas se aplican a las herramientas y APIs que proporcionan las herramientas de agentes de Maps Experience:

  • Búsqueda de lugares: 300 consultas por minuto para cada proyecto
  • Búsqueda a lo largo de la ruta: 300 consultas por minuto para cada proyecto
  • Búsqueda del clima: 300 consultas por minuto para cada proyecto
  • Compute routes: 300 consultas por minuto para cada proyecto.
  • Resolver nombres: 600 consultas por minuto para cada proyecto.
  • Resolve Maps URLs: 600 consultas por minuto para cada proyecto

Las cuotas se cuentan para cada herramienta y se comparten entre los SKU de Essentials y Pro. Una solicitud de Pro consume la misma cuota que una solicitud de Essentials para la misma herramienta.

Cada solicitud a la API de Resolution cuenta como una consulta, independientemente de la cantidad de elementos que contenga.

Políticas y Condiciones del Servicio

Las herramientas de agentes de Maps Experience están sujetas a las Condiciones del Servicio de Google Maps Platform, incluidas las condiciones específicas del servicio. En esta sección, se describen los requisitos de uso adicionales para las herramientas de agentes de Maps Experience, incluidos los LLM compatibles y la atribución de fuentes. Los requisitos se aplican a todos los resultados, independientemente del SKU con el que se facture una solicitud.

Requisitos para los LLM compatibles

Solo puedes usar las herramientas de agentes de Maps Experience con un LLM que cumpla con las Condiciones del Servicio de Google Maps Platform.

Por ejemplo, eres responsable de garantizar que el contenido de Google Maps no se almacene en caché, no se almacene ni se use para mejorar el LLM que elijas usar. Antes de usar las herramientas de agentes de Maps Experience, deberás revisar las Condiciones del Servicio de cualquier modelo que quieras usar con las herramientas de agentes de Maps Experience. No debes usar las herramientas de agentes de Maps Experience con ningún modelo que use los datos ingresados en el modelo para entrenarlo o mejorarlo. Eres responsable de garantizar que el uso que hagas del modelo cumpla por completo con las restricciones del contenido de Google Maps en las Condiciones del Servicio de Google Maps Platform, incluidas las condiciones específicas del servicio.

Requisitos de atribución para las fuentes de Google Maps

Cada respuesta de las herramientas de agentes de Maps Experience incluye fuentes. Cuando presentes resultados de las herramientas de agentes de Maps Experience, debes incluir las fuentes de Google Maps asociadas y cumplir con los siguientes requisitos:

  • Las fuentes de Google Maps deben aparecer inmediatamente después del contenido generado que respaldan. Este contenido generado también se conoce como Resultado fundamentado.
  • Las fuentes de Google Maps deben poder verse en una interacción del usuario.

Fuentes de las herramientas Buscar lugares y Buscar en la ruta

El campo places de la herramienta search_places y el campo results[].place de la herramienta search_along_route proporcionan fuentes que respaldan el summary. Para cada lugar, se devuelven los siguientes metadatos:

  • place (nombre del recurso)
  • id
  • location
  • googleMapsLinks
  • attribution

Para cada lugar, debes generar una vista previa del vínculo que cumpla con estos requisitos:

Estos requisitos también se aplican a los resúmenes que incluyen detalles de lugares extendidos de Pro, como las estadísticas de las opiniones. El summary cita cada lugar con un índice basado en cero, como [0], que se asigna a una entrada en places o results. Cada lugar también incluye googleMapsLinks.reviewsUrl, que vincula a las opiniones del lugar en Google Maps. Los usuarios pueden seguirlo para ver las opiniones detrás de una estadística.

Interfaces que priorizan la voz

Si tu app presenta resultados de las herramientas de agentes de Maps Experience por voz, también debes cumplir con los requisitos de las interfaces que priorizan la voz. Resumen:

  • Atribución: Muestra las fuentes de Google Maps en una IU complementaria que incluya un registro histórico textual de la conversación de voz.
  • Divulgación activa: En el momento de la interacción, informa a los usuarios que el contenido generado por IA puede incluir información de Google Maps. También diles que las fuentes detalladas están disponibles en la IU complementaria. Puedes hacerlo en la pantalla o con la voz.
  • Divulgación persistente: Mantén una explicación persistente, por ejemplo, en un menú de configuración de voz, de que el contenido generado por IA puede incluir contenido de Google Maps.
  • Consultas de los usuarios: Responde con precisión las preguntas de los usuarios sobre la fuente del contenido y dirígelos a la IU complementaria para obtener detalles.

Configura los LLM para que usen el servidor de MCP

Para usar las herramientas de agentes de Maps Experience, necesitas un proyecto de Google Cloud con el servicio de la API de las herramientas de agentes de Maps Experience habilitado. También necesitas una clave de API o un ID de cliente de OAuth. Luego, puedes configurar los LLM para que accedan al servidor de MCP. El servidor de MCP usa el transporte HTTP transmitible.

Habilita las herramientas de agentes de Maps Experience en tu proyecto de Google Cloud.

Para habilitar la API en tu proyecto, sigue estos pasos:

  1. En la consola de Google Cloud, elige el proyecto que quieras usar para las herramientas de agentes de Maps Experience.
  2. Habilita la facturación para el proyecto en la consola de Google Cloud.
  3. Habilita las herramientas de agente de Maps Experience en la biblioteca de APIs de la consola de Google Cloud.

Autentica con una clave de API

Puedes usar una clave de API existente con las herramientas de agentes de Maps Experience o crear una nueva. En cualquier caso, habilita el servicio de la API de herramientas de agentes de Maps Experience tanto en el proyecto de Google Cloud como en la clave.

Para autenticarte con una clave de API, sigue estos pasos:

  1. Crea o configura una clave de API siguiendo los pasos que se indican en Comienza a usar Google Maps Platform.
  2. Pasa la clave al servidor de MCP con el encabezado X-Goog-Api-Key. Debes especificarlo como un encabezado HTTP personalizado en la configuración de la herramienta de MCP del LLM.

Autentica con OAuth

Para autenticarte con OAuth, crea credenciales de OAuth y pásalas a la aplicación host o de servidor de MCP.

Para autenticarte con OAuth, sigue estos pasos:

  1. En la consola de Google Cloud, elige el proyecto que quieras usar para las herramientas de agentes de Maps Experience.
  2. En el menú APIs y servicios, selecciona Credenciales.
  3. En el menú superior, selecciona Crear credenciales > ID de cliente de OAuth.
  4. Si el proyecto no tiene una pantalla de consentimiento configurada, haz clic en Configurar pantalla de consentimiento y sigue las instrucciones en pantalla.
  5. En la sección Métricas, haz clic en Crear cliente de OAuth.
  6. En la pantalla Crear ID de cliente de OAuth, selecciona un tipo de aplicación y, luego, ingresa un nombre para el ID de cliente.
  7. Especifica los detalles adicionales que sean pertinentes para tu tipo de aplicación. Por ejemplo, si creas una aplicación web, agrega URIs autorizados para las solicitudes del navegador y del servidor.
  8. Una vez que se cree el cliente, guarda el ID y el secreto del cliente.
  9. Cuando configures tu aplicación de host de MCP o servidor de MCP, pasa tu ID y secreto de cliente de OAuth. También debes solicitar el siguiente permiso: https://www.googleapis.com/auth/maps-platform.mapstools.

Para obtener más información, consulta Usa OAuth 2.0 para acceder a las APIs de Google.

Configura los LLM para que accedan al servidor de MCP de herramientas de agentes de Maps Experience

Después de habilitar el servicio de herramientas de agente de Maps Experience y crear las credenciales, puedes configurar los LLM para que accedan al servidor de MCP. Sigue la documentación de configuración de MCP de tu LLM y usa la URL del servidor de MCP: https://mapstools.googleapis.com/mcp

Para obtener más información, consulta Configura MCP en una aplicación de IA.

Configura las herramientas de agentes de Maps Experience con la CLI de Gemini

En esta sección, se proporciona un ejemplo de cómo configurar el servidor de MCP de herramientas de agentes de Maps Experience con la CLI de Gemini. Para obtener más detalles, consulta Servidores de MCP con la CLI de Gemini.

  1. Después de instalar Gemini CLI, ejecuta gemini mcp add para configurar el servidor de MCP:

    gemini mcp add -s user -t http -H 'X-Goog-Api-Key: API_KEY' maps-experience-agent-tools-mcp https://mapstools.googleapis.com/mcp
    

    Si la configuración se realizó correctamente, deberías ver una confirmación de que el servidor se agregó a tu configuración de usuario.

  2. Para validar que el servidor funcione, ejecuta el comando /mcp list:

    > /mcp list
    
    Configured MCP servers:
    
    maps-experience-agent-tools-mcp - Ready (6 tools)
    Tools:
    -   compute_routes
    -   lookup_weather
    -   resolve_maps_urls
    -   resolve_names
    -   search_along_route
    -   search_places
    
  3. Comienza a preguntarle a Maps con la CLI. Por ejemplo, prueba "Recomienda algunos restaurantes en Mountain View", que llama a la herramienta search_places en tu nombre.

Configura las herramientas de agentes de Maps Experience con el Kit de desarrollo de agentes (ADK)

En esta sección, se muestra cómo configurar el servidor de MCP con el Kit de desarrollo de agentes (ADK) en Python, Java o TypeScript.

Python

Puedes encontrar una implementación completa de este ejemplo en GitHub, en el repositorio adk-samples.

Paso 1: Define tu agente con McpToolset para las herramientas de agentes de Maps Experience

Modifica tu archivo agent.py. Reemplaza YOUR_GOOGLE_MAPS_API_KEY por tu clave de API real.

# ./adk_agent_samples/mcp_agent/agent.py
import os
from google.adk.agents.llm_agent import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams

# Retrieve the API key from an environment variable or directly insert it.
GOOGLE_MAPS_API_KEY = os.getenv("GOOGLE_MAPS_API_KEY")
if not GOOGLE_MAPS_API_KEY:
    GOOGLE_MAPS_API_KEY = "YOUR_GOOGLE_MAPS_API_KEY_HERE"

if GOOGLE_MAPS_API_KEY == "YOUR_GOOGLE_MAPS_API_KEY_HERE":
    print("WARNING: GOOGLE_MAPS_API_KEY is not set.")

root_agent = Agent(
    model='gemini-flash-latest',
    name='travel_planner_agent',
    description='A helpful assistant for planning travel routes.',
    tools=[
        McpToolset(
            connection_params=StreamableHTTPConnectionParams(
                url="https://mapstools.googleapis.com/mcp",
                headers={
                    "X-Goog-Api-Key": GOOGLE_MAPS_API_KEY,
                    "Content-Type": "application/json",
                    "Accept": "application/json, text/event-stream"
                }
            )
        )
    ]
)
    
Paso 2: Asegúrate de que exista __init__.py

Asegúrate de tener un __init__.py en el mismo directorio que tu agent.py:

from . import agent
    
Paso 3: Ejecuta adk web e interactúa
  1. Establece la variable de entorno:
    Establece tu clave de API de Google Maps como una variable de entorno en tu terminal:
    export GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"
            
  2. Ejecuta adk web:
    Ejecuta el siguiente comando para iniciar la interfaz web del ADK:
    adk web
            
  3. Interactúa en la IU:
    • Selecciona la travel_planner_agent.
    • Prueba instrucciones como las siguientes:
      • "Mañana estaré en San Francisco. ¿Cómo está el clima?"
      • "Encuentra cafeterías cerca del parque Golden Gate".
      • "Obtén instrucciones sobre cómo llegar desde Googleplex hasta SFO".

Java

Define un agente que inicialice el McpToolset en Java. Reemplaza YOUR_GOOGLE_MAPS_API_KEY_HERE por la clave de API real que obtuviste si no usas una variable de entorno.

package agents;

import com.google.adk.agents.LlmAgent;
import com.google.adk.runner.InMemoryRunner;
import com.google.adk.sessions.SessionKey;
import com.google.adk.tools.mcp.McpToolset;
import com.google.adk.tools.mcp.StreamableHttpServerParameters;
import com.google.genai.types.Content;
import com.google.genai.types.Part;
import java.util.HashMap;
import java.util.Map;

public class MapsAgentCreator {
    public static void main(String[] args) {
        String googleMapsApiKey = System.getenv("GOOGLE_MAPS_API_KEY");
        if (googleMapsApiKey == null || googleMapsApiKey.trim().isEmpty()) {
            googleMapsApiKey = "YOUR_GOOGLE_MAPS_API_KEY_HERE";
            if ("YOUR_GOOGLE_MAPS_API_KEY_HERE".equals(googleMapsApiKey)) {
                System.out.println("WARNING: GOOGLE_MAPS_API_KEY is not set.");
            }
        }

        Map<String, String> headers = new HashMap<>();
        headers.put("X-Goog-Api-Key", googleMapsApiKey);
        headers.put("Content-Type", "application/json");
        headers.put("Accept", "application/json, text/event-stream");

        StreamableHttpServerParameters serverParams =
                StreamableHttpServerParameters.builder("https://mapstools.googleapis.com/mcp")
                        .headers(headers)
                        .build();

        try (McpToolset toolset = new McpToolset(serverParams)) {
            LlmAgent agent = LlmAgent.builder()
                    .model("gemini-flash-latest")
                    .name("travel_planner_agent")
                    .description("A helpful assistant for planning travel routes.")
                    .tools(toolset)
                    .build();

            System.out.println("Agent created: " + agent.name());

            InMemoryRunner runner = new InMemoryRunner(agent);
            String userId = "maps-user-" + System.currentTimeMillis();
            String sessionId = "maps-session-" + System.currentTimeMillis();
            String promptText =
                    "Please give me directions to the nearest pharmacy to Madison Square Garden.";

            SessionKey sessionKey = runner.sessionService()
                    .createSession(runner.appName(), userId, null, sessionId)
                    .blockingGet()
                    .sessionKey();
            System.out.println("Session created: " + sessionId + " for user: " + userId);

            Content promptContent = Content.fromParts(Part.fromText(promptText));
            System.out.println("\nSending prompt: \"" + promptText + "\" to agent...\n");

            runner.runAsync(sessionKey, promptContent)
                    .blockingForEach(event -> {
                        System.out.println("Event received: " + event.toJson());
                    });
        } catch (Exception e) {
            System.err.println("An error occurred: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
    

TypeScript

Define un agente que inicialice el MCPToolset en TypeScript:

import 'dotenv/config';
import {LlmAgent, MCPToolset} from "@google/adk";

const googleMapsApiKey = process.env.GOOGLE_MAPS_API_KEY;
if (!googleMapsApiKey) {
    console.warn("WARNING: GOOGLE_MAPS_API_KEY is not set.");
    throw new Error(
        'GOOGLE_MAPS_API_KEY is not provided, please run "export GOOGLE_MAPS_API_KEY=YOUR_ACTUAL_KEY" to add that.'
    );
}

export const rootAgent = new LlmAgent({
    model: "gemini-flash-latest",
    name: "travel_planner_agent",
    description: "A helpful assistant for planning travel.",
    tools: [
        new MCPToolset({
            type: "StreamableHTTPConnectionParams",
            url: "https://mapstools.googleapis.com/mcp",
            transportOptions: {
                requestInit: {
                    headers: {
                        "X-Goog-Api-Key": googleMapsApiKey,
                        "Content-Type": "application/json",
                        "Accept": "application/json, text/event-stream"
                    }
                }
            }
        })
    ],
});
    

Llama a las herramientas con REST

Cada herramienta de Maps Experience también está disponible como un método de REST. Llama a los métodos de REST directamente cuando quieras conectar las herramientas a tu propio agente o aplicación, por ejemplo, para declarar tus propias funciones para un modelo, elegir qué opciones puede establecer el modelo o establecer valores predeterminados en tu código.

En la siguiente tabla, se indica el método de REST para cada herramienta:

Herramienta Método REST
search_places POST https://mapstools.googleapis.com/v1:searchText
search_along_route POST https://mapstools.googleapis.com/v1:searchAlongRoute
lookup_weather POST https://mapstools.googleapis.com/v1:lookupWeather
compute_routes POST https://mapstools.googleapis.com/v1:computeRoutes
resolve_names POST https://mapstools.googleapis.com/v1:resolveNames
resolve_maps_urls POST https://mapstools.googleapis.com/v1:resolveMapsUrls

Una solicitud de REST toma las mismas opciones que la herramienta correspondiente y devuelve la misma respuesta. En los cuerpos de solicitud y respuesta de REST, los nombres de los campos usan mayúsculas mediales en minúscula, por ejemplo, textQuery en lugar de text_query. Las solicitudes de REST se facturan con los mismos SKU, siguen las mismas reglas para las opciones de Pro y se consideran para las mismas cuotas que las llamadas a la herramienta de MCP.

Para autenticarte, usa el mismo proyecto y las mismas credenciales de Google Cloud que para el servidor de MCP. Para conocer los pasos de configuración, consulta Configura LLM para usar el servidor de MCP. Pasa una clave de API en el encabezado X-Goog-Api-Key o un token de acceso de OAuth con el permiso https://www.googleapis.com/auth/maps-platform.mapstools en el encabezado Authorization.

En el siguiente ejemplo, se llama al método searchText:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-d '{
  "textQuery": "coffee shops near Golden Gate Park"
}' \
"https://mapstools.googleapis.com/v1:searchText"

Reemplaza API_KEY por tu clave de API.

La respuesta contiene los mismos campos summary, places y contentToken que un resultado de la herramienta search_places. En la guía de cada herramienta, se muestra una versión de REST de su ejemplo.

Comparte tus comentarios

Para compartir comentarios sobre las herramientas de agentes de Maps Experience, usa los siguientes formularios: