MCP Tools Reference: mapstools.googleapis.com

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):

  1. origin und destination (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 daher search_places NICHT 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. aus search_places.
  2. intermediate_waypoints (Array von Objekten – OPTIONAL): Bis zu 10 Zwischenstopps, die zwischen Start- und Zielort in der angegebenen Reihenfolge angefahren werden sollen. Gleiches Format wie origin. Wird mit TRANSIT nicht unterstützt. Nur die vom Nutzer angeforderten Haltestellen einbeziehen.

  3. travel_mode (Enum – OPTIONAL): DRIVE (Standard), WALK, BICYCLE oder TRANSIT.

  4. 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ür TRANSIT kann 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“).
  5. 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ür WALK oder BICYCLE nicht 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.
  6. 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 in address angegeben bei und legen Sie location_bias auf den gewünschten Bereich fest, anstatt eine Region zu erraten.

  7. compute_alternative_routes (boolesch – OPTIONAL): Setzen Sie diesen Wert nur dann auf true, wenn der Nutzer nach Routenoptionen oder Alternativen fragt. Der Standardwert ist false. Damit wird nur die empfohlene Route zurückgegeben.

  8. include_polyline (boolesch – OPTIONAL): Legen Sie diesen Wert nur dann auf true fest, wenn die Routengeometrie (encoded_polyline) benötigt wird. Die Standardeinstellung ist false.

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 origin und A als destination.

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 routes leer 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 attribution der 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 (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.
}
Felder
origin

object (Waypoint)

Erforderlich. Ausgangswegpunkt.

destination

object (Waypoint)

Erforderlich. Zielwegpunkt.

travelMode

enum (RouteTravelMode)

Optional. Gibt die Mobilitätsform an.

intermediateWaypoints[]

object (Waypoint)

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 travel_mode auf TRANSIT gesetzt ist.

routingPreference

enum (RoutingPreference)

Optional. Bestimmt, wie Verkehrsdaten zur Berechnung der Route verwendet werden. ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL wird nicht unterstützt, wenn travel_mode WALK oder BICYCLE ist. Für TRANSIT werden Echtzeitdaten zu öffentlichen Verkehrsmitteln wie Verspätungen und Ausfälle aktiviert.

locationBias

object (LatLng)

Optional. Ein Ort, auf den die Suchergebnisse ausgerichtet werden sollen, z. B. um mehrdeutige Textabfragen für Wegpunkte aufzulösen.

includePolyline

boolean

Optional. Gibt an, ob die codierte Polylinie in den Antwortrouten enthalten sein soll. Die Standardeinstellung ist false. Wenn der Wert auf true festgelegt ist, wird Route.encoded_polyline zurückgegeben.

computeAlternativeRoutes

boolean

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

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

arrivalTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

Zeitstempel

JSON-Darstellung
{
  "seconds": string,
  "nanos": integer
}
Felder
seconds

string (int64 format)

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

integer

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 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.
}
Felder
Union-Feld location_type. Verschiedene Möglichkeiten, einen Ort darzustellen. Für location_type ist nur einer der folgenden Werte zulässig:
latLng

object (LatLng)

Ein Punkt, der mit geografischen Koordinaten angegeben wird.

placeId

string

Die Orts-ID, die dem Wegpunkt zugeordnet ist.

address

string

Menschenlesbare Adresse oder Plus Code. Weitere Informationen finden Sie unter https://plus.codes.

LatLng

JSON-Darstellung
{
  "latitude": number,
  "longitude": number
}
Felder
latitude

number

Der Breitengrad in Grad. Er muss im Bereich [-90,0, +90,0] liegen.

longitude

number

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 TRANSIT werden Echtzeitdaten zu öffentlichen Verkehrsmitteln wie Verspätungen und Ausfälle verwendet, sofern verfügbar.

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 ROUTING_PREFERENCE_TRAFFIC_UNAWARE zurückgegriffen.

Ausgabeschema

ComputeRoutesResponse.

ComputeRoutesResponse

JSON-Darstellung
{
  "routes": [
    {
      object (Route)
    }
  ]
}
Felder
routes[]

object (Route)

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, ComputeRoutesRequest.compute_alternative_routes ist auf „true“ festgelegt.

Route

JSON-Darstellung
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  },
  "encodedPolyline": string,
  "retrievalToken": string
}
Felder
distanceMeters

integer

Die Länge der Route in Metern.

duration

string (Duration format)

Die Zeit, die für die Route benötigt wird.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit „s“. Beispiel: "3.5s".

attribution

object (Attribution)

Erforderliche Quellenangabe, die mit der Route angezeigt werden soll.

encodedPolyline

string

Eine codierte Polylinie der Route. Weitere Informationen finden Sie unter https://developers.google.com/maps/documentation/utilities/polylinealgorithm.

retrievalToken

string

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

string (int64 format)

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

integer

Vorzeichenbehaftete Sekundenbruchteile mit Nanosekundenauflösung der Zeitspanne. Dauern von weniger als einer Sekunde werden mit einem seconds-Feld mit dem Wert 0 und einem positiven oder negativen nanos-Feld dargestellt. Bei einer Dauer von einer Sekunde oder mehr muss ein Wert ungleich null für das Feld nanos dasselbe Vorzeichen wie das Feld seconds haben. Muss zwischen -999.999.999 und +999.999.999 liegen.

Attribution

JSON-Darstellung
{
  "title": string,
  "url": string
}
Felder
title

string

Der Titel, der für die Attribution angezeigt werden soll.

url

string

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“: ❌