MCP Reference: mapstools.googleapis.com

Dies ist ein MCP-Server, der von der Maps Grounding Lite API bereitgestellt wird. Der Server bietet Entwicklern Tools zum Erstellen von LLM-Anwendungen auf der Google Maps Platform.

Ein Model Context Protocol (MCP)-Server 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 (in der Regel eine URL) des MCP-Servers, über die eine KI-Anwendung (der Host für den MCP-Client) eine sichere, standardisierte Verbindung herstellt. Es 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 Maps Grounding Lite API-MCP-Server hat den folgenden globalen MCP-Endpunkt:

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

MCP-Tools

Ein MCP-Tool ist eine Funktion oder ausführbare Funktion, die ein MCP-Server einem LLM oder einer KI-Anwendung zur Ausführung einer Aktion in der realen Welt zur Verfügung stellt.

Tools

Der MCP-Server mapstools.googleapis.com enthält die folgenden Tools:

MCP-Tools
search_places

Rufen Sie dieses Tool auf, wenn der Nutzer nach Orten, Unternehmen, Adressen, Standorten, Sehenswürdigkeiten oder anderen Google Maps-bezogenen Suchanfragen sucht.

Eingabeanforderungen (WICHTIG):

  1. text_query (String – ERFORDERLICH): Die primäre Suchanfrage. Darin muss klar definiert werden, wonach der Nutzer sucht.

    • 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:Fügen Sie das angeforderte Attribut hinzu (z.B. 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address').
  2. location_bias (object – 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:
      • So legen Sie einen Radius von 5 km fest:{"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Starke Gewichtung des Zentralpunkts: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (radius_meters wird ausgelassen).
  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 angezeigt.
  4. region_code (String – OPTIONAL): Der Unicode-CLDR-Regionscode des Nutzers. Mit diesem Parameter werden die Ortsdetails wie der regionsspezifische Ortsname angezeigt, sofern verfügbar. Der Parameter kann sich je nach anwendbarem Recht auf die Ergebnisse auswirken.

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

Anleitung für Toolaufruf:

  • Standortinformationen (WICHTIG): Die Suche muss ausreichend Standortinformationen enthalten. Wenn der Standort nicht eindeutig ist (z.B. nur „Pizzerien“), müssen Sie ihn in text_query angeben (z.B. „Pizzerien in New York“) oder den Parameter location_bias verwenden. Fügen Sie bei Bedarf den Namen der Stadt, des Bundesstaats/der Provinz und der Region/des Landes hinzu, um Mehrdeutigkeiten zu vermeiden.

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

  • Verwenden Sie location_bias nur, wenn Koordinaten explizit angegeben werden oder wenn das Ableiten eines Standorts aus dem bekannten Kontext eines Nutzers angemessen und für bessere Ergebnisse erforderlich ist.

  • 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 spezifische Daten:Temperatur (aktuell, gefühlte Temperatur, Höchst-/Tiefsttemperatur, Hitzewarnindex), Wind (Geschwindigkeit, Böen, Richtung), Himmelsereignisse (Sonnenaufgang/Sonnenuntergang, Mondphase), Niederschlag (Art, Wahrscheinlichkeit, Menge/QPF), atmosphärische Bedingungen (UV-Index, Luftfeuchtigkeit, Bewölkung, Gewitterwahrscheinlichkeit) und geocodierte Ortsadresse.

Standort und Standortregeln (WICHTIG):

Der Ort, für den Wetterdaten angefordert werden, wird mit dem Feld location angegeben. Dieses Feld ist eine „oneof“-Struktur. Das bedeutet, dass Sie für die genaue Suche nach Wetterdaten NUR einen Wert für eines der drei Unterfelder für den Standort unten angeben MÜSSEN.

  1. Geografische Koordinaten (lat_lng)

    • Verwenden Sie diese Option, wenn Sie genaue Breiten- und Längengradkoordinaten erhalten.
    • 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 mit dem 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.
    • Stadt und Region: Geben Sie immer die Region/das Land an, z.B. „London, Vereinigtes Königreich“ statt „London“.
    • Adresse: Geben Sie die vollständige Adresse an (z.B. „1600 Pennsylvania Ave NW, Washington, DC“).
    • Postleitzahlen: MÜSSEN von einem Ländernamen begleitet werden (z.B. „90210, USA“, NICHT „90210“).
    • Beispiel: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

Verwendungsmodi:

  • 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 sie für bestimmte Uhrzeiten (z.B. „um 17:00 Uhr“) oder Begriffe wie „in den nächsten Stunden“ oder „später heute“. Wenn der Nutzer eine Minute angibt, runde auf die nächste volle Stunde ab. Stündliche Vorhersagen, die mehr als 120 Stunden in der Zukunft liegen, werden nicht unterstützt. Historische stündliche Wetterdaten werden bis zu 24 Stunden in der Vergangenheit unterstützt.

  • Tagesvorhersage:Gib location und date an. Geben Sie hour nicht an. Für allgemeine Tagesanfragen (z. B. „Wetter für morgen“, „Wetter am Freitag“, „Wetter am 25.12.“). 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 des heutigen Tages, werden nicht unterstützt. Vergangene Wetterdaten werden nicht unterstützt.

Parameterbeschränkungen:

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

compute_routes

Berechnet eine Route zwischen einem angegebenen Start- und Zielort. Unterstützte Mobilitätsformen:DRIVE (Standard), WALK.

Eingabeanforderungen (WICHTIG): Erfordert sowohl Abreiseort als auch Zielort. Jede muss mit einer der folgenden Methoden im jeweiligen Feld angegeben werden:

  • address: (String, z. B. „Eiffelturm, Paris“) Hinweis: Je detaillierter oder spezifischer die eingegebene Adresse ist, desto besser sind die Ergebnisse.

  • lat_lng: (Objekt, {„latitude“: number, „longitude“: number})

  • place_id:: (String, z.B. „ChIJOwE_Id1w5EAR4Q27FkL6T_0“) Hinweis: Diese ID kann mit dem Tool „search_places“ abgerufen werden. Jede Kombination von Eingabetypen ist zulässig (z.B. Ursprung nach Adresse, Ziel nach lat_lng). Wenn entweder der Start- oder der Zielort fehlt, MÜSSEN Sie den Nutzer um eine Klarstellung bitten, bevor Sie versuchen, das Tool aufzurufen.

Beispiel für Tool-Aufruf: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

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

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

Eingabeanforderungen (WICHTIG):

  1. queries (Array von Objekten – ERFORDERLICH): Eine Liste der Standortanfragen, 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 zum Auflösen darstellt.
        • Beispiele: 'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'.
  2. location_bias (object – 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 gewichten.

Anleitung für Toolaufruf:

  • Spezifität (KRITISCH): Anfragen müssen einen bestimmten Ortsnamen oder eine bestimmte Adresse enthalten. Allgemeine Suchanfragen wie 'restaurants' oder Namen von Ketten 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 mit allen erfolgreich aufgelösten Orten.
  • Wenn der Nutzer die aufgelösten Orte als Liste in Google Maps speichern, freigeben oder öffnen möchte, präsentieren Sie ihm diesen Link. Erstellen Sie diesen Link NICHT selbst.

Fehlerbehandlung (KRITISCH):

  • Es handelt sich um ein Tool für die Batchverarbeitung. Eine Anfrage kann „gemischte Ergebnisse“ zurückgeben, z.B. wenn einige Anfragen erfolgreich aufgelöst werden, andere jedoch fehlschlagen.
  • Die Ausgabeliste von results wird garantiert 1:1 den Eingabeindexen von queries zugeordnet. Bei einer fehlgeschlagenen Abfrage wird am entsprechenden Index in der Liste results eine leere Result-Nachricht (kein entity festgelegt) zurückgegeben.
  • Sie MÜSSEN das Feld failed_requests in der Antwort prüfen, um herauszufinden, welcher bestimmte Abfrageindex fehlgeschlagen ist. Der Schlüssel von failed_requests stellt den 0-basierten Index der fehlgeschlagenen Anfrage in der Anfrage dar. Gehen Sie nicht davon aus, dass der gesamte Batchaufruf aufgrund eines teilweisen Fehlers 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 muss (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 in einer einzelnen Batchanfrage bis zu 20 URLs angeben, die aufgelöst werden sollen.

Eingabeanforderungen (WICHTIG):

  • urls (Array von Strings – ERFORDERLICH): Die Liste der Google Maps-URLs, die aufgelöst werden sollen. 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 mit allen erfolgreich aufgelösten Orten.
  • 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äsentieren Sie ihm diesen Link. Erstellen Sie diesen Link NICHT selbst.

Fehlerbehandlung (KRITISCH):

  • Es handelt sich um ein Tool für die Batchverarbeitung. Bei einer Anfrage können „gemischte Ergebnisse“ zurückgegeben werden, z.B. wenn einige URLs erfolgreich aufgelöst werden, während andere fehlschlagen.
  • Die Ausgabeliste von entities wird garantiert 1:1 den Eingabeindexen von urls zugeordnet. Wenn eine URL nicht aufgelöst werden kann, wird an der entsprechenden Stelle in der Liste entities eine leere Entity-Nachricht zurückgegeben (keine Felder festgelegt).
  • Sie MÜSSEN das Feld failed_requests in der Antwort prüfen, um herauszufinden, bei welchem spezifischen URL-Index ein Fehler aufgetreten ist. Der Schlüssel von failed_requests steht für den 0-basierten Index der fehlgeschlagenen URL in der Anfrage. Gehen Sie nicht davon aus, dass der gesamte Batchaufruf aufgrund eines teilweisen Fehlers fehlgeschlagen ist.

Spezifikationen für MCP-Tools abrufen

Wenn Sie die MCP-Tool-Spezifikationen für alle Tools auf einem MCP-Server abrufen möchten, verwenden Sie die Methode tools/list. 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
}'