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 (CRITIQUE) :
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'à 25 arrêts par lesquels passer, 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. Spécifier plus de 10 points de cheminement intermédiaires entraînera des coûts et une latence plus élevés.travel_mode(énumération, FACULTATIF) :DRIVE(par défaut),WALK,BICYCLEouTRANSIT.Timing (OPTIONAL - set at most ONE): 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 fixée 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, "arriver à 9h").
routing_preference(énumération - 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 option 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 est manquant, 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 recommandé au moins recommandé.
- Si
routesest vide, indiquez à l'utilisateur qu'aucun itinéraire n'a été trouvé. Ne devinez pas un itinéraire. - Pour trouver des lieux le long d'un itinéraire
DRIVE, transmettez leretrieval_tokende l'itinéraire àsearch_along_route. Le jeton est valide pendant 10 minutes. - 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'à 25 points de cheminement intermédiaires. Si vous spécifiez plus de 10 points de cheminement intermédiaires, les coûts et la latence seront plus élevés. 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. Un lieu 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, bien que des alternatives ne soient pas 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 : |
Repère
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union location_type. Différentes manières 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]. |
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 à 0001-01-01T00:00:00Z à 9999-12-31T23:59:59Z). |
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). |
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 particulier. |
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 |
Se déplacer à 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 permet d'obtenir 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. |
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. Valable 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 l'utilisateur 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 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", 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: ❌