Outil : compute_routes
Calcule les itinéraires entre un point de départ et une destination, éventuellement en passant par des arrêts intermédiaires. Renvoie la distance et la durée de chaque itinéraire.
Exigences d'entrée (CRITIQUES) :
originetdestination(objets - OBLIGATOIRE) : chacun doit être fourni en utilisant exactement l'un des éléments suivants :address(chaîne, par exemple'Eiffel Tower, Paris'). Les lieux nommés, les points de repère et les établissements sont résolus directement. N'appelez donc PASsearch_placesd'abord juste pour géocoder un point de cheminement. Incluez toute ville, région ou pays mentionné par l'utilisateur.lat_lng(objet,{"latitude": number, "longitude": number}).place_id(chaîne, par exemple'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), par exemple à partir desearch_places.
intermediate_waypoints(tableau d'objets, FACULTATIF) : jusqu'à 10 étapes à parcourir, dans l'ordre, entre le point de départ et la destination. Même format queorigin. Non compatible avecTRANSIT. N'incluez que les arrêts demandés par l'utilisateur.travel_mode(énumération, FACULTATIF) :DRIVE(par défaut),WALK,BICYCLEouTRANSIT.Timing (FACULTATIF - définissez au maximum UN timing) : codes temporels RFC 3339 avec un décalage UTC, par exemple
'2026-09-19T08:00:00-07:00'. La valeur par défaut est "départ immédiat". PourTRANSIT, l'heure peut être définie jusqu'à sept jours dans le passé ou jusqu'à 100 jours dans le futur. Pour les autres modes, l'heure peut être définie jusqu'à 365 jours dans le futur et ne doit pas être dans le passé.departure_time: à utiliser lorsque l'utilisateur indique l'heure de son départ (par exemple, "demain à 8h").arrival_time: à utiliser lorsque l'utilisateur indique l'heure à laquelle il doit arriver (par exemple, "être là à 9h").
routing_preference(enum - FACULTATIF) :ROUTING_PREFERENCE_TRAFFIC_UNAWARE(par défaut) : ignore le trafic en temps réel, les incidents et les fermetures. Latence la plus faible.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: utilise les conditions de circulation en temps réel lorsqu'elles sont disponibles. Non compatible avecWALKouBICYCLE. Définissez cette valeur UNIQUEMENT lorsque l'utilisateur pose une question sur le trafic, les embouteillages ou l'heure d'arrivée prévue ajustée en fonction du trafic. Cela entraîne des coûts et une latence plus élevés.
location_bias(objet, FACULTATIF) :{"latitude": number, "longitude": number}utilisé pour lever l'ambiguïté des noms de lieux dans les adresses des points de cheminement. Si un nom est ambigu (par exemple, "Springfield") et que l'utilisateur n'a pas indiqué de région, conservez le nom tel qu'il est indiqué dansaddresset définissezlocation_biassur la zone prévue au lieu de deviner une région.compute_alternative_routes(booléen, FACULTATIF) : défini surtrueuniquement lorsque l'utilisateur demande des options ou des alternatives d'itinéraire. La valeur par défaut estfalse, qui ne renvoie que l'itinéraire recommandé.include_polyline(booléen, FACULTATIF) : définissez cette option surtrueuniquement lorsque la géométrie de l'itinéraire (encoded_polyline) est nécessaire. La valeur par défaut estfalse.
Instructions pour l'appel d'outil :
- Si le point de départ ou la destination sont manquants, vous DEVEZ demander des précisions à l'utilisateur avant d'appeler l'outil.
- Pour les questions du type "À quelle distance se trouve A de B ?", utilisez B comme
originet A commedestination.
Exemple d'appel d'outil : {"origin":{"address":"Tour Eiffel"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Musée du Louvre"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}
Instructions for Response:
- Lorsque des itinéraires alternatifs sont demandés, ils sont classés du plus au moins recommandé.
- Si
routesest vide, indiquez à l'utilisateur qu'aucun itinéraire n'a été trouvé. Ne devinez pas un itinéraire. - N'indiquez que les faits renvoyés par l'outil. N'inventez PAS d'itinéraires détaillés, de lignes de transports en commun, de stations, de quais ni de correspondances.
- La sortie ancrée doit être attribuée à la source à l'aide du champ
attributionde chaque itinéraire, lorsqu'il est disponible.
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 ( |
| Champs | |
|---|---|
origin |
Obligatoire. Point de cheminement de départ. |
destination |
Obligatoire. Point de cheminement de destination. |
travelMode |
Facultatif. Spécifie le mode de transport. |
intermediateWaypoints[] |
Facultatif. Arrêts intermédiaires entre le point de départ et la destination, à traverser dans l'ordre. Vous pouvez ajouter jusqu'à 10 points de cheminement intermédiaires. Les points de cheminement intermédiaires ne sont pas acceptés lorsque |
routingPreference |
Facultatif. Détermine comment les données de trafic sont utilisées pour calculer l'itinéraire. |
locationBias |
Facultatif. Emplacement vers lequel orienter les résultats de recherche, par exemple pour lever l'ambiguïté des requêtes textuelles de points de cheminement. |
includePolyline |
Facultatif. Indique si la polyligne encodée doit être incluse dans les itinéraires de la réponse. La valeur par défaut est |
computeAlternativeRoutes |
Facultatif. Indique s'il faut calculer des itinéraires alternatifs en plus de l'itinéraire recommandé. La valeur par défaut est "false", auquel cas seul l'itinéraire recommandé est renvoyé. Lorsque la valeur est "true", tous les itinéraires disponibles sont renvoyés, même si des alternatives ne sont pas forcément disponibles pour chaque requête. |
Champ d'union timing. Indique quand partir du point de départ ou arriver au point de cheminement final. Si aucune valeur n'est spécifiée, l'heure de départ par défaut est l'heure actuelle. Pour TRANSIT, l'heure doit être comprise entre sept jours dans le passé et 100 jours dans le futur. Pour les autres modes de transport, l'heure ne doit pas être passée et doit être comprise dans les 365 prochains jours. La timing ne peut être qu'un des éléments suivants : |
|
departureTime |
Facultatif. Indique que l'itinéraire doit être calculé en fonction de l'heure de départ. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
arrivalTime |
Facultatif. Indique que l'itinéraire doit être calculé en fonction de l'heure d'arrivée. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
Code temporel
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. Doit être compris entre -62135596800 et 253402300799 inclus (ce qui correspond à la période allant du 01/01/0001 à 00:00:00 UTC au 31/12/9999 à 23:59:59 UTC). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 (inclus). |
Repère
| Représentation JSON |
|---|
{ // Union field |
| 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 |
Point spécifié à l'aide de coordonnées géographiques. |
placeId |
ID de lieu associé au point de cheminement. |
address |
Adresse lisible ou Plus Code. Pour en savoir plus, consultez https://plus.codes. |
LatLng
| Représentation JSON |
|---|
{ "latitude": number, "longitude": number } |
| Champs | |
|---|---|
latitude |
Latitude en degrés. Elle doit être comprise dans la plage [-90.0, +90.0]. |
longitude |
Longitude en degrés. Elle doit être comprise dans la plage [-180.0, +180.0]. |
RouteTravelMode
Ensemble de valeurs utilisées pour spécifier le mode de transport.
| Enums | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
Aucun mode de transport 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 tous les itinéraires à pied que vous affichez dans votre application. |
BICYCLE |
Voyagez à vélo. |
TRANSIT |
Trajet en transports en commun. |
RoutingPreference
Ensemble de valeurs qui spécifient les facteurs à prendre en compte lors du calcul de l'itinéraire.
| Enums | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
Aucune préférence de routage spécifiée. La valeur par défaut est ROUTING_PREFERENCE_TRAFFIC_UNAWARE. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
Calcule les itinéraires sans tenir compte des conditions de circulation en temps réel. Cette option est adaptée lorsque les conditions de circulation n'ont pas d'importance ou ne s'appliquent pas. L'utilisation de cette valeur produit la latence la plus faible. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
Calcule les itinéraires en tenant compte des conditions de circulation en temps réel, lorsque les données de trafic sont disponibles. Pour Cette valeur déclenchera le niveau Pro et entraînera des coûts de facturation et une latence plus élevés. Cette option n'est disponible que pour les clients figurant sur la liste d'autorisation. Si elle n'est pas ajoutée à la liste d'autorisation, la requête est redirigée vers |
Schéma de sortie
ComputeRoutesResponse.
ComputeRoutesResponse
| Représentation JSON |
|---|
{
"routes": [
{
object ( |
| Champs | |
|---|---|
routes[] |
Contient les itinéraires entre le point de départ et la destination demandés, classés du plus recommandé au moins recommandé. Un seul itinéraire est renvoyé, sauf si |
Route
| Représentation JSON |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| Champs | |
|---|---|
distanceMeters |
Distance de l'itinéraire, en mètres. |
duration |
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 " |
attribution |
Attribution requise à afficher avec l'itinéraire. |
encodedPolyline |
Polyligne encodée de l'itinéraire. Consultez https://developers.google.com/maps/documentation/utilities/polylinealgorithm. |
retrievalToken |
Jeton permettant de récupérer cet itinéraire spécifique dans les outils en aval, tels que SearchAlongRoute. Valide pendant 10 minutes. |
Durée
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Secondes signées de l'intervalle de temps. 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 |
Fractions de seconde signées à une résolution de l'ordre de la nanoseconde de l'intervalle de temps. Les durées inférieures à une seconde sont représentées par un champ |
Attribution
| Représentation JSON |
|---|
{ "title": string, "url": string } |
| Champs | |
|---|---|
title |
Titre à afficher pour l'attribution. |
url |
URL vers laquelle rediriger 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 considèrent ces indications comme non fiables, mais elles peuvent être utilisées pour décider quand envoyer une invite de confirmation à un utilisateur.
En plus de la chaîne de titre, les indices booléens suivants sont définis 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", l'appel répété de l'outil 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 sur le Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌