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 basées sur Google Maps Platform.

Un serveur Model Context Protocol (MCP) fait office de proxy entre un service externe qui fournit le contexte, les données ou les 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 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 un 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 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 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 liée à Google Maps.

Conditions requises pour 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 hiérarchiser 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 orienter la recherche vers un rayon de 5 km : {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Pour orienter fortement la recherche 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é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 s'affichent en anglais.
  4. region_code (chaîne – FACULTATIF) : code de région CLDR au format Unicode de l'utilisateur. Ce paramètre permet d'afficher les détails du lieu, comme le nom spécifique à la région, le cas échéant. Le 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, CA.

Instructions pour l'appel d'outil :

  • Informations sur le lieu (CRITIQUES) : la recherche doit contenir suffisamment d'informations sur le lieu. Si le lieu est ambigu (par exemple, "pizzerias"), vous devez le spécifier dans 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 lever toute ambiguïté.

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

  • N'utilisez location_bias que si les coordonnées sont explicitement fournies ou si l'inférence d'un lieu à partir du contexte connu d'un utilisateur est appropriée 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é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é, couverture nuageuse, probabilité d'orage) et adresse du lieu géocodé.

Lieu et règles relatives au lieu (CRITIQUES) :

Le lieu 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 lieu ci-dessous afin de garantir une recherche précise des données météorologiques.

  1. Coordonnées géographiques (lat_lng)

    • Utilisez-les 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).
    • L'ID d'emplacement peut être récupéré à partir de l'outil search_places.
    • Exemple : {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Tour Eiffel
  3. Chaîne d'adresse (address)

    • Chaîne de forme 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 : 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 : fournissez location, date et hour (0-23). Utilisez-les 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-la à l'heure la plus proche. Les prévisions horaires au-delà de 120 heures ne sont pas acceptées. L'historique des données météorologiques horaires est disponible jusqu'à 24 heures.

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

Contraintes des paramètres :

  • Fuseaux horaires : toutes les entrées date et hour doivent être relatives au fuseau horaire local du lieu et non à celui de l'utilisateur.
  • Format de date : les entrées doivent être séparées en entiers {year, month, day}.
  • 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 le 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 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.

Conditions requises pour les entrées (CRITIQUES) : nécessite à la fois un point de départ et une destination. Chacun 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 d'entrée est précise, meilleurs seront les résultats.

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

  • 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, point de départ par adresse, destination par lat_lng). Si le point de départ ou la destination est manquant, vous DEVEZ demander des précisions à l'utilisateur avant de tenter 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 lorsqu'elles sont disponibles.

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 répertorier 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
}'