Herramienta: search_along_route
Llama a esta herramienta cuando el usuario quiera encontrar lugares, empresas o puntos de interés a lo largo de una ruta de viaje (p.ej., "estaciones de servicio en mi camino a Tahoe", "cafeterías entre SF y San José"). Llamar a esta herramienta genera un costo más alto que search_places, por lo que debes usar search_places cuando busques cerca de una sola ubicación en lugar de a lo largo de una ruta.
Requisitos de entrada (CRÍTICOS):
text_query(cadena, OBLIGATORIO): Es una descripción en lenguaje natural de lo que se debe buscar en la ruta.- Ejemplos:
'ev chargers','coffee','vegetarian restaurants'y'rest stops'.
- Ejemplos:
Especificación de la ruta (OBLIGATORIO: Proporciona exactamente UNO de los siguientes elementos):
retrieval_token(cadena): Es elretrieval_tokenque devuelve una llamada anterior acompute_routespara una rutaDRIVE. Prefiere esta opción cuando ya se haya calculado la ruta. El token es válido durante 10 minutos.route_endpoints(objeto): Es eloriginy ladestinationde la ruta. Cada uno se debe proporcionar conaddress,lat_lngoplace_id.- Ejemplo:
{"route_endpoints": {"origin": {"address": "San Francisco, CA"}, "destination": {"address": "Lake Tahoe, CA"}}}.
- Ejemplo:
encoded_polyline(cadena): Es una polilínea codificada que representa una ruta deDRIVE.
travel_mode(enum, OPCIONAL):DRIVE(predeterminado),WALKoBICYCLE.WALKyBICYCLEsolo son compatibles conroute_endpoints. No se admiteTRANSIT.routing_preference(enum - OPCIONAL):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(predeterminado): Calcula la ruta y los desvíos sin tráfico en tiempo real. Latencia más baja.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: Usa las condiciones de tráfico en tiempo real cuando están disponibles. No se admite paraWALKniBICYCLE. Establece este valor SOLO cuando el usuario pregunte sobre el tráfico, la congestión o los tiempos de desvío ajustados según el tráfico. Genera una latencia más alta.
include_extended_details(booleano, OPCIONAL): Se establece entruesolo cuando la solicitud requiere estadísticas de opiniones cualitativas, elementos o productos específicos del menú, ambiente, sugerencias o nivel de actividad de los visitantes, disponibilidad de cargadores de VE, precios de la gasolina o cualquier otro detalle cualitativo enriquecido. La configuración predeterminada esfalse. Si la habilitas, es posible que aumente la latencia.language_code(cadena, OPCIONAL): Es el idioma del resumen de los resultados y los detalles del lugar, p.ej.,en,ja,en-US. La configuración predeterminada esen-US.region_code(cadena, OPCIONAL): Es el código de región CLDR de Unicode del usuario, p.ej.,US,CA.
Instrucciones para la llamada a la herramienta:
- Cada resultado incluye un objeto
detour_summary(cuando está disponible) que describe la distancia adicional (localized_detour_distance) y, a menos que la ruta se haya proporcionado comoencoded_polyline, el tiempo adicional (detour_duration) que se genera por detenerse en ese lugar. Úsala para comparar opciones. - La respuesta
summarypuede contener citas basadas en cero (p.ej., "[0]") que hagan referencia a entradas enresults. - El resultado fundamentado se debe atribuir a la fuente con el campo
attributionde cadaresults[].placecuando esté disponible.
En la siguiente muestra de código, se indica cómo usar curl para llamar a la herramienta de MCP search_along_route.
| 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": "search_along_route", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
Es el mensaje de solicitud para SearchAlongRoute.
SearchAlongRouteRequest
| Representación JSON |
|---|
{ "textQuery": string, "languageCode": string, "regionCode": string, "routingPreference": enum ( |
| Campos | |
|---|---|
textQuery |
Obligatorio. Es la búsqueda en lenguaje natural (p.ej., "cargadores de VE", "café"). |
languageCode |
Opcional. Es el idioma del resumen y los detalles del lugar. La configuración predeterminada es "en-US". |
regionCode |
Opcional. Es el código de país o región (CLDR) de la ubicación (p.ej., "US"). |
routingPreference |
Opcional. Es la preferencia de ruta opcional que especifica cómo se usan los datos de tráfico. La configuración predeterminada es TRAFFIC_UNAWARE. |
includeExtendedDetails |
Opcional. Incluye detalles extendidos del lugar en la respuesta. Establece este campo en Deja Si habilitas este campo, es posible que se genere una latencia más alta. |
travelMode |
Opcional. Especifica el medio de transporte que se usa para calcular la ruta y los desvíos. La configuración predeterminada es |
Campo de unión route_spec. Especificación de la ruta: una ruta existente, un token de ruta o endpoints de origen y destino. route_spec puede ser solo uno de los parámetros siguientes: |
|
encodedPolyline |
Es una cadena de polilínea codificada que representa la ruta. Consulta https://developers.google.com/maps/documentation/utilities/polylinealgorithm |
retrievalToken |
Es un token de recuperación que se devuelve de una llamada anterior a ComputeRoutes y que representa la ruta. |
routeEndpoints |
Extremos de ruta explícitos (origen y destino) |
RouteEndpoints
| Representación JSON |
|---|
{ "origin": { object ( |
| Campos | |
|---|---|
origin |
Obligatorio. Punto de partida (dirección, ID de lugar o coordenadas geográficas) |
destination |
Obligatorio. Punto de destino (dirección, ID de lugar o coordenadas geográficas) |
Punto de referencia
| Representación JSON |
|---|
{ // Union field |
| 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 |
Es un punto especificado con coordenadas geográficas. |
placeId |
Es el ID de lugar asociado con el punto de referencia. |
address |
Es la dirección legible por humanos o un Plus Code. Visita https://plus.codes para obtener más información. |
LatLng
| Representación JSON |
|---|
{ "latitude": number, "longitude": number } |
| Campos | |
|---|---|
latitude |
La latitud expresada en grados. Debe pertenecer al rango [-90.0, +90.0]. |
longitude |
La longitud expresada en grados. Debe pertenecer al rango [-180.0, +180.0]. |
RoutingPreference
Es un conjunto de valores que especifican los factores que se deben tener en cuenta cuando se calcula la ruta.
| Enums | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
No se especificó ninguna preferencia de enrutamiento. La configuración predeterminada es ROUTING_PREFERENCE_TRAFFIC_UNAWARE. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
Calcula las rutas sin tener en cuenta las condiciones de tráfico en tiempo real. Es adecuado cuando las condiciones de tráfico no importan o no se aplican. El uso de este valor produce la latencia más baja. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
Calcula rutas teniendo en cuenta las condiciones de tráfico en tiempo real, cuando hay datos de tráfico disponibles. En el caso de Este valor activará el nivel Pro y generará un costo facturado y una latencia más altos. |
RouteTravelMode
Es un conjunto de valores que se usan para especificar el medio de transporte.
| Enums | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
No se especificó ningún medio de transporte. La configuración predeterminada es DRIVE. |
DRIVE |
Viaje en vehículo de pasajeros |
WALK |
Viaja caminando. NOTA: Las rutas de WALK están en versión beta y, a veces, es posible que no incluyan aceras o rutas peatonales claras. Debes mostrar esta advertencia al usuario para todas las rutas a pie que muestres en tu app. |
BICYCLE |
Viajar en bicicleta |
TRANSIT |
Viajar en transporte público |
Esquema de salida
Mensaje de respuesta para SearchAlongRoute.
SearchAlongRouteResponse
| Representación JSON |
|---|
{
"results": [
{
object ( |
| Campos | |
|---|---|
results[] |
Solo salida. Es la lista clasificada de los resultados de la búsqueda que se encontraron a lo largo de la ruta. |
summary |
Solo salida. Resumen en lenguaje natural de los resultados de la búsqueda y las compensaciones de los desvíos Puede contener citas basadas en cero (p.ej., "[0]", "[1]") que hagan referencia a las entradas correspondientes en la lista |
contentToken |
Solo salida. Es un token encriptado que encapsula el contexto de la búsqueda y se puede pasar a los servicios de renderización visual de Google Maps, los SDKs o el Maps Agentic UI Toolkit (A2UI) para mostrar componentes interactivos de la IU para los resultados de la búsqueda devueltos. |
Resultado
| Representación JSON |
|---|
{ "place": { object ( |
| Campos | |
|---|---|
place |
Solo salida. Son los detalles sobre el lugar que se encontró en la ruta. |
detourSummary |
Solo salida. Son las métricas de desvío que se generan cuando se agrega este lugar como una parada intermedia en la ruta. Se omite o se deja vacío si no se pudieron calcular las métricas de desvío. |
PlaceView
| Representación JSON |
|---|
{ "place": string, "id": string, "googleMapsLinks": { object ( |
| Campos | |
|---|---|
place |
Es el nombre del recurso del lugar subyacente, con el formato "places/{id}". |
id |
Es el ID de lugar del lugar subyacente. |
googleMapsLinks |
Vínculos para activar diferentes acciones de Google Maps |
attribution |
Es la atribución obligatoria que se debe mostrar con el lugar. |
Campo de unión
|
|
location |
Es la posición de este lugar. |
LatLng
| Representación JSON |
|---|
{ "latitude": number, "longitude": number } |
| Campos | |
|---|---|
latitude |
La latitud expresada en grados. Debe pertenecer al rango [-90.0, +90.0]. |
longitude |
La longitud expresada en grados. Debe pertenecer al rango [-180.0, +180.0]. |
GoogleMapsLinks
| Representación JSON |
|---|
{ "directionsUrl": string, "placeUrl": string, "writeAReviewUrl": string, "reviewsUrl": string, "photosUrl": string } |
| Campos | |
|---|---|
directionsUrl |
Un vínculo para mostrar las instrucciones sobre cómo llegar al lugar El vínculo solo propaga la ubicación de destino y usa el modo de viaje predeterminado |
placeUrl |
Un vínculo para mostrar este lugar. |
writeAReviewUrl |
Un vínculo para escribir una opinión sobre este lugar en Google Maps. |
reviewsUrl |
Es un vínculo para mostrar las opiniones sobre este lugar en Google Maps. |
photosUrl |
Un vínculo para mostrar fotos de este lugar en Google Maps |
Atribución
| Representación JSON |
|---|
{ "title": string, "url": string } |
| Campos | |
|---|---|
title |
Es el título que se mostrará para la atribución. |
url |
Es la URL a la que se vinculará la atribución. |
DetourSummary
| Representación JSON |
|---|
{ "detourDuration": string, "localizedDetourDistance": string } |
| Campos | |
|---|---|
detourDuration |
Es el tiempo de viaje adicional que se requiere para desviarse a este lugar desde la ruta principal. Este valor no se establece si la ruta se especifica con Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
localizedDetourDistance |
Es la distancia adicional necesaria para desviarse a este lugar desde la ruta principal, con el formato para mostrarse en el idioma de la solicitud (p. ej., "1.2 mi" o "1.9 km"). |
Duración
| Representación JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Son los segundos firmados del intervalo de tiempo. Debe ser un valor entre -315,576,000,000 y +315,576,000,000 inclusive. Nota: Estos límites se calculan de la siguiente manera: 60 s/min * 60 min/h * 24 h/día * 365.25 días/año * 10,000 años |
nanos |
Fracciones con signo de un segundo con una resolución de nanosegundos del intervalo de tiempo. Las duraciones de menos de un segundo se representan con un campo |
Anotaciones de herramientas
Las anotaciones de herramientas se envían a los clientes de MCP para describir el riesgo básico de una herramienta determinada. La mayoría de los clientes tratan estas sugerencias como no confiables, pero se pueden usar para decidir cuándo se puede enviar un mensaje de confirmación a un usuario.
Junto con la cadena de título, las siguientes sugerencias booleanas se definen de la siguiente manera:
readOnlyHint: Si es verdadero, la herramienta no modifica su entorno. Valor predeterminado: false.destructiveHint: Si es verdadero, la herramienta puede realizar acciones destructivas. Si es falso, la herramienta solo puede realizar acciones aditivas. Valor predeterminado: true.idempotentHint: Si es verdadero, llamar a la herramienta de forma repetida con los mismos argumentos no tendrá ningún efecto adicional en su entorno. Valor predeterminado: false.openWorldHint: Si es verdadero, la herramienta puede interactuar con un "mundo abierto" de entidades externas. Si es falso, la herramienta solo puede interactuar con entidades internas. Por ejemplo, una herramienta de búsqueda web sería de mundo abierto, mientras que una herramienta de memoria no lo sería.
Sugerencia destructiva: ❌ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ✅ | Sugerencia de mundo abierto: ❌