MCP Tools Reference: mapstools.googleapis.com

Outil : compute_routes

Calcule un itinéraire entre un point de départ et une destination spécifiés. Modes de transport acceptés : DRIVE (par défaut), WALK.

Exigences concernant les entrées (CRITIQUES) : nécessite à la fois origin et destination. Chacun d'eux doit être fourni à l'aide de l'une des méthodes suivantes, imbriquées dans son champ respectif :

  • address : chaîne (par exemple, "Tour Eiffel, Paris"). Remarque : Plus l'adresse saisie est précise, meilleurs sont les résultats.

  • lat_lng: : (objet, {"latitude": nombre, "longitude": nombre})

  • place_id: (chaîne, par exemple, "ChIJOwE_Id1w5EAR4Q27FkL6T_0") Remarque : Cet ID peut être obtenu à partir de l'outil search_places. Toute combinaison de types d'entrée est autorisée (par exemple, origine par adresse, destination par lat_lng). Si l'origine ou la destination sont manquantes, vous DEVEZ demander des précisions à l'utilisateur avant d'essayer d'appeler l'outil.

Exemple d'appel d'outil : {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • La sortie ancrée doit être attribuée à la source à l'aide des informations du champ attribution, le cas échéant.

L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP compute_routes.

Requête 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
}'

Schéma d'entrée

ComputeRoutesRequest.

ComputeRoutesRequest

Représentation JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode)
}
Champs
origin

object (Waypoint)

Obligatoire. Point de cheminement de départ.

destination

object (Waypoint)

Obligatoire. Point de cheminement de destination.

travelMode

enum (RouteTravelMode)

Facultatif. Spécifie le mode de transport.

Repère

Représentation 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.
}
Champs
Champ d'union location_type. Différentes façons de représenter un lieu. location_type ne peut être qu'un des éléments suivants :
latLng

object (LatLng)

Point spécifié à l'aide de coordonnées géographiques.

placeId

string

ID de lieu associé au point de repère.

address

string

Adresse lisible ou Plus Code. Pour en savoir plus, consultez https://plus.codes.

LatLng

Représentation JSON
{
  "latitude": number,
  "longitude": number
}
Champs
latitude

number

Latitude en degrés. Elle doit être comprise dans la plage [-90.0, +90.0].

longitude

number

Longitude en degrés. Elle doit être comprise dans la plage [-180.0, +180.0].

RouteTravelMode

Ensemble de valeurs utilisé pour spécifier le mode de transport.

Enums
ROUTE_TRAVEL_MODE_UNSPECIFIED Aucun mode de déplacement n'a été spécifié. La valeur par défaut est DRIVE.
DRIVE Trajet en voiture de tourisme.
WALK Se déplacer à pied REMARQUE : Les itinéraires WALK sont en version bêta et peuvent parfois ne pas inclure de trottoirs ou de voies piétonnes clairs. Vous devez afficher cet avertissement à l'utilisateur pour toutes les activités de marche que vous affichez dans votre application.

Schéma de sortie

ComputeRoutesResponse.

ComputeRoutesResponse

Représentation JSON
{
  "routes": [
    {
      object (Route)
    }
  ]
}
Champs
routes[]

object (Route)

Contient les itinéraires entre le point de départ et la destination demandés. Actuellement, un seul itinéraire est renvoyé.

Route

Représentation JSON
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  }
}
Champs
distanceMeters

integer

Distance de l'itinéraire en mètres.

duration

string (Duration format)

Durée nécessaire pour parcourir l'itinéraire.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

attribution

object (Attribution)

Attribution requise à afficher avec l'itinéraire.

Durée

Représentation JSON
{
  "seconds": string,
  "nanos": integer
}
Champs
seconds

string (int64 format)

Nombre de secondes signées de la période. Doit être compris entre -315 576 000 000 et +315 576 000 000 (inclus). Remarque : Ces limites sont calculées à partir de : 60 s/min * 60 min/h * 24 h/jour * 365,25 jours/an * 10 000 ans.

nanos

integer

Fractions de seconde signées avec une résolution en nanosecondes de la durée. Les durées inférieures à une seconde sont représentées par un champ seconds égal à 0 et un champ nanos positif ou négatif. Pour les durées d'une seconde ou plus, une valeur non nulle pour le champ nanos doit avoir le même signe que le champ seconds. Doit être compris entre -999 999 999 et +999 999 999 (inclus).

Attribution

Représentation JSON
{
  "title": string,
  "url": string
}
Champs
title

string

Titre à afficher pour l'attribution.

url

string

URL à associer pour l'attribution.

Annotations d'outils

Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.

En plus de la chaîne de titre, les indications booléennes suivantes sont définies comme suit :

  • readOnlyHint : si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".
  • destructiveHint : si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".
  • idempotentHint : si la valeur est "true", appeler l'outil à plusieurs reprises avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".
  • openWorldHint : si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.

Indication destructive : ❌ | Indication idempotente : ❌ | Indication en lecture seule : ✅ | Indication Open World : ❌