MCP Reference: mapstools.googleapis.com

Dies ist ein MCP-Server, der von Maps Experience Agent Tools bereitgestellt wird. Der Server bietet Tools für Entwickler, mit denen sie LLM-Anwendungen auf der Google Maps Platform erstellen können.

Ein MCP-Server (Model Context Protocol) fungiert als Proxy zwischen einem externen Dienst, der einem Large Language Model (LLM) oder einer KI-Anwendung Kontext, Daten oder Funktionen bereitstellt. MCP-Server verbinden KI-Anwendungen mit externen Systemen wie Datenbanken und Webdiensten und übersetzen deren Antworten in ein Format, das die KI-Anwendung versteht.

Server einrichten

Sie müssen MCP-Server aktivieren und die Authentifizierung einrichten, bevor Sie sie verwenden können. Weitere Informationen zur Verwendung von Remote-MCP-Servern von Google und Google Cloud finden Sie unter Google Cloud-MCP-Server – Übersicht.

Serverendpunkte

Ein MCP-Dienstendpunkt ist die Netzwerkadresse und Kommunikationsschnittstelle (normalerweise eine URL) des MCP-Servers, die eine KI-Anwendung (der Host für den MCP-Client) verwendet, um eine sichere, standardisierte Verbindung herzustellen. Er ist der Kontaktpunkt für das LLM, um Kontext anzufordern, ein Tool aufzurufen oder auf eine Ressource zuzugreifen. Google MCP-Endpunkte können global oder regional sein.

Der MCP-Server für Maps Experience Agent Tools hat den folgenden globalen MCP-Endpunkt:

  • https://mapstools.googleapis.com/mcp

MCP-Tools

Ein MCP-Tool ist eine Funktion oder ausführbare Fähigkeit, die ein MCP-Server einem LLM oder einer KI-Anwendung zur Verfügung stellt, um eine Aktion in der realen Welt auszuführen.

Tools

Der MCP-Server mapstools.googleapis.com bietet die folgenden Tools:

MCP-Tools
search_places

Rufen Sie dieses Tool auf, wenn die Anfrage des Nutzers darin besteht, Orte, Unternehmen, Adressen, Standorte, POIs oder andere Google Maps-bezogene Suchanfragen zu finden.

Eingabeanforderungen (WICHTIG):

  1. text_query (String – ERFORDERLICH): Die primäre Suchanfrage. Hier muss klar definiert werden, wonach die Nutzer suchen.

    • Beispiele: 'restaurants in New York', 'coffee shops near Golden Gate Park', 'SF MoMA', '1600 Amphitheatre Pkwy, Mountain View, CA, USA', 'pets friendly parks in Manhattan, New York', 'date night restaurants in Chicago', 'accessible public libraries in Los Angeles'.
    • Für bestimmte Ortsdetails: Geben Sie das gewünschte Attribut an (z.B. 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address').
  2. location_bias (Objekt – OPTIONAL): Damit können Sie Ergebnisse in der Nähe eines bestimmten geografischen Bereichs priorisieren.

    • Format: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Verwendung:
      • Umkreis von 5 km bevorzugen: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Starke Gewichtung auf den Mittelpunkt: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (radius_meters wird weggelassen).
  3. language_code (String – OPTIONAL): Die Sprache, in der die Zusammenfassung der Suchergebnisse angezeigt werden soll.

    • Format: Ein zweistelliger Sprachcode (ISO 639-1), optional gefolgt von einem Unterstrich und einem zweistelligen Ländercode (ISO 3166-1 alpha-2), z.B. en, ja, en_US, zh_CN, es_MX. Wenn der Sprachcode nicht angegeben ist, werden die Ergebnisse auf Englisch ausgegeben.
  4. region_code (String – OPTIONAL): Der Unicode-CLDR-Regionscode des Nutzers. Mit diesem Parameter werden die Ortsdetails angezeigt, z. B. der regionsspezifische Ortsname, falls verfügbar. Der Parameter kann sich je nach geltendem Recht auf die Ergebnisse auswirken.

    • Format: Ein zweistelliger Ländercode (ISO 3166-1 alpha-2), z.B. US, CA.

Anleitung für den Toolaufruf:

  • Standortinformationen (KRITISCH): Die Suche muss ausreichende Standortinformationen enthalten. Wenn der Ort mehrdeutig ist (z.B. nur „Pizzerien“), müssen Sie ihn in der text_query angeben (z.B. „Pizzerien in New York“) oder den Parameter location_bias verwenden. Geben Sie bei Bedarf den Namen der Stadt, des Bundeslandes/der Provinz und der Region/des Landes an, um Mehrdeutigkeiten zu vermeiden.

  • Geben Sie immer die spezifischste und kontextreichste text_query an, die möglich ist.

  • Verwenden Sie location_bias nur, wenn Koordinaten explizit angegeben sind oder wenn es angemessen und notwendig ist, einen Standort aus dem bekannten Kontext eines Nutzers abzuleiten, um bessere Ergebnisse zu erzielen.

  • Die fundierte Ausgabe muss der Quelle zugeordnet werden. Verwenden Sie dazu die Informationen aus dem Feld attribution, sofern verfügbar.

lookup_weather

Ruft umfassende Wetterdaten ab, einschließlich aktueller Bedingungen, stündlicher und täglicher Vorhersagen.

Verfügbare Daten: Temperatur (aktuell, gefühlt, Höchst-/Tiefstwert, Hitzeindex), Wind (Geschwindigkeit, Böen, Richtung), Himmelsereignisse (Sonnenaufgang/-untergang, Mondphase), Niederschlag (Art, Wahrscheinlichkeit, Menge/QPF), atmosphärische Bedingungen (UV-Index, Luftfeuchtigkeit, Bewölkung, Gewitterwahrscheinlichkeit) und geocodierte Standortadresse.

Standort und standortbezogene Regeln (WICHTIG):

Der Ort, für den Wetterdaten angefordert werden, wird im Feld location angegeben. Dieses Feld ist eine „oneof“-Struktur. Das bedeutet, dass Sie NUR für EINES der drei Standortunterfelder unten einen Wert angeben MÜSSEN, damit die Wetterdaten korrekt abgerufen werden können.

  1. Geografische Koordinaten (lat_lng)

    • Verwenden Sie ihn, wenn Sie genaue Breiten- und Längengradkoordinaten haben.
    • Beispiel: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Los Angeles
  2. Orts-ID (place_id)

    • Eine eindeutige String-ID (Google Maps-Orts-ID).
    • Die „place_id“ kann über das Tool „search_places“ abgerufen werden.
    • Beispiel: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Eiffelturm
  3. Adressstring (address)

    • Ein frei definierbarer String, der für die Geocodierung spezifisch sein muss.
    • Ort und Region: Geben Sie immer die Region/das Land an (z.B. „London, Vereinigtes Königreich“, nicht „London“).
    • Adresse: Geben Sie die vollständige Adresse an (z.B. „1600 Pennsylvania Ave NW, Washington, DC“).
    • Postleitzahlen: MÜSSEN zusammen mit einem Ländernamen angegeben werden (z.B. „90210, USA“, NICHT „90210“).
    • Beispiel: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

Nutzungsmodi:

  • Aktuelles Wetter: Gib nur location an. Geben Sie date und hour nicht an.

  • Stündliche Vorhersage: Geben Sie location, date und hour (0–23) an. Verwenden Sie diese Option für bestimmte Uhrzeiten (z.B. „um 17:00 Uhr“) oder Begriffe wie „in den nächsten Stunden“ oder „später am Tag“. Wenn der Nutzer die Minute angibt, wird auf die nächste Stunde abgerundet. Stündliche Vorhersagen für mehr als 120 Stunden im Voraus werden nicht unterstützt. Historische stündliche Wetterdaten werden bis zu 24 Stunden in der Vergangenheit unterstützt.

  • Tagesprognose: Geben Sie location und date an. Geben Sie hour nicht an. Verwenden Sie diese Option für allgemeine Tagesanfragen (z. B. „Wetter für morgen“, „Wetter am Freitag“, „Wetter am 25. Dezember“). Wenn das heutige Datum nicht im Kontext enthalten ist, sollten Sie es mit dem Nutzer klären. Tagesprognosen für mehr als 10 Tage, einschließlich heute, werden nicht unterstützt. Historische Wetterdaten werden nicht unterstützt.

Parametereinschränkungen:

  • Zeitzonen: Alle date- und hour-Eingaben müssen sich auf die lokale Zeitzone des Standorts beziehen, nicht auf die Zeitzone des Nutzers.
  • Datumsformat: Die Eingaben müssen in {year, month, day} Ganzzahlen aufgeteilt werden.
  • Einheiten: Der Standardwert ist METRIC. Setze units_system auf IMPERIAL für Fahrenheit/Meilen, wenn der Nutzer US-Standards impliziert oder explizit danach fragt.
  • Die fundierte Ausgabe muss der Quelle zugeordnet werden. Verwenden Sie dazu die Informationen aus dem Feld attribution, sofern verfügbar.

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, behalte den Namen wie in address angegeben bei und setze location_bias auf den beabsichtigten Bereich, 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.
resolve_names

Löst eine Batchliste mit bestimmten Standortabfragen (Namen von Sehenswürdigkeiten oder genaue Adressen) in kanonische Google Maps-Orts-IDs auf.

Eingabeanforderungen (WICHTIG):

  1. queries (Array von Objekten – ERFORDERLICH): Eine Liste von Standortabfragen, die aufgelöst werden sollen. Sie können bis zu 20 Abfragen angeben.

    • Jedes Abfrageobjekt muss Folgendes enthalten:
      • text (String – ERFORDERLICH): Die Textanfrage, die einen bestimmten Ortsnamen oder eine bestimmte Adresse darstellt, die aufgelöst werden soll.
        • Beispiele: 'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'
  2. location_bias (Objekt – OPTIONAL): Damit können Sie Ergebnisse in der Nähe eines bestimmten geografischen Bereichs priorisieren.

    • Format: {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code (String – OPTIONAL): Der Unicode-CLDR-Regionscode (zweistelliger Ländercode, z.B. US, CA) des Nutzers, um die Ergebnisse zu beeinflussen.

Anleitung für den Toolaufruf:

  • Spezifität (WICHTIG): Suchanfragen müssen einen bestimmten Ortsnamen oder eine bestimmte Adresse enthalten. Allgemeine Suchanfragen wie 'restaurants' oder Kettennamen wie 'Starbucks' werden nicht unterstützt.
  • Rufen Sie dieses Tool NICHT auf, wenn die nachgelagerten Tools, die Sie aufrufen möchten, bereits Rohadressen oder Ortsnamenstrings direkt akzeptieren.

In Google Maps speichern:

  • Die Antwort enthält das Feld save_to_maps_url, eine einzelne Google Maps-URL, die alle erfolgreich aufgelösten Orte enthält.
  • Wenn der Nutzer die aufgelösten Orte als Liste in Google Maps speichern, teilen oder öffnen möchte, präsentieren Sie ihm diesen Link. Erstellen Sie diesen Link NICHT selbst.

Fehlerbehandlung (KRITISCH):

  • Dies ist ein Tool für die Batchverarbeitung. Eine Anfrage kann „gemischte Ergebnisse“ zurückgeben (z.B. werden einige Abfragen erfolgreich aufgelöst, während andere fehlschlagen).
  • Die Ausgabeliste von results wird garantiert 1:1 den Eingabe-queries-Indizes zugeordnet. Eine fehlgeschlagene Abfrage führt zu einer leeren Result-Nachricht (es wird kein entity festgelegt) am entsprechenden Index in der results-Liste.
  • Sie MÜSSEN das Zuordnungsfeld failed_requests in der Antwort prüfen, um festzustellen, welcher Abfrageindex fehlgeschlagen ist. Der Schlüssel von failed_requests stellt den 0-basierten Index der fehlgeschlagenen Abfrage in der Anfrage dar. Gehen Sie nicht davon aus, dass der gesamte Batchaufruf aufgrund eines Teilfehlers fehlgeschlagen ist.
resolve_maps_urls

Löst eine Liste von Google Maps-URLs in kanonische Google Maps-Orts-IDs auf.

Wann dieses Tool aufgerufen werden sollte (WICHTIG):

  • Verwenden Sie dieses Tool, wenn der Nutzer einen oder mehrere Google Maps-Freigabelinks oder ‑URLs angibt (z.B. „https://maps.app.goo.gl/...“, „https://www.google.com/maps/place/...“ oder „https://maps.google.com/...“) und Sie müssen die zugrunde liegenden kanonischen Orts-IDs extrahieren.
  • Sie können bis zu 20 URLs angeben, die in einer einzelnen Batchanfrage aufgelöst werden sollen.

Eingabeanforderungen (WICHTIG):

  • urls (Array von Strings – ERFORDERLICH): Die Liste der aufzulösenden Google Maps-URLs. Jede URL muss eine gültige Google Maps-URL für einen einzelnen Ort sein.

In Google Maps speichern:

  • Die Antwort enthält das Feld save_to_maps_url, eine einzelne Google Maps-URL, die alle erfolgreich aufgelösten Orte enthält.
  • Wenn der Nutzer die aufgelösten Orte als Liste in Google Maps speichern, teilen oder öffnen möchte (z.B. um in einer Unterhaltung geteilte Orte zu sammeln), präsentiere ihm diesen Link. Erstellen Sie diesen Link NICHT selbst.

Fehlerbehandlung (KRITISCH):

  • Dies ist ein Tool für die Batchverarbeitung. Eine Anfrage kann „gemischte Ergebnisse“ zurückgeben (z.B. werden einige URLs erfolgreich aufgelöst, andere nicht).
  • Die Ausgabeliste von entities wird garantiert 1:1 den Eingabe-urls-Indizes zugeordnet. Eine fehlgeschlagene URL-Auflösung führt zu einer leeren Entity-Nachricht (keine Felder festgelegt) am entsprechenden Index in der entities-Liste.
  • Sie MÜSSEN das Kartenfeld failed_requests in der Antwort prüfen, um festzustellen, bei welchem URL-Index der Fehler aufgetreten ist. Der Schlüssel von failed_requests stellt den 0-basierten Index der fehlgeschlagenen URL in der Anfrage dar. Gehen Sie nicht davon aus, dass der gesamte Batchaufruf aufgrund eines Teilfehlers fehlgeschlagen ist.

Spezifikationen für MCP-Tools abrufen

Mit der Methode tools/list können Sie die MCP-Toolspezifikationen für alle Tools auf einem MCP-Server abrufen. Im folgenden Beispiel wird gezeigt, wie Sie mit curl alle Tools und ihre Spezifikationen auflisten, die derzeit auf dem MCP-Server verfügbar sind.

Curl-Anfrage
curl --location 'https://mapstools.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'