MCP Reference: mapstools.googleapis.com

É um servidor MCP fornecido pela API Maps Grounding Lite. O servidor oferece ferramentas para os desenvolvedores criarem aplicativos de LLM na Plataforma Google Maps.

Um servidor do Protocolo de Contexto de Modelo (MCP) atua como um proxy entre um serviço externo que fornece contexto, dados ou recursos a um modelo de linguagem grande (LLM) ou aplicativo de IA. Os servidores MCP conectam aplicativos de IA a sistemas externos, como bancos de dados e serviços da Web, traduzindo as respostas em um formato que o aplicativo de IA possa entender.

Configuração do servidor

É necessário ativar os servidores MCP e configurar a autenticação antes de usar. Para mais informações sobre como usar servidores MCP remotos do Google e do Google Cloud, consulte Visão geral dos servidores MCP do Google Cloud.

Endpoints de servidor

Um endpoint de serviço do MCP é o endereço de rede e a interface de comunicação (geralmente um URL) do servidor MCP que um aplicativo de IA (o host do cliente do MCP) usa para estabelecer uma conexão segura e padronizada. É o ponto de contato para o LLM solicitar contexto, chamar uma ferramenta ou acessar um recurso. Os endpoints do Google MCP podem ser globais ou regionais.

O servidor MCP da API Maps Grounding Lite tem o seguinte endpoint global do MCP:

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

Ferramentas do MCP

Uma ferramenta do MCP é uma função ou capacidade executável que um servidor MCP expõe a um LLM ou aplicativo de IA para realizar uma ação no mundo real.

Ferramentas

O servidor MCP mapstools.googleapis.com tem as seguintes ferramentas:

Ferramentas do MCP
search_places

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

Requisitos de entrada (CRÍTICO):

  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 favorecer um raio de 5 km:{"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Para favorecer muito 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), que pode ser seguido 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 de idioma não for fornecido, os resultados serão em inglês.
  4. region_code (string - OPCIONAL): o código regional CLDR Unicode do usuário. Esse parâmetro é usado para mostrar os detalhes do lugar, 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 de duas letras (ISO 3166-1 alfa-2), por exemplo, US, CA.

Instruções para a chamada de ferramenta:

  • Informações de local (CRÍTICO): a pesquisa precisa conter informações de local suficientes. Se o local for ambíguo (por exemplo, apenas "pizzarias"), você precisa especificar o local 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 contextual possível.

  • Use location_bias somente se as coordenadas forem fornecidas explicitamente ou se for adequado e necessário inferir um local do contexto conhecido de um 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.

lookup_weather

Recupera dados meteorológicos abrangentes, incluindo condições atuais e previsões por hora e diárias.

Dados específicos disponíveis:temperatura (atual, sensação térmica, máxima/mínima, índice de calor), vento (velocidade, rajadas, direção), eventos celestes (nascer/pôr do sol, fase da lua), precipitação (tipo, probabilidade, quantidade/QPF), condições atmosféricas (índice UV, umidade, cobertura de nuvens, probabilidade de tempestade) e endereço do local geocodificado.

Local e regras de local (CRÍTICO):

O local para o qual os dados meteorológicos são solicitados é especificado usando o campo location. Esse campo é uma estrutura "oneof", ou seja, você PRECISA fornecer um valor para APENAS UM dos três subcampos de local abaixo para garantir uma pesquisa precisa de dados meteorológicos.

  1. Coordenadas geográficas (lat_lng)

    • Use quando você tiver coordenadas exatas de latitude/longitude.
    • Exemplo: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Los Angeles
  2. ID de lugar (place_id)

    • Um identificador de string não ambíguo (ID de lugar do Google Maps).
    • O place_id pode ser buscado na ferramenta search_places.
    • Exemplo: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Torre Eiffel
  3. String de endereço (address)

    • Uma string de formato livre que exige especificidade para geocodificação.
    • Cidade e região: sempre inclua a região/país (por exemplo, "Londres, Reino Unido", não "Londres").
    • Endereço: informe o endereço completo (por exemplo, "Avenida Brasil, 1234, Rio de Janeiro, RJ").
    • Códigos postais/CEPs: precisam estar acompanhados do nome de um país (por exemplo, "90210, EUA", NÃO "90210").
    • Exemplo: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

Modos de uso:

  • Clima atual:forneça apenas location. Não especifique date e hour.

  • Previsão de hora em hora:forneça location, date e hour (0 a 23). Use para horários específicos (por exemplo, "às 17h") ou termos como "nas próximas horas" ou "mais tarde hoje". Se o usuário especificar minutos, arredonde para baixo até a hora mais próxima. Não é possível fazer previsões de hora em hora para mais de 120 horas a partir de agora. O clima histórico por hora é compatível com até 24 horas atrás.

  • Previsão diária:forneça location e date. Não especifique hour. Use para solicitações gerais de dia (por exemplo, "previsão do tempo para amanhã", "previsão do tempo para sexta-feira", "previsão do tempo para 25/12"). Se a data de hoje não estiver no contexto, esclareça isso com o usuário. Previsão diária para mais de 10 dias, incluindo hoje, não é indisponível. O clima histórico não é compatível.

Restrições de parâmetro:

  • Fusos horários:todas as entradas date e hour precisam ser relativas ao fuso horário local do local, não ao do usuário.
  • Formato de data:as entradas precisam ser separadas em {year, month, day} números inteiros.
  • Unidades:o padrão é METRIC. Defina units_system como IMPERIAL para Fahrenheit/Milhas se o usuário sugerir padrões dos EUA ou pedir explicitamente.
  • A saída embasada precisa ser atribuída à fonte usando as informações do campo attribution, quando disponíveis.

compute_routes

Calcula um trajeto entre uma origem e um destino especificados. Meios de transporte aceitos:CARRO (padrão), A PÉ.

Requisitos de entrada (CRÍTICO): exige origem e destino. Cada um deles precisa ser fornecido usando um dos seguintes métodos, aninhado no respectivo campo:

  • address: (string, por exemplo, "Torre Eiffel, Paris"). Observação: quanto mais granular ou específico for o endereço de entrada, melhores serão os resultados.

  • lat_lng:: (objeto, {"latitude": número, "longitude": número})

  • place_id:: (string, por exemplo, "ChIJOwE_Id1w5EAR4Q27FkL6T_0"). Observação: esse ID pode ser obtido com a ferramenta search_places. Qualquer combinação de tipos de entrada é permitida (por exemplo, origem por endereço, destino por lat_lng). Se a origem ou o destino estiverem faltando, você PRECISA pedir esclarecimentos ao usuário antes de tentar chamar a ferramenta.

Exemplo de chamada de função: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

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

Resolve uma lista em lote de consultas de local específicas (nomes de pontos de referência ou endereços exatos) em IDs de lugar canônicos do Google Maps.

Requisitos de entrada (CRÍTICO):

  1. queries (matriz de objetos – OBRIGATÓRIO): uma lista de consultas de localizações a serem resolvidas. É possível especificar até 20 consultas.

    • Cada objeto de consulta precisa ter:
      • text (string - OBRIGATÓRIO): a consulta de texto que representa um nome de lugar ou endereço específico a ser resolvido.
        • Exemplos:'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'.
  2. location_bias (objeto - OPCIONAL): use para priorizar resultados próximos a uma área geográfica específica.

    • Formato: {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code (string - OPCIONAL): o código regional CLDR Unicode (código do país com duas letras, por exemplo, US, CA) do usuário para influenciar os resultados.

Instruções para a chamada de ferramenta:

  • Especificidade (CRÍTICA): as consultas precisam representar um nome ou endereço de lugar específico. Pesquisas gerais, como 'restaurants', ou nomes de redes, como 'Starbucks', não são aceitas.
  • NÃO chame essa ferramenta se as ferramentas downstream que você planeja invocar já aceitarem strings de endereço ou nome de lugar diretamente.

Salvar no Google Maps:

  • A resposta inclui um campo save_to_maps_url: um único link do Maps com todos os lugares resolvidos.
  • Quando o usuário quiser salvar, compartilhar ou abrir os lugares resolvidos como uma lista no Google Maps, apresente esse link. NÃO crie esse link por conta própria.

Tratamento de erros (CRÍTICO):

  • Essa é uma ferramenta de processamento em lote. Uma solicitação pode retornar "resultados mistos" (por exemplo, algumas consultas são resolvidas com sucesso, enquanto outras falham).
  • A lista de saída de results tem garantia de mapeamento 1:1 com os índices de entrada queries. Uma consulta com falha vai resultar em uma mensagem Result vazia (nenhum entity definido) no índice correspondente na lista results.
  • Você PRECISA verificar o campo de mapa failed_requests na resposta para identificar qual índice de consulta específico falhou. A chave de failed_requests representa o índice com base em zero da consulta com falha na solicitação. Não presuma que toda a chamada em lote falhou por causa de uma falha parcial.
resolve_maps_urls

Resolve uma lista de URLs do Google Maps em IDs de lugares canônicos do Google Maps.

Quando chamar essa ferramenta (CRÍTICO):

  • Use essa ferramenta quando o usuário fornecer um ou mais links ou URLs de compartilhamento do Google Maps (por exemplo, "https://maps.app.goo.gl/...", "https://www.google.com/maps/place/..." ou "https://maps.google.com/..." e você precisa extrair os IDs canônicos de lugar subjacentes.
  • É possível especificar até 20 URLs para resolver em uma única solicitação em lote.

Requisitos de entrada (CRÍTICO):

  • urls (matriz de strings, obrigatório): a lista de URLs do Google Maps a serem resolvidos. Cada URL precisa ser um URL válido de um único lugar do Google Maps.

Salvar no Google Maps:

  • A resposta inclui um campo save_to_maps_url: um único link do Maps com todos os lugares resolvidos.
  • Quando o usuário quiser salvar, compartilhar ou abrir os lugares resolvidos como uma lista no Google Maps (por exemplo, coletando lugares compartilhados em uma conversa), apresente esse link. NÃO crie esse link por conta própria.

Tratamento de erros (CRÍTICO):

  • Essa é uma ferramenta de processamento em lote. Uma solicitação pode retornar "resultados mistos" (por exemplo, alguns URLs são resolvidos com êxito, enquanto outros falham).
  • A lista de saída de entities tem garantia de mapeamento 1:1 com os índices de entrada urls. Uma resolução de URL com falha vai resultar em uma mensagem Entity vazia (nenhum campo definido) no índice correspondente na lista entities.
  • Você PRECISA verificar o campo de mapa failed_requests na resposta para identificar qual índice de URL específico falhou. A chave de failed_requests representa o índice com base em zero do URL com falha na solicitação. Não presuma que toda a chamada em lote falhou por causa de uma falha parcial.

Receber especificações da ferramenta MCP

Para receber as especificações de ferramentas do MCP para todas as ferramentas em um servidor MCP, use o método tools/list. O exemplo a seguir demonstra como usar curl para listar todas as ferramentas e especificações disponíveis no servidor MCP.

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/list",
    "jsonrpc": "2.0",
    "id": 1
}'