Tool: compute_routes
Berechnet Reiserouten zwischen einem Start- und einem Zielort, optional mit Zwischenstopps. Gibt die Entfernung und Dauer für jede Route zurück.
Eingabeanforderungen (WICHTIG):
originunddestination(Objekte – ERFORDERLICH): Jedes muss mit genau einer der folgenden Optionen angegeben werden:address(String, z. B.'Eiffel Tower, Paris'). Benannte Orte, Sehenswürdigkeiten und Unternehmen werden direkt aufgelöst. Rufen Sie dahersearch_placesNICHT zuerst auf, nur um einen Wegpunkt zu geocodieren. Berücksichtige alle Städte, Regionen oder Länder, die der Nutzer erwähnt hat.lat_lng(Objekt,{"latitude": number, "longitude": number}).place_id(String, z. B.'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), z. B. aussearch_places.
intermediate_waypoints(Array von Objekten – OPTIONAL): Bis zu 10 Zwischenstopps, die zwischen Start- und Zielort in der angegebenen Reihenfolge angefahren werden sollen. Gleiches Format wieorigin. Wird mitTRANSITnicht unterstützt. Nur die vom Nutzer angeforderten Haltestellen einbeziehen.travel_mode(Enum – OPTIONAL):DRIVE(Standard),WALK,BICYCLEoderTRANSIT.Zeitpunkt (OPTIONAL – höchstens EINEN festlegen): RFC 3339-Zeitstempel mit UTC-Abweichung, z.B.
'2026-09-19T08:00:00-07:00'. Die Standardeinstellung ist „Jetzt abfahren“. FürTRANSITkann die Zeit bis zu 7 Tage in der Vergangenheit oder bis zu 100 Tage in der Zukunft liegen. In anderen Modi kann die Zeit bis zu 365 Tage in der Zukunft liegen und darf nicht in der Vergangenheit liegen.departure_time: Verwenden Sie diesen Wert, wenn der Nutzer angibt, wann er abreist (z.B. „morgen um 8:00 Uhr“).arrival_time: Verwenden Sie diesen Parameter, wenn der Nutzer angibt, wann er ankommen muss (z.B. „bis 9:00 Uhr da sein“).
routing_preference(enum – OPTIONAL):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(Standard): Live-Verkehrsinformationen, Verkehrsbehinderungen und Sperrungen werden ignoriert. Niedrigste Latenz.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: Verwendet die aktuelle Verkehrslage, sofern verfügbar. Wird fürWALKoderBICYCLEnicht unterstützt. Setze dies NUR, wenn der Nutzer nach dem Verkehr, Staus oder einer verkehrsabhängigen voraussichtlichen Ankunftszeit fragt. Es verursacht höhere Kosten und Latenz.
location_bias(Objekt – OPTIONAL):{"latitude": number, "longitude": number}, um Ortsnamen in Wegpunktadressen eindeutig zu machen. Wenn ein Name mehrdeutig ist (z.B. „Springfield“) und der Nutzer keine Region angegeben hat, behalten Sie den Namen wie inaddressangegeben bei und legen Sielocation_biasauf den gewünschten Bereich fest, anstatt eine Region zu erraten.compute_alternative_routes(boolesch – OPTIONAL): Setzen Sie diesen Wert nur dann auftrue, wenn der Nutzer nach Routenoptionen oder Alternativen fragt. Der Standardwert istfalse. Damit wird nur die empfohlene Route zurückgegeben.include_polyline(boolesch – OPTIONAL): Legen Sie diesen Wert nur dann auftruefest, wenn die Routengeometrie (encoded_polyline) benötigt wird. Die Standardeinstellung istfalse.
Anleitung für den Toolaufruf:
- Wenn der Start- oder Zielort fehlt, MÜSSEN Sie den Nutzer um Klärung bitten, bevor Sie das Tool aufrufen.
- Verwenden Sie bei Fragen wie „Wie weit ist A von B entfernt?“ B als
originund A alsdestination.
Beispiel für einen Toolaufruf: {"origin":{"address":"Eiffelturm"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Louvre"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}
Anleitung für die Antwort:
- Wenn alternative Routen angefordert werden, werden die Routen von der am meisten empfohlenen bis zur am wenigsten empfohlenen Route sortiert.
- Wenn
routesleer ist, teile dem Nutzer mit, dass keine Route gefunden wurde. Raten Sie nicht, welche Route die richtige ist. - Nenne nur Fakten, die vom Tool zurückgegeben werden. Erfinden Sie KEINE detaillierten Routenführungen, Linien, Haltestellen, Bahnsteige oder Umstiege.
- Die fundierte Ausgabe muss der Quelle zugeordnet werden. Verwenden Sie dazu das Feld
attributionder jeweiligen Route, falls verfügbar.
Das folgende Codebeispiel zeigt, wie Sie mit curl das MCP-Tool compute_routes aufrufen.
| Curl-Anfrage |
|---|
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 }' |
Eingabeschema
ComputeRoutesRequest.
ComputeRoutesRequest
| JSON-Darstellung |
|---|
{ "origin": { object ( |
| Felder | |
|---|---|
origin |
Erforderlich. Ausgangswegpunkt. |
destination |
Erforderlich. Zielwegpunkt. |
travelMode |
Optional. Gibt die Mobilitätsform an. |
intermediateWaypoints[] |
Optional. Zwischenstopps zwischen Start- und Zielort, die in der angegebenen Reihenfolge passiert werden sollen. Es werden maximal 10 Zwischenwegpunkte unterstützt. Zwischenwegpunkte werden nicht unterstützt, wenn |
routingPreference |
Optional. Bestimmt, wie Verkehrsdaten zur Berechnung der Route verwendet werden. |
locationBias |
Optional. Ein Ort, auf den die Suchergebnisse ausgerichtet werden sollen, z. B. um mehrdeutige Textabfragen für Wegpunkte aufzulösen. |
includePolyline |
Optional. Gibt an, ob die codierte Polylinie in den Antwortrouten enthalten sein soll. Die Standardeinstellung ist |
computeAlternativeRoutes |
Optional. Gibt an, ob zusätzlich zur empfohlenen Route alternative Routen berechnet werden sollen. Der Standardwert ist „false“. In diesem Fall wird nur die empfohlene Route zurückgegeben. Wenn „true“ festgelegt ist, werden bis zu alle verfügbaren Routen zurückgegeben. Alternativen sind jedoch möglicherweise nicht für jede Anfrage verfügbar. |
Union-Feld timing. Gibt an, wann die Abfahrt am Startpunkt oder die Ankunft am letzten Wegpunkt erfolgen soll. Wenn keine Angabe gemacht wird, wird standardmäßig die aktuelle Uhrzeit verwendet. Bei TRANSIT darf die Zeit höchstens 7 Tage in der Vergangenheit und höchstens 100 Tage in der Zukunft liegen. Bei anderen Mobilitätsformen darf die Zeit nicht in der Vergangenheit liegen und höchstens 365 Tage in der Zukunft. Für timing ist nur einer der folgenden Werte zulässig: |
|
departureTime |
Optional. Gibt an, dass die Route anhand der Abfahrtszeit berechnet werden soll. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
arrivalTime |
Optional. Gibt an, dass die Route anhand der Ankunftszeit berechnet werden soll. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
Zeitstempel
| JSON-Darstellung |
|---|
{ "seconds": string, "nanos": integer } |
| Felder | |
|---|---|
seconds |
Stellt Sekunden der UTC-Zeit seit Unix-Epoche 1970-01-01T00:00:00Z dar. Muss zwischen -62135596800 und 253402300799 (einschließlich) liegen (entspricht 0001-01-01T00:00:00Z bis 9999-12-31T23:59:59Z). |
nanos |
Nicht negative Sekundenbruchteile Nanosekunden-Auflösung. Dieses Feld ist der Nanosekunden-Teil der Dauer, keine Alternative zu Sekunden. Negative Sekundenwerte mit Bruchteilen müssen weiterhin nicht negative Nano-Werte haben, die zeitlich vorwärts gezählt werden. Muss zwischen 0 und 999.999.999 (einschließlich) liegen. |
Zwischenstopp
| JSON-Darstellung |
|---|
{ // Union field |
| Felder | |
|---|---|
Union-Feld location_type. Verschiedene Möglichkeiten, einen Ort darzustellen. Für location_type ist nur einer der folgenden Werte zulässig: |
|
latLng |
Ein Punkt, der mit geografischen Koordinaten angegeben wird. |
placeId |
Die Orts-ID, die dem Wegpunkt zugeordnet ist. |
address |
Menschenlesbare Adresse oder Plus Code. Weitere Informationen finden Sie unter https://plus.codes. |
LatLng
| JSON-Darstellung |
|---|
{ "latitude": number, "longitude": number } |
| Felder | |
|---|---|
latitude |
Der Breitengrad in Grad. Er muss im Bereich [-90,0, +90,0] liegen. |
longitude |
Der Längengrad in Grad. Er muss im Bereich [-180,0, +180,0] liegen. |
RouteTravelMode
Eine Reihe von Werten, mit denen die Mobilitätsform angegeben wird.
| Enums | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
Keine Mobilitätsform angegeben. Die Standardeinstellung ist DRIVE. |
DRIVE |
Fahrt mit dem Pkw |
WALK |
Zu Fuß gehen. HINWEIS: WALK-Routen befinden sich in der Betaphase. Es kann vorkommen, dass Gehwege oder Fußgängerwege fehlen. Sie müssen diese Warnung für alle Fußgängerrouten anzeigen, die in Ihrer App angezeigt werden. |
BICYCLE |
Fahrrad |
TRANSIT |
Öffentliche Verkehrsmittel nutzen |
RoutingPreference
Eine Reihe von Werten, die Faktoren angeben, die bei der Berechnung der Route berücksichtigt werden sollen.
| Enums | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
Keine Routing-Einstellung angegeben. Die Standardeinstellung ist ROUTING_PREFERENCE_TRAFFIC_UNAWARE. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
Berechnet Routen, ohne die aktuelle Verkehrslage zu berücksichtigen. Geeignet, wenn die Verkehrslage keine Rolle spielt oder nicht zutrifft. Die Verwendung dieses Werts führt zur niedrigsten Latenz. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
Berechnet Routen unter Berücksichtigung der aktuellen Verkehrslage, sofern Verkehrsdaten verfügbar sind. Für Dieser Wert löst die Pro-Stufe aus und führt zu höheren Abrechnungskosten und einer höheren Latenz. Diese Funktion ist nur für Kunden auf der Zulassungsliste verfügbar. Wenn die Anfrage nicht auf der Zulassungsliste steht, wird auf |
Ausgabeschema
ComputeRoutesResponse.
ComputeRoutesResponse
| JSON-Darstellung |
|---|
{
"routes": [
{
object ( |
| Felder | |
|---|---|
routes[] |
Enthält Routen zwischen dem angeforderten Start- und Zielort, sortiert von der am meisten empfohlenen bis zur am wenigsten empfohlenen Route. Es wird nur eine Route zurückgegeben, es sei denn, |
Route
| JSON-Darstellung |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| Felder | |
|---|---|
distanceMeters |
Die Länge der Route in Metern. |
duration |
Die Zeit, die für die Route benötigt wird. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit „ |
attribution |
Erforderliche Quellenangabe, die mit der Route angezeigt werden soll. |
encodedPolyline |
Eine codierte Polylinie der Route. Weitere Informationen finden Sie unter https://developers.google.com/maps/documentation/utilities/polylinealgorithm. |
retrievalToken |
Ein Token, mit dem diese bestimmte Route in nachgelagerten Tools wie SearchAlongRoute abgerufen werden kann. 10 Minuten lang gültig. |
Dauer
| JSON-Darstellung |
|---|
{ "seconds": string, "nanos": integer } |
| Felder | |
|---|---|
seconds |
Vorzeichenbehaftete Sekunden der Zeitspanne. Muss zwischen -315.576.000.000 und +315.576.000.000 (einschließlich) liegen. Hinweis: Diese Grenzen werden so berechnet: 60 Sek./Min. * 60 Min./Std. * 24 Std./Tag * 365,25 Tage/Jahr * 10.000 Jahre |
nanos |
Vorzeichenbehaftete Sekundenbruchteile mit Nanosekundenauflösung der Zeitspanne. Dauern von weniger als einer Sekunde werden mit einem |
Attribution
| JSON-Darstellung |
|---|
{ "title": string, "url": string } |
| Felder | |
|---|---|
title |
Der Titel, der für die Attribution angezeigt werden soll. |
url |
Die URL, auf die für die Attribution verlinkt werden soll. |
Tool-Annotationen
Tool-Anmerkungen werden an MCP-Clients gesendet, um das grundlegende Risiko eines bestimmten Tools zu beschreiben. Die meisten Clients behandeln diese Hinweise als nicht vertrauenswürdig, sie können aber verwendet werden, um zu entscheiden, wann eine Bestätigungsaufforderung an einen Nutzer gesendet werden soll.
Zusätzlich zum Titelstring werden die folgenden booleschen Hinweise definiert:
readOnlyHint: Wenn „true“, ändert das Tool seine Umgebung nicht. Standardeinstellung: false.destructiveHint: Wenn „true“, kann das Tool destruktive Aktionen ausführen. Wenn „false“, kann das Tool nur additive Aktionen ausführen. Standardeinstellung: true.idempotentHint: Wenn „true“, hat das wiederholte Aufrufen des Tools mit denselben Argumenten keine zusätzlichen Auswirkungen auf die Umgebung. Standardeinstellung: false.openWorldHint: Wenn „true“, kann das Tool mit einer „offenen Welt“ externer Entitäten interagieren. Wenn „false“, kann das Tool nur mit internen Entitäten interagieren. Ein Tool für die Websuche wäre beispielsweise ein Open-World-Tool, ein Tool für gemerkte Informationen dagegen nicht.
Destruktiver Hinweis: ❌ | Idempotenter Hinweis: ❌ | Lesezugriff-Hinweis: ✅ | Hinweis „Open World“: ❌