MCP Tools Reference: mapstools.googleapis.com

Ferramenta: search_places

Chame essa ferramenta quando o usuário solicitar a localização de lugares, empresas, endereços, locais, pontos de interesse ou qualquer outra pesquisa relacionada ao Google Maps.

Requisitos de entrada (CRÍTICOS):

  1. text_query (string - OBRIGATÓRIO): a consulta de pesquisa principal. Isso precisa definir claramente o que o usuário está procurando.

    • Exemplos: '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'.
    • Para detalhes específicos do lugar: inclua o atributo solicitado (por exemplo, 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address').
  2. location_bias (objeto - OPCIONAL): use para priorizar resultados próximos a uma área geográfica específica.

    • Formato: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Uso:
      • Para definir um raio de 5 km: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Para priorizar o ponto central: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (omitindo radius_meters).
  3. language_code (string - OPCIONAL): o idioma em que o resumo dos resultados da pesquisa será mostrado.

    • Formato: um código de idioma de duas letras (ISO 639-1), seguido opcionalmente por um sublinhado e um código de país de duas letras (ISO 3166-1 alfa-2), por exemplo, en, ja, en_US, zh_CN, es_MX. Se o código do idioma não for fornecido, os resultados serão em inglês.
  4. region_code (string - OPCIONAL): o código de região CLDR Unicode do usuário. Esse parâmetro é usado para mostrar os Place Details, como o nome específico da região, se disponível. O parâmetro pode afetar os resultados com base na legislação aplicável.

    • Formato: um código de país com duas letras (ISO 3166-1 alfa-2), por exemplo, US, CA.

Instruções para chamada de ferramenta:

  • Informações de localização (CRÍTICO): a pesquisa precisa conter informações de localização suficientes. Se o local for ambíguo (por exemplo, apenas "pizzarias"), é obrigatório especificá-lo no text_query (por exemplo, "pizzarias em Nova York") ou usar o parâmetro location_bias. Inclua o nome da cidade, do estado/província e da região/país, se necessário, para evitar ambiguidade.

  • Sempre forneça o text_query mais específico e rico em contexto possível.

  • Use location_bias apenas se as coordenadas forem fornecidas explicitamente ou se for apropriado e necessário inferir um local com base no contexto conhecido do usuário para ter resultados melhores.

  • A saída embasada precisa ser atribuída à fonte usando as informações do campo attribution, quando disponíveis.

O exemplo de código abaixo mostra como usar curl para chamar a ferramenta MCP search_places.

Solicitação 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
}'

Esquema de entrada

Mensagem de solicitação para SearchText.

SearchTextRequest

Representação JSON
{
  "textQuery": string,
  "languageCode": string,
  "regionCode": string,
  "pageSize": integer,
  "includeExtendedDetails": boolean,

  // 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.
}
Campos
textQuery

string

Obrigatório. A consulta de texto.

languageCode

string

Opcional. O idioma em que o resumo será retornado. Se o código do idioma não for especificado ou reconhecido, o resumo será retornado em inglês.

Por exemplo, "en" para inglês.

Lista atual de idiomas disponíveis: https://developers.google.com/maps/faq#languagesupport.

regionCode

string

Opcional. O código de país/região Unicode (CLDR) do local de origem da solicitação. Esse parâmetro é usado para mostrar os Place Details, como o nome específico da região, se disponível. O parâmetro pode afetar os resultados com base na legislação aplicável.

Por exemplo, "US" para Estados Unidos.

Para mais informações, consulte https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html.

No momento, não há suporte para códigos de região de três dígitos.

pageSize

integer

Opcional. O número máximo de lugares a serem retornados, até 5. O serviço pode retornar um valor inferior a este. O valor padrão é cinco.

includeExtendedDetails

boolean

Opcional. Inclui detalhes estendidos do lugar na resposta.

Defina esse campo como true quando a solicitação do usuário exigir insights qualitativos detalhados, dinâmicas em tempo real ou atributos de entidade especializados: - Avaliações qualitativas, sentimento do cliente e feedback. - Ofertas específicas, como itens do cardápio, pratos, especialidades, bebidas ou destaques da empresa. - Atmosfera, decoração de interiores, estética, ambiente ou clima qualitativos. - Dados em tempo real e especificações de instalações especializadas, políticas/dicas para visitantes, tempos de espera.

Deixe false (padrão) para pesquisas de descoberta padrão (por exemplo, culinárias, tipos de loja), pesquisas de local/endereço, dados de contato, horário de funcionamento e metadados/comodidades padrão.

Ativar esse campo vai aumentar a latência.

Campo de união _location_bias.

_location_bias pode ser apenas de um dos tipos a seguir:

locationBias

object (LocationBias)

Uma região opcional para influenciar os resultados da pesquisa. Se um local explícito estiver em text_query, ele será usado para influenciar os resultados da pesquisa em vez desse campo.

LocationBias

Representação JSON
{
  "circle": {
    object (Circle)
  }
}
Campos
circle

object (Circle)

Opcional. Um círculo definido pelo ponto central e pelo raio. O radius_meters é opcional. Se não for definido, os resultados serão priorizados em relação ao ponto central.

Círculo

Representação 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.
}
Campos
center

object (LatLng)

Obrigatório. O ponto central do círculo.

Campo de união _radius_meters.

_radius_meters pode ser apenas de um dos tipos a seguir:

radiusMeters

number

O raio do círculo em metros. O raio precisa estar dentro de 50.000 metros.

LatLng

Representação JSON
{
  "latitude": number,
  "longitude": number
}
Campos
latitude

number

A latitude em graus. Precisa estar no intervalo [-90,0, +90,0].

longitude

number

A longitude em graus. Precisa estar no intervalo [-180,0, +180,0].

Esquema de saída

Mensagem de resposta para SearchText.

SearchTextResponse

Representação JSON
{
  "places": [
    {
      object (PlaceView)
    }
  ],
  "summary": string,
  "contentToken": string
}
Campos
places[]

object (PlaceView)

Apenas saída. A lista de lugares mencionados no resumo.

summary

string

Apenas saída. Um resumo em linguagem natural dos resultados da pesquisa. O resumo pode conter citações com base em zero, como "[0]", "[1]", "[2]" etc. Essas citações são mapeadas para os lugares correspondentes no campo places.

contentToken

string

Apenas saída. Um token criptografado que encapsula o contexto da pesquisa e pode ser transmitido para serviços de renderização visual do Google Maps, SDKs ou o Maps Agentic UI Toolkit (A2UI) para mostrar componentes interativos da interface para os resultados da pesquisa retornados.

PlaceView

Representação 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.
}
Campos
place

string

O nome do recurso do lugar, no formato "places/{id}".

id

string

O ID de lugar do lugar subjacente.

googleMapsLinks

object (GoogleMapsLinks)

Links para acionar diferentes ações do Google Maps.

attribution

object (Attribution)

Atribuição obrigatória para mostrar com o lugar.

Campo de união _location.

_location pode ser apenas de um dos tipos a seguir:

location

object (LatLng)

A posição desse lugar.

LatLng

Representação JSON
{
  "latitude": number,
  "longitude": number
}
Campos
latitude

number

A latitude em graus. Precisa estar no intervalo [-90,0, +90,0].

longitude

number

A longitude em graus. Precisa estar no intervalo [-180,0, +180,0].

Representação JSON
{
  "directionsUrl": string,
  "placeUrl": string,
  "writeAReviewUrl": string,
  "reviewsUrl": string,
  "photosUrl": string
}
Campos
directionsUrl

string

Um link para mostrar as rotas até o lugar. O link preenche apenas o local de destino e usa o meio de transporte padrão DRIVE.

placeUrl

string

Um link para mostrar esse lugar.

writeAReviewUrl

string

Um link para escrever uma avaliação sobre este lugar no Google Maps.

reviewsUrl

string

Um link para mostrar as avaliações desse lugar no Google Maps.

photosUrl

string

Um link para mostrar fotos desse lugar no Google Maps.

Atribuição

Representação JSON
{
  "title": string,
  "url": string
}
Campos
title

string

O título a ser exibido para a atribuição.

url

string

O URL para vincular à atribuição.

Anotações de ferramentas

As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando um pedido de confirmação pode ser enviado a um usuário.

Além da string de título, as seguintes dicas booleanas são definidas:

  • readOnlyHint: se for verdadeiro, a ferramenta não modifica o ambiente. (Padrão: falso).
  • destructiveHint: se for verdadeiro, a ferramenta poderá realizar ações destrutivas. Se for falso, a ferramenta só poderá realizar ações aditivas. Padrão: verdadeiro.
  • idempotentHint: se for verdadeiro, chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente. (Padrão: falso).
  • openWorldHint: se for verdadeiro, a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for falso, a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.

Dica destrutiva: ❌ | Dica idempotente: ❌ | Dica somente leitura: ✅ | Dica de jogos de mundo aberto: ❌