MCP Reference: mapstools.googleapis.com

Il s'agit d'un serveur MCP fourni par Maps Experience Agent Tools. 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

Vous devez activer les serveurs MCP et configurer l'authentification avant de les utiliser. Pour en savoir plus sur l'utilisation des serveurs MCP distants Google et Google Cloud, consultez la 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 MCP Google peuvent être globaux ou régionaux.

Le serveur MCP Maps Experience Agent Tools 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 dispose des outils suivants :

Outils MCP
search_places

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

Exigences d'entrée (CRITIQUES) :

  1. text_query (chaîne, OBLIGATOIRE) : requête de recherche principale. Il 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 détails sur un lieu spécifique : 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 prioriser les résultats à proximité d'une zone géographique spécifique.

    • Format : {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Utilisation :
      • Pour privilégier un rayon de 5 km : {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Pour privilégier fortement 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ésumé 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, FACULTATIF) : code de région CLDR Unicode de l'utilisateur. Ce paramètre permet d'afficher les détails du lieu, comme le nom du lieu spécifique à la région, s'il est disponible. Le paramètre peut affecter les résultats en fonction de la législation applicable.

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

Instructions pour l'appel d'outil :

  • Informations de localisation (CRITIQUE) : la recherche doit contenir suffisamment d'informations de localisation. Si le lieu 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 la ville, l'État/la province et la région/le pays si nécessaire pour lever 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 les coordonnées sont explicitement fournies ou si déduire un emplacement à partir du contexte connu d'un utilisateur est approprié et nécessaire pour obtenir de meilleurs résultats.

  • La sortie ancrée doit être attribuée à la source à l'aide des informations du champ attribution, lorsqu'elles sont disponibles.

lookup_weather

Récupère des données météo complètes, y compris les conditions actuelles, ainsi que 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é, couverture nuageuse, probabilité d'orage) et adresse géocodée.

Location & Location Rules (CRITICAL):

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 de latitude/longitude exactes.
    • 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).
    • Le place_id peut être récupéré à l'aide de l'outil search_places.
    • Exemple : {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Tour Eiffel
  3. Chaîne d'adresse (address)

    • Chaîne au format libre qui nécessite une 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 : indiquez 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 termes tels que "dans les prochaines heures" ou "plus tard aujourd'hui". Si l'utilisateur spécifie une minute, arrondissez à l'heure la plus proche. Les prévisions horaires au-delà de 120 heures à partir de maintenant ne sont pas prises en charge. Les données météorologiques horaires passées sont disponibles jusqu'à 24 heures en arrière.

  • Prévisions quotidiennes : fournissez location et date. Ne spécifiez pas hour. Utilisez-le pour les requêtes générales sur un jour (par exemple, "météo de demain", "météo de vendredi", "météo du 25/12"). Si la date du jour n'est pas dans le contexte, vous devez la clarifier avec l'utilisateur. Les prévisions quotidiennes au-delà de 10 jours, y compris aujourd'hui, ne sont pas prises en charge. Les données météorologiques historiques ne sont pas disponibles.

Contraintes de paramètre :

  • Fuseaux horaires : toutes les entrées date et hour doivent être exprimées dans le fuseau horaire local de l'établissement, et non dans celui de l'utilisateur.
  • Format de date : les entrées doivent être séparées en {year, month, day} entiers.
  • Unités : la valeur par défaut est METRIC. Définissez units_system sur IMPERIAL pour les degrés Fahrenheit/miles si l'utilisateur implique 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, lorsqu'elles sont disponibles.

compute_routes

Calcule les itinéraires entre un point de départ et une destination, éventuellement en passant par des arrêts intermédiaires. Renvoie la distance et la durée de chaque itinéraire.

Exigences d'entrée (CRITIQUES) :

  1. origin et destination (objets - OBLIGATOIRE) : chacun doit être fourni en utilisant exactement l'un des éléments suivants :

    • address (chaîne, par exemple 'Eiffel Tower, Paris'). Les lieux nommés, les points de repère et les établissements sont résolus directement. N'appelez donc PAS search_places d'abord juste pour géocoder un point de cheminement. Incluez toute ville, région ou pays mentionné par l'utilisateur.
    • lat_lng (objet, {"latitude": number, "longitude": number}).
    • place_id (chaîne, par exemple 'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), par exemple à partir de search_places.
  2. intermediate_waypoints (tableau d'objets, FACULTATIF) : jusqu'à 10 étapes à parcourir, dans l'ordre, entre le point de départ et la destination. Même format que origin. Non compatible avec TRANSIT. N'incluez que les arrêts demandés par l'utilisateur.

  3. travel_mode (énumération, FACULTATIF) : DRIVE (par défaut), WALK, BICYCLE ou TRANSIT.

  4. Timing (FACULTATIF - définissez au maximum UN timing) : codes temporels RFC 3339 avec un décalage UTC, par exemple '2026-09-19T08:00:00-07:00'. La valeur par défaut est "départ immédiat". Pour TRANSIT, l'heure peut être définie jusqu'à sept jours dans le passé ou jusqu'à 100 jours dans le futur. Pour les autres modes, l'heure peut être définie jusqu'à 365 jours dans le futur et ne doit pas être dans le passé.

    • departure_time : à utiliser lorsque l'utilisateur indique l'heure de son départ (par exemple, "demain à 8h").
    • arrival_time : à utiliser lorsque l'utilisateur indique l'heure à laquelle il doit arriver (par exemple, "être là à 9h").
  5. routing_preference (enum - FACULTATIF) :

    • ROUTING_PREFERENCE_TRAFFIC_UNAWARE (par défaut) : ignore le trafic en temps réel, les incidents et les fermetures. Latence la plus faible.
    • ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL : utilise les conditions de circulation en temps réel lorsqu'elles sont disponibles. Non compatible avec WALK ou BICYCLE. Définissez cette valeur UNIQUEMENT lorsque l'utilisateur pose une question sur le trafic, les embouteillages ou l'heure d'arrivée prévue ajustée en fonction du trafic. Cela entraîne des coûts et une latence plus élevés.
  6. location_bias (objet, FACULTATIF) : {"latitude": number, "longitude": number} utilisé pour lever l'ambiguïté des noms de lieux dans les adresses des points de cheminement. Si un nom est ambigu (par exemple, "Springfield") et que l'utilisateur n'a pas indiqué de région, conservez le nom tel qu'il est indiqué dans address et définissez location_bias sur la zone prévue au lieu de deviner une région.

  7. compute_alternative_routes (booléen, FACULTATIF) : défini sur true uniquement lorsque l'utilisateur demande des options ou des alternatives d'itinéraire. La valeur par défaut est false, qui ne renvoie que l'itinéraire recommandé.

  8. include_polyline (booléen, FACULTATIF) : définissez cette option sur true uniquement lorsque la géométrie de l'itinéraire (encoded_polyline) est nécessaire. La valeur par défaut est false.

Instructions pour l'appel d'outil :

  • Si le point de départ ou la destination sont manquants, vous DEVEZ demander des précisions à l'utilisateur avant d'appeler l'outil.
  • Pour les questions du type "À quelle distance se trouve A de B ?", utilisez B comme origin et A comme destination.

Exemple d'appel d'outil : {"origin":{"address":"Tour Eiffel"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Musée du Louvre"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}

Instructions for Response:

  • Lorsque des itinéraires alternatifs sont demandés, ils sont classés du plus au moins recommandé.
  • Si routes est vide, indiquez à l'utilisateur qu'aucun itinéraire n'a été trouvé. Ne devinez pas un itinéraire.
  • N'indiquez que les faits renvoyés par l'outil. N'inventez PAS d'itinéraires détaillés, de lignes de transports en commun, de stations, de quais ni de correspondances.
  • La sortie ancrée doit être attribuée à la source à l'aide du champ attribution de chaque itinéraire, lorsqu'il est disponible.
resolve_names

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

Exigences d'entrée (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 :
      • text (chaîne, OBLIGATOIRE) : requête textuelle représentant le nom ou l'adresse d'un lieu spécifique à 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 prioriser les 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 au format Unicode (code pays à deux lettres, par exemple US, CA) de l'utilisateur pour biaiser 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 comme 'Starbucks' ne sont pas acceptés.
  • N'appelez PAS cet outil si les outils en aval que vous prévoyez d'appeler acceptent déjà directement les chaînes d'adresse ou de nom de lieu brutes.

Enregistrer dans Google Maps

  • La réponse inclut un champ save_to_maps_url : un seul lien Google Maps contenant tous les lieux résolus avec succès.
  • 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 exceptions (CRITIQUE) :

  • Il s'agit d'un outil de traitement par lot. Une requête peut renvoyer des "résultats mitigés" (par exemple, certaines requêtes aboutissent, tandis que d'autres échouent).
  • La liste de sortie de results est garantie de correspondre à 1:1 avec les indices queries d'entrée. 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é. Ne partez pas du principe que l'intégralité de l'appel par lot 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/...") et que vous devez extraire les ID de lieu canoniques sous-jacents.
  • Vous pouvez spécifier jusqu'à 20 URL à résoudre dans une même requête par lot.

Exigences d'entrée (CRITIQUES) :

  • urls (tableau de chaînes, OBLIGATOIRE) : liste des URL Google Maps à résoudre. Chaque URL doit être une URL Google Maps valide et ne correspondre qu'à un seul lieu.

Enregistrer dans Google Maps

  • La réponse inclut un champ save_to_maps_url : un seul lien Google Maps contenant tous les lieux résolus avec succès.
  • 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 exceptions (CRITIQUE) :

  • Il s'agit d'un outil de traitement par lot. Une requête peut renvoyer des "résultats mitigés" (par exemple, certaines URL sont résolues, mais d'autres échouent).
  • La liste de sortie de entities est garantie de correspondre à 1:1 avec les indices urls d'entrée. L'échec de la résolution d'une URL entraîne un message Entity vide (aucun champ n'est défini) à 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'intégralité de l'appel par lot a échoué en raison d'un échec partiel.

Obtenir les spécifications de l'outil 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
}'