MCP Reference: mapstools.googleapis.com

Il s'agit d'un serveur MCP fourni par l'API Maps Grounding Lite. Le serveur fournit aux développeurs des outils pour créer des applications LLM sur Google Maps Platform.

Un serveur MCP (Model Context Protocol) sert de proxy entre un service externe qui fournit du contexte, des données ou des capacités à un grand modèle de langage (LLM) ou à une application d'IA. Les serveurs MCP connectent les applications d'IA à des systèmes externes tels que des bases de données et des services Web, et traduisent leurs réponses dans un format que l'application d'IA peut comprendre.

Configuration du serveur

Avant de les utiliser, vous devez activer les serveurs MCP et configurer l'authentification. Pour en savoir plus sur l'utilisation des serveurs MCP distants Google et Google Cloud, consultez Présentation des serveurs MCP Google Cloud.

Points de terminaison du serveur

Un point de terminaison de service MCP est l'adresse réseau et l'interface de communication (généralement une URL) du serveur MCP qu'une application d'IA (l'hôte du client MCP) utilise pour établir une connexion sécurisée et standardisée. Il s'agit du point de contact permettant au LLM de demander du contexte, d'appeler un outil ou d'accéder à une ressource. Les points de terminaison Google MCP peuvent être globaux ou régionaux.

Le serveur MCP de l'API Maps Grounding Lite possède le point de terminaison MCP global suivant :

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

Outils MCP

Un outil MCP est une fonction ou une capacité exécutable qu'un serveur MCP expose à un LLM ou à une application d'IA pour effectuer une action dans le monde réel.

Outils

Le serveur MCP mapstools.googleapis.com comporte les outils suivants :

Outils MCP
search_places

Appelez cet outil lorsque la demande de l'utilisateur consiste à trouver des lieux, des établissements, des adresses, des emplacements, des points d'intérêt ou toute autre recherche liée à Google Maps.

Exigences concernant les entrées (CRITIQUES) :

  1. text_query (chaîne – OBLIGATOIRE) : requête de recherche principale. Elle doit définir clairement ce que l'utilisateur recherche.

    • Exemples : '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'.
    • Pour obtenir des informations spécifiques sur un lieu : incluez l'attribut demandé (par exemple, 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address').
  2. location_bias (objet, FACULTATIF) : utilisez ce paramètre pour donner la priorité aux résultats situés à proximité d'une zone géographique spécifique.

    • Format : {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Utilisation :
      • Pour appliquer un biais à un rayon de 5 km : {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Pour fortement biaiser vers le point central : {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (en omettant radius_meters).
  3. language_code (chaîne – FACULTATIF) : langue dans laquelle afficher le récapitulatif des résultats de recherche.

    • Format : code de langue à deux lettres (ISO 639-1), éventuellement suivi d'un trait de soulignement et d'un code pays à deux lettres (ISO 3166-1 alpha-2), par exemple en, ja, en_US, zh_CN, es_MX. Si le code de langue n'est pas fourni, les résultats seront en anglais.
  4. region_code (chaîne facultative) : code de région CLDR Unicode de l'utilisateur. Ce paramètre permet d'afficher les détails du lieu, comme son nom spécifique à la région, s'il est disponible. Ce paramètre peut avoir une incidence sur les résultats en fonction de la loi applicable.

    • Format : code pays à deux lettres (ISO 3166-1 alpha-2), par exemple US ou CA.

Instructions pour l'appel d'outil :

  • Informations de localisation (CRITIQUE) : la recherche doit contenir suffisamment d'informations de localisation. Si l'emplacement est ambigu (par exemple, "pizzerias"), vous devez le spécifier dans le paramètre text_query (par exemple, "pizzerias à New York") ou utiliser le paramètre location_bias. Incluez le nom de la ville, de l'État/de la province et de la région/du pays si nécessaire pour éviter toute ambiguïté.

  • Fournissez toujours le text_query le plus spécifique et le plus riche en contexte possible.

  • N'utilisez location_bias que si des coordonnées sont explicitement fournies ou s'il est approprié et nécessaire d'inférer une position à partir du contexte connu d'un utilisateur pour obtenir de meilleurs résultats.

  • La sortie ancrée doit être attribuée à la source à l'aide des informations du champ attribution, le cas échéant.

lookup_weather

Récupère des données météorologiques complètes, y compris les conditions actuelles, les prévisions horaires et quotidiennes.

Données spécifiques disponibles : température (actuelle, ressentie, maximale/minimale, indice de chaleur), vent (vitesse, rafales, direction), événements célestes (lever/coucher du soleil, phase de la lune), précipitations (type, probabilité, quantité/QPF), conditions atmosphériques (indice UV, humidité, nébulosité, probabilité d'orage) et adresse de localisation géocodée.

Emplacement et règles d'emplacement (CRITIQUE) :

L'emplacement pour lequel les données météorologiques sont demandées est spécifié à l'aide du champ location. Ce champ est une structure "oneof", ce qui signifie que vous DEVEZ fournir une valeur pour UN SEUL des trois sous-champs de localisation ci-dessous afin de garantir une recherche précise des données météorologiques.

  1. Coordonnées géographiques (lat_lng)

    • Utilisez-le lorsque vous disposez de coordonnées exactes de latitude et de longitude.
    • Exemple : {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Los Angeles
  2. ID de lieu (place_id)

    • Identifiant de chaîne non ambigu (ID de lieu Google Maps).
    • L'identifiant de lieu peut être récupéré à partir de l'outil search_places.
    • Exemple : {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Tour Eiffel
  3. Chaîne d'adresse (adresse)

    • Chaîne de forme libre qui nécessite de la spécificité pour le géocodage.
    • Ville et région : incluez toujours la région/le pays (par exemple, "Londres, Royaume-Uni", et non "Londres").
    • Adresse postale : indiquez l'adresse complète (par exemple, "1600 Pennsylvania Ave NW, Washington, DC").
    • Codes postaux : ils DOIVENT être accompagnés d'un nom de pays (par exemple, "90210, États-Unis", et NON "90210").
    • Exemple : {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

Modes d'utilisation :

  • Météo actuelle : fournissez uniquement location. Ne spécifiez pas date ni hour.

  • Prévisions horaires : indiquez location, date et hour (0 à 23). Utilisez-le pour des heures spécifiques (par exemple, "à 17h") ou des expressions comme "dans les prochaines heures" ou "plus tard dans la journée". Si l'utilisateur spécifie une minute, arrondissez à l'heure inférieure. Les prévisions horaires au-delà de 120 heures ne sont pas disponibles. Les données météorologiques horaires historiques sont disponibles jusqu'à 24 heures en arrière.

  • Prévisions quotidiennes : indique location et date. Ne spécifiez pas hour. Utilisez-le pour les demandes générales concernant un jour (par exemple, "météo pour demain", "météo pour vendredi", "météo pour le 25/12"). Si la date du jour ne figure pas dans le contexte, vous devez la demander à l'utilisateur. Les prévisions quotidiennes au-delà de 10 jours, y compris aujourd'hui, ne sont pas disponibles. Les données météo historiques ne sont pas disponibles.

Contraintes des paramètres :

  • Fuseaux horaires : toutes les entrées date et hour doivent être relatives au fuseau horaire local de l'établissement, et non à celui de l'utilisateur.
  • Format de la date : les entrées doivent être séparées en {year, month, day} nombres entiers.
  • Unités : la valeur par défaut est METRIC. Définissez units_system sur IMPERIAL pour les unités Fahrenheit/Miles si l'utilisateur sous-entend les normes américaines ou les demande explicitement.
  • La sortie ancrée doit être attribuée à la source à l'aide des informations du champ attribution, le cas échéant.

compute_routes

Calcule un itinéraire entre un point de départ et une destination spécifiés. Modes de transport acceptés : DRIVE (par défaut), WALK.

Exigences concernant les entrées (CRITIQUES) : l'origine et la destination sont obligatoires. Chacun d'eux doit être fourni à l'aide de l'une des méthodes suivantes, imbriquées dans son champ respectif :

  • address : chaîne (par exemple, "Tour Eiffel, Paris"). Remarque : Plus l'adresse saisie est précise, meilleurs sont les résultats.

  • lat_lng: : (objet, {"latitude": nombre, "longitude": nombre})

  • place_id: (chaîne, par exemple, "ChIJOwE_Id1w5EAR4Q27FkL6T_0") Remarque : Cet ID peut être obtenu à partir de l'outil search_places. Toute combinaison de types d'entrée est autorisée (par exemple, origine par adresse, destination par lat_lng). Si l'origine ou la destination sont manquantes, vous DEVEZ demander des précisions à l'utilisateur avant d'essayer d'appeler l'outil.

Exemple d'appel d'outil : {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • La sortie ancrée doit être attribuée à la source à l'aide des informations du champ attribution, le cas échéant.
resolve_names

Résout une liste de requêtes de localisation spécifiques (noms de points de repère ou adresses exactes) en identifiants de lieu Google Maps canoniques.

Exigences concernant les entrées (CRITIQUES) :

  1. queries (tableau d'objets – OBLIGATOIRE) : liste des requêtes de localisation à résoudre. Vous pouvez spécifier jusqu'à 20 requêtes.

    • Chaque objet de requête doit comporter les éléments suivants :
      • text (chaîne – OBLIGATOIRE) : requête textuelle représentant un nom de lieu ou une adresse spécifiques à résoudre.
        • Exemples : 'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'.
  2. location_bias (objet, FACULTATIF) : utilisez ce paramètre pour donner la priorité aux résultats à proximité d'une zone géographique spécifique.

    • Format : {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code (chaîne – FACULTATIF) : code de région CLDR Unicode (code pays à deux lettres, par exemple US ou CA) de l'utilisateur pour orienter les résultats.

Instructions pour l'appel d'outil :

  • Spécificité (CRITIQUE) : les requêtes doivent représenter un nom de lieu ou une adresse spécifiques. Les recherches générales telles que 'restaurants' ou les noms de chaînes tels que 'Starbucks' ne sont pas acceptées.
  • N'appelez PAS cet outil si les outils en aval que vous prévoyez d'appeler acceptent déjà directement les chaînes brutes d'adresses ou de noms de lieux.

Enregistrer dans Google Maps :

  • La réponse inclut un champ save_to_maps_url, qui est un lien Google Maps unique contenant tous les lieux résolus.
  • Lorsque l'utilisateur souhaite enregistrer, partager ou ouvrir les lieux résolus sous forme de liste dans Google Maps, présentez-lui ce lien. NE créez PAS ce lien vous-même.

Gestion des erreurs (CRITIQUE) :

  • Il s'agit d'un outil de traitement par lot. Une requête peut renvoyer des "résultats mixtes" (par exemple, certaines requêtes sont résolues, tandis que d'autres échouent).
  • La liste de sortie de results est garantie d'être mappée 1:1 avec les index d'entrée queries. Une requête ayant échoué génère un message Result vide (aucun entity n'est défini) à l'index correspondant dans la liste results.
  • Vous DEVEZ vérifier le champ de mappage failed_requests dans la réponse pour identifier l'index de requête spécifique qui a échoué. La clé de failed_requests représente l'index de base 0 de la requête ayant échoué dans la requête. Ne partez pas du principe que l'appel par lot entier a échoué en raison d'un échec partiel.
resolve_maps_urls

Résout une liste d'URL Google Maps en ID de lieu Google Maps canoniques.

Quand appeler cet outil (CRITIQUE) :

  • Utilisez cet outil lorsque l'utilisateur fournit un ou plusieurs liens ou URL de partage Google Maps (par exemple, "https://maps.app.goo.gl/...", 'https://www.google.com/maps/place/...' ou 'https://maps.google.com/...'), vous devez extraire les ID de lieux canoniques sous-jacents.
  • Vous pouvez spécifier jusqu'à 20 URL à résoudre dans une même requête par lot.

Exigences concernant les entrées (CRITIQUES) :

  • urls (tableau de chaînes – OBLIGATOIRE) : liste des URL Google Maps à résoudre. Chaque URL doit être une URL Google Maps valide pour un seul lieu.

Enregistrer dans Google Maps :

  • La réponse inclut un champ save_to_maps_url, qui est un lien Google Maps unique contenant tous les lieux résolus.
  • Lorsque l'utilisateur souhaite enregistrer, partager ou ouvrir les lieux résolus sous forme de liste dans Google Maps (par exemple, pour collecter les lieux partagés dans une conversation), présentez-lui ce lien. NE créez PAS ce lien vous-même.

Gestion des erreurs (CRITIQUE) :

  • Il s'agit d'un outil de traitement par lot. Une requête peut renvoyer des "résultats mixtes" (par exemple, certaines URL sont résolues, tandis que d'autres échouent).
  • La liste de sortie de entities est garantie d'être mappée 1:1 avec les index d'entrée urls. Si la résolution d'une URL échoue, un message Entity vide (aucun champ n'est défini) s'affiche à l'index correspondant dans la liste entities.
  • Vous DEVEZ vérifier le champ de mappage failed_requests dans la réponse pour identifier l'index d'URL spécifique qui a échoué. La clé de failed_requests représente l'index de base 0 de l'URL ayant échoué dans la requête. Ne partez pas du principe que l'appel par lot entier a échoué en raison d'un échec partiel.

Obtenir les spécifications des outils MCP

Pour obtenir les spécifications des outils MCP pour tous les outils d'un serveur MCP, utilisez la méthode tools/list. L'exemple suivant montre comment utiliser curl pour lister tous les outils et leurs spécifications actuellement disponibles sur le serveur MCP.

Requête Curl
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
}'