MCP Tools Reference: mapstools.googleapis.com

Herramienta: 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, anidado 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 te aclare la información antes de intentar llamar a la herramienta.

Ejemplo de llamada a 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.

En la siguiente muestra de código, se muestra cómo usar curl para llamar a la herramienta de MCP compute_routes.

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": "compute_routes",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Esquema de entrada

Es el objeto ComputeRoutesRequest.

ComputeRoutesRequest

Representación JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode)
}
Campos
origin

object (Waypoint)

Obligatorio. Punto de referencia de origen.

destination

object (Waypoint)

Obligatorio. Punto de referencia de destino.

travelMode

enum (RouteTravelMode)

Opcional. Especifica el medio de transporte.

Punto de referencia

Representación 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.
}
Campos
Campo de unión location_type. Son las diferentes formas de representar una ubicación. location_type puede ser solo uno de los parámetros siguientes:
latLng

object (LatLng)

Es un punto especificado con coordenadas geográficas.

placeId

string

Es el ID de lugar asociado con el punto de ruta.

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].

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 Viajar en automóvil de pasajeros.
WALK Viajar a pie 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 todos los recorridos a pie que se muestren en tu app.

Esquema de salida

Es la respuesta de ComputeRoutes.

ComputeRoutesResponse

Representación JSON
{
  "routes": [
    {
      object (Route)
    }
  ]
}
Campos
routes[]

object (Route)

Contiene rutas entre el origen y el destino solicitados. Actualmente, solo se muestra una ruta.

Enruta

Representación JSON
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  }
}
Campos
distanceMeters

integer

Es la distancia de viaje de la ruta, en metros.

duration

string (Duration format)

Es el tiempo necesario para recorrer la ruta.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

attribution

object (Attribution)

Es la atribución obligatoria que se debe mostrar con la ruta.

Duración

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

string (int64 format)

Son los segundos firmados del período. 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

integer

Son fracciones de segundo firmadas con una resolución de nanosegundos del período. Las duraciones inferiores a un segundo se representan con un campo seconds igual a 0 y un campo nanos positivo o negativo. Para duraciones de un segundo o más, un valor distinto de cero para el campo nanos debe tener el mismo signo que el campo seconds. Debe ser un valor entre -999,999,999 y +999,999,999 (inclusive).

Atribución

Representación JSON
{
  "title": string,
  "url": string
}
Campos
title

string

Es el título que se mostrará para la atribución.

url

string

Es la URL a la que se vinculará la atribución.

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 le puede enviar un mensaje de confirmación a un usuario.

Junto con la cadena de título, se definen las siguientes sugerencias booleanas:

  • 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 varias veces 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.

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