MCP Tools Reference: mapstools.googleapis.com

Outil : 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 à 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.

L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP search_places.

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/call",
  "params": {
    "name": "search_places",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Schéma d'entrée

Message de requête pour SearchText.

SearchTextRequest

Représentation JSON
{
  "textQuery": string,
  "languageCode": string,
  "regionCode": string,

  // Union field _location_bias can be only one of the following:
  "locationBias": {
    object (LocationBias)
  }
  // End of list of possible types for union field _location_bias.
}
Champs
textQuery

string

Obligatoire. Requête textuelle.

languageCode

string

Facultatif. Langue dans laquelle la réponse doit être fournie. Si le code de langue n'est pas spécifié ou n'est pas reconnu, le résumé en anglais sera renvoyé.

Par exemple, "en" pour l'anglais.

Liste actuelle des langues disponibles : https://developers.google.com/maps/faq#languagesupport.

regionCode

string

Facultatif. Code Unicode (CLDR) du pays ou de la région d'où provient la demande. 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.

Par exemple, "US" pour les États-Unis.

Pour en savoir plus, consultez https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html.

Notez que les codes régionaux à trois chiffres ne sont pas acceptés pour le moment.

Champ d'union _location_bias.

_location_bias ne peut être qu'un des éléments suivants :

locationBias

object (LocationBias)

Région facultative permettant de biaiser les résultats de recherche. Si une position explicite figure dans text_query, elle sera utilisée pour orienter les résultats de recherche au lieu de ce champ.

LocationBias

Représentation JSON
{
  "circle": {
    object (Circle)
  }
}
Champs
circle

object (Circle)

Facultatif. Cercle défini par un point central et un rayon. radius_meters est facultatif. Si ce paramètre n'est pas défini, les résultats seront biaisés vers le point central.

Cercle

Représentation JSON
{
  "center": {
    object (LatLng)
  },

  // Union field _radius_meters can be only one of the following:
  "radiusMeters": number
  // End of list of possible types for union field _radius_meters.
}
Champs
center

object (LatLng)

Obligatoire. Point central du cercle.

Champ d'union _radius_meters.

_radius_meters ne peut être qu'un des éléments suivants :

radiusMeters

number

Rayon du cercle en mètres. Le rayon doit être inférieur ou égal à 50 000 mètres.

LatLng

Représentation JSON
{
  "latitude": number,
  "longitude": number
}
Champs
latitude

number

Latitude en degrés. Elle doit être comprise dans la plage [-90.0, +90.0].

longitude

number

Longitude en degrés. Elle doit être comprise dans la plage [-180.0, +180.0].

Schéma de sortie

Message de réponse pour SearchText.

SearchTextResponse

Représentation JSON
{
  "places": [
    {
      object (PlaceView)
    }
  ],
  "summary": string
}
Champs
places[]

object (PlaceView)

Uniquement en sortie. Liste des lieux mentionnés dans le résumé.

summary

string

Uniquement en sortie. Un résumé en langage naturel des résultats de recherche. Le résumé peut contenir des citations commençant par zéro, comme "[0]", "[1]", "[2]", etc. Ces citations correspondent aux emplacements correspondants dans le champ places.

PlaceView

Représentation JSON
{
  "place": string,
  "id": string,
  "googleMapsLinks": {
    object (GoogleMapsLinks)
  },
  "attribution": {
    object (Attribution)
  },

  // Union field _location can be only one of the following:
  "location": {
    object (LatLng)
  }
  // End of list of possible types for union field _location.
}
Champs
place

string

Nom de ressource du lieu sous-jacent, au format "places/{id}".

id

string

ID du lieu sous-jacent.

googleMapsLinks

object (GoogleMapsLinks)

Liens permettant de déclencher différentes actions Google Maps.

attribution

object (Attribution)

Mention obligatoire à afficher avec le lieu.

Champ d'union _location.

_location ne peut être qu'un des éléments suivants :

location

object (LatLng)

Position de ce lieu.

LatLng

Représentation JSON
{
  "latitude": number,
  "longitude": number
}
Champs
latitude

number

Latitude en degrés. Elle doit être comprise dans la plage [-90.0, +90.0].

longitude

number

Longitude en degrés. Elle doit être comprise dans la plage [-180.0, +180.0].

Représentation JSON
{
  "directionsUrl": string,
  "placeUrl": string,
  "writeAReviewUrl": string,
  "reviewsUrl": string,
  "photosUrl": string
}
Champs
directionsUrl

string

Lien permettant d'afficher l'itinéraire vers le lieu. Le lien ne renseigne que le lieu de destination et utilise le mode de déplacement par défaut DRIVE.

placeUrl

string

Lien permettant d'afficher ce lieu.

writeAReviewUrl

string

Un lien permettant de rédiger un avis sur ce lieu dans Google Maps.

reviewsUrl

string

Un lien permettant d'afficher les avis sur ce lieu dans Google Maps.

photosUrl

string

Un lien permettant d'afficher les photos de ce lieu sur Google Maps.

Attribution

Représentation JSON
{
  "title": string,
  "url": string
}
Champs
title

string

Titre à afficher pour l'attribution.

url

string

URL à associer pour l'attribution.

Annotations d'outils

Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.

En plus de la chaîne de titre, les indications booléennes suivantes sont définies comme suit :

  • readOnlyHint : si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".
  • destructiveHint : si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".
  • idempotentHint : si la valeur est "true", appeler l'outil à plusieurs reprises avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".
  • openWorldHint : si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.

Indication destructive : ❌ | Indication idempotente : ❌ | Indication en lecture seule : ✅ | Indication Open World : ❌