MCP Tools Reference: mapstools.googleapis.com

Strumento: compute_routes

Calcola i percorsi di viaggio tra un'origine e una destinazione, facoltativamente attraverso fermate intermedie. Restituisce la distanza e la durata di ogni percorso.

Requisiti di input (FONDAMENTALI):

  1. origin e destination (oggetti - OBBLIGATORI): ciascuno deve essere fornito utilizzando esattamente uno dei seguenti elementi:

    • address (stringa, ad es. 'Eiffel Tower, Paris'). I luoghi, i punti di riferimento e le attività con un nome vengono risolti direttamente, quindi NON chiamare prima search_places solo per geocodificare un waypoint. Includi qualsiasi città, regione o paese menzionato dall'utente.
    • lat_lng (oggetto, {"latitude": number, "longitude": number}).
    • place_id (stringa, ad esempio 'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), ad esempio da search_places.
  2. intermediate_waypoints (array di oggetti - FACOLTATIVO): fino a 25 tappe da attraversare, in ordine, tra l'origine e la destinazione. Stesso formato di origin. Non supportato con TRANSIT. Includi solo le fermate richieste dall'utente. Se specifichi più di 10 tappe intermedie, i costi e la latenza saranno più elevati.

  3. travel_mode (enum - FACOLTATIVO): DRIVE (predefinito), WALK, BICYCLE o TRANSIT.

  4. Tempistica (FACOLTATIVO - imposta al massimo UN valore): timestamp RFC 3339 con un offset UTC, ad esempio '2026-09-19T08:00:00-07:00'. Il valore predefinito è la partenza immediata. Per TRANSIT, l'ora può essere impostata fino a 7 giorni nel passato o fino a 100 giorni nel futuro. Per le altre modalità, l'ora può essere impostata fino a 365 giorni nel futuro e non deve essere nel passato.

    • departure_time: da utilizzare quando l'utente indica quando partirà (ad es. "domani alle 8:00").
    • arrival_time: da utilizzare quando l'utente indica l'orario di arrivo (ad es. "arrivo alle 9:00").
  5. routing_preference (enum - FACOLTATIVO):

    • ROUTING_PREFERENCE_TRAFFIC_UNAWARE (predefinito): ignora il traffico in tempo reale, gli incidenti e le chiusure. Latenza minima.
    • ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: utilizza le condizioni del traffico in tempo reale, se disponibili. Non supportato per WALK o BICYCLE. Imposta questo valore SOLO quando l'utente chiede informazioni sul traffico, sulla congestione o su un orario di arrivo stimato basato sul traffico. Comporta costi e latenza più elevati.
  6. location_bias (oggetto - FACOLTATIVO): {"latitude": number, "longitude": number} utilizzato per eliminare l'ambiguità dei nomi dei luoghi negli indirizzi dei waypoint. Se un nome è ambiguo (ad es. "Springfield") e l'utente non ha fornito una regione, mantieni il nome così come è stato fornito in address e imposta location_bias sull'area prevista anziché indovinare una regione.

  7. compute_alternative_routes (booleano - FACOLTATIVO): impostalo su true solo quando l'utente richiede opzioni o alternative per il percorso. Il valore predefinito è false, che restituisce solo il percorso consigliato.

  8. include_polyline (booleano - FACOLTATIVO): imposta su true solo quando è necessaria la geometria del percorso (encoded_polyline). Il valore predefinito è false.

Instructions for Tool Call:

  • Se l'origine o la destinazione non sono presenti, DEVI chiedere chiarimenti all'utente prima di chiamare lo strumento.
  • Per le domande del tipo "Quanto dista A da B?", utilizza B come origin e A come destination.

Esempio di chiamata allo strumento: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Louvre Museum"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}

Instructions for Response:

  • Quando vengono richiesti percorsi alternativi, questi vengono ordinati dal più consigliato al meno consigliato.
  • Se routes è vuoto, comunica all'utente che non è stato trovato alcun percorso. Non provare a indovinare un percorso.
  • Per trovare luoghi lungo un percorso DRIVE, passa il retrieval_token del percorso a search_along_route. Il token è valido per 10 minuti.
  • Indica solo i fatti restituiti dallo strumento. NON inventare indicazioni stradali passo passo, linee di trasporto pubblico, stazioni, banchine o coincidenze.
  • L'output basato su dati reali deve essere attribuito alla fonte utilizzando il campo attribution di ogni percorso, se disponibile.

Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP compute_routes.

Richiesta 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
}'

Schema di input

ComputeRoutesRequest.

ComputeRoutesRequest

Rappresentazione JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode),
  "intermediateWaypoints": [
    {
      object (Waypoint)
    }
  ],
  "routingPreference": enum (RoutingPreference),
  "locationBias": {
    object (LatLng)
  },
  "includePolyline": boolean,
  "computeAlternativeRoutes": boolean,

  // Union field timing can be only one of the following:
  "departureTime": string,
  "arrivalTime": string
  // End of list of possible types for union field timing.
}
Campi
origin

object (Waypoint)

Obbligatorio. Waypoint di origine.

destination

object (Waypoint)

Obbligatorio. Waypoint di destinazione.

travelMode

enum (RouteTravelMode)

Facoltativo. Specifica il mezzo di trasporto.

intermediateWaypoints[]

object (Waypoint)

Facoltativo. Fermate intermedie tra il luogo di partenza e la destinazione da attraversare in ordine. Sono supportate fino a 25 tappe intermedie.

Se specifichi più di 10 waypoint intermedi, i costi e la latenza saranno più elevati. I waypoint intermedi non sono supportati quando travel_mode è TRANSIT.

routingPreference

enum (RoutingPreference)

Facoltativo. Determina il modo in cui i dati sul traffico vengono utilizzati per calcolare il percorso. ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL non è supportato quando travel_mode è WALK o BICYCLE. Per TRANSIT, attiva i dati sul trasporto pubblico in tempo reale, come ritardi e cancellazioni.

locationBias

object (LatLng)

Facoltativo. Una località verso cui orientare i risultati di ricerca, ad esempio per eliminare l'ambiguità delle query di testo dei waypoint.

includePolyline

boolean

Facoltativo. Indica se includere la polilinea codificata nei percorsi di risposta. Il valore predefinito è false. Se impostato su true, viene restituito Route.encoded_polyline.

computeAlternativeRoutes

boolean

Facoltativo. Indica se calcolare percorsi alternativi oltre a quello consigliato. Il valore predefinito è false, nel qual caso viene restituito solo il percorso consigliato. Se impostato su true, vengono restituite tutte le route disponibili, anche se le alternative potrebbero non essere disponibili per ogni richiesta.

Campo unione timing. Specifica quando partire dall'origine o arrivare al waypoint finale. Se non specificato, il valore predefinito è l'ora corrente. Per TRANSIT, l'orario deve essere al massimo 7 giorni nel passato e al massimo 100 giorni nel futuro. Per altre modalità di viaggio, l'orario non deve essere nel passato e deve essere al massimo 365 giorni nel futuro. timing può essere solo uno dei seguenti tipi:
departureTime

string (Timestamp format)

Facoltativo. Indica che il percorso deve essere calcolato in base all'ora di partenza.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

arrivalTime

string (Timestamp format)

Facoltativo. Indica che il percorso deve essere calcolato in base all'ora di arrivo.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

Waypoint

Rappresentazione 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.
}
Campi
Campo unione location_type. Diversi modi per rappresentare una località. location_type può essere solo uno dei seguenti tipi:
latLng

object (LatLng)

Un punto specificato utilizzando le coordinate geografiche.

placeId

string

L'ID luogo associato al waypoint.

address

string

Indirizzo leggibile o Plus Code. Per maggiori dettagli, visita la pagina https://plus.codes.

LatLng

Rappresentazione JSON
{
  "latitude": number,
  "longitude": number
}
Campi
latitude

number

La latitudine in gradi. Deve essere compreso nell'intervallo [-90,0, +90,0].

longitude

number

La longitudine in gradi. Deve essere compreso nell'intervallo [-180,0, +180,0].

Timestamp

Rappresentazione JSON
{
  "seconds": string,
  "nanos": integer
}
Campi
seconds

string (int64 format)

Rappresenta i secondi dell'ora UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (che corrispondono a un intervallo compreso tra 0001-01-01T00:00:00Z e 9999-12-31T23:59:59Z).

nanos

integer

Frazioni di secondo non negative con risoluzione in nanosecondi. Questo campo è la parte in nanosecondi della durata, non un'alternativa ai secondi. I valori dei secondi negativi con frazioni devono comunque avere valori di nanosecondi non negativi che avanzano nel tempo. Deve essere un valore compreso tra 0 e 999.999.999 inclusi.

RouteTravelMode

Un insieme di valori utilizzati per specificare la modalità di viaggio.

Enum
ROUTE_TRAVEL_MODE_UNSPECIFIED Nessuna modalità di trasporto specificata. Il valore predefinito è DRIVE.
DRIVE Viaggia in auto.
WALK Spostati a piedi. NOTA: i percorsi di WALK sono in versione beta e a volte potrebbero non includere marciapiedi o percorsi pedonali chiari. Devi mostrare questo avviso all'utente per tutti i percorsi a piedi che mostri nella tua app.
BICYCLE Spostamenti in bicicletta.
TRANSIT Viaggia con i mezzi pubblici.

RoutingPreference

Un insieme di valori che specificano i fattori da prendere in considerazione durante il calcolo del percorso.

Enum
ROUTING_PREFERENCE_UNSPECIFIED Nessuna preferenza di routing specificata. Il valore predefinito è ROUTING_PREFERENCE_TRAFFIC_UNAWARE.
ROUTING_PREFERENCE_TRAFFIC_UNAWARE Calcola i percorsi senza tenere conto delle condizioni del traffico in tempo reale. Adatto quando le condizioni del traffico non sono importanti o non sono applicabili. L'utilizzo di questo valore produce la latenza più bassa.
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL

Calcola i percorsi tenendo conto delle condizioni del traffico in tempo reale, se i dati sul traffico sono disponibili. Per TRANSIT, utilizza i dati sul trasporto pubblico in tempo reale, come ritardi e cancellazioni, se disponibili.

Questo valore attiverà il livello Pro e comporterà costi fatturati e latenza più elevati.

Schema di output

ComputeRoutesResponse.

ComputeRoutesResponse

Rappresentazione JSON
{
  "routes": [
    {
      object (Route)
    }
  ]
}
Campi
routes[]

object (Route)

Contiene i percorsi tra l'origine e la destinazione richieste, ordinati dal più consigliato al meno consigliato. Viene restituito un solo percorso, a meno che ComputeRoutesRequest.compute_alternative_routes non sia impostato su true.

Inoltra

Rappresentazione JSON
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  },
  "encodedPolyline": string,
  "retrievalToken": string
}
Campi
distanceMeters

integer

La distanza di percorrenza del percorso, in metri.

duration

string (Duration format)

Il tempo necessario per percorrere il percorso.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

attribution

object (Attribution)

Attribuzione obbligatoria da mostrare con il percorso.

encodedPolyline

string

Una polilinea codificata del percorso. Consulta https://developers.google.com/maps/documentation/utilities/polylinealgorithm

retrievalToken

string

Un token che può essere utilizzato per recuperare questo percorso specifico negli strumenti downstream, come SearchAlongRoute. Valido per 10 minuti.

Durata

Rappresentazione JSON
{
  "seconds": string,
  "nanos": integer
}
Campi
seconds

string (int64 format)

Secondi con segno dell'intervallo di tempo. Deve essere compreso tra -315.576.000.000 e +315.576.000.000 inclusi. Nota: questi limiti vengono calcolati da: 60 sec/min * 60 min/ora * 24 ore/giorno * 365,25 giorni/anno * 10.000 anni

nanos

integer

Frazioni di secondo con segno con risoluzione in nanosecondi dell'intervallo di tempo. Le durate inferiori a un secondo sono rappresentate con un campo seconds pari a 0 e un campo nanos positivo o negativo. Per durate di un secondo o più, un valore diverso da zero per il campo nanos deve avere lo stesso segno del campo seconds. Deve essere compreso tra -999.999.999 e +999.999.999 inclusi.

Attribuzione

Rappresentazione JSON
{
  "title": string,
  "url": string
}
Campi
title

string

Il titolo da visualizzare per l'attribuzione.

url

string

L'URL a cui collegare l'attribuzione.

Annotazioni dello strumento

Le annotazioni degli strumenti vengono inviate ai client MCP per descrivere il rischio di base di un determinato strumento. La maggior parte dei client considera questi suggerimenti non attendibili, ma possono essere utilizzati per decidere quando inviare una richiesta di conferma a un utente.

Oltre alla stringa del titolo, i seguenti suggerimenti booleani sono definiti come segue:

  • readOnlyHint: se true, lo strumento non modifica il suo ambiente. Valore predefinito: false.
  • destructiveHint: se true, lo strumento può eseguire azioni distruttive. Se è false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.
  • idempotentHint: se true, la chiamata ripetuta dello strumento con gli stessi argomenti non avrà alcun effetto aggiuntivo sul suo ambiente. Valore predefinito: false.
  • openWorldHint: se true, lo strumento può interagire con un "open world" di entità esterne. Se false, lo strumento può interagire solo con entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria non lo sarebbe.

Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌