MCP Tools Reference: mapstools.googleapis.com

Strumento: compute_routes

Calcola un itinerario di viaggio tra un punto di partenza e una destinazione specificati. Modalità di viaggio supportate:AUTO (impostazione predefinita), A PIEDI.

Requisiti di input (CRITICI): richiede sia l'origine che la destinazione. Ciascuno deve essere fornito utilizzando uno dei seguenti metodi, nidificati nel rispettivo campo:

  • address: (stringa, ad es. "Torre Eiffel, Parigi"). Nota: più l'indirizzo inserito è granulare o specifico, migliori saranno i risultati.

  • lat_lng: (oggetto, {"latitude": number, "longitude": number})

  • place_id: (stringa, ad es. "ChIJOwE_Id1w5EAR4Q27FkL6T_0") Nota: questo ID può essere ottenuto dallo strumento search_places. È consentita qualsiasi combinazione di tipi di input (ad es. origine per indirizzo, destinazione per lat_lng). Se manca l'origine o la destinazione, devi chiedere chiarimenti all'utente prima di tentare di chiamare lo strumento.

Esempio di chiamata dello strumento: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • L'output fondato deve essere attribuito alla fonte utilizzando le informazioni del campo attribution, se disponibili.

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)
}
Campi
origin

object (Waypoint)

Obbligatorio. Tappa di origine.

destination

object (Waypoint)

Obbligatorio. Waypoint di destinazione.

travelMode

enum (RouteTravelMode)

Facoltativo. Specifica la modalità di trasporto.

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

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 Viaggia a piedi. NOTA: i percorsi WALK sono in versione beta e a volte potrebbero non avere marciapiedi o percorsi pedonali ben definiti. Devi mostrare questo avviso all'utente per tutte le camminate che mostri nella tua app.

Schema di output

ComputeRoutesResponse.

ComputeRoutesResponse

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

object (Route)

Contiene i percorsi tra il luogo di partenza e la destinazione richiesti. Al momento viene restituito un solo itinerario.

Itinerario

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

integer

La distanza di viaggio del percorso, in metri.

duration

string (Duration format)

Il tempo necessario per percorrere l'itinerario.

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 l'itinerario.

Durata

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

string (int64 format)

Secondi firmati dell'intervallo di tempo. Deve essere compreso tra -315.576.000.000 e +315.576.000.000 inclusi. Nota: questi limiti vengono calcolati in base a: 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 collegarsi per l'attribuzione.

Annotazioni dello strumento

Le annotazioni dello strumento 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 un prompt di conferma a un utente.

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

  • readOnlyHint: se è true, lo strumento non modifica il suo ambiente. Valore predefinito: false.
  • destructiveHint: se è true, lo strumento può eseguire azioni distruttive. Se il valore è false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.
  • idempotentHint: se è true, chiamare ripetutamente lo 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 le entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria non lo sarebbe.

Suggerimento distruttivo: ❌ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ✅ | Suggerimento open world: ❌