MCP Reference: mapstools.googleapis.com

É um servidor do MCP fornecido pela API Maps Grounding Lite. Ele 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

É preciso 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 do 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 do 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 fortemente 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 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 com duas letras (ISO 3166-1 alpha-2), por exemplo, US, CA.

Instruções para chamada de função:

  • 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ê precisará 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 apropriado 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 ser 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:informe apenas location. Não especifique date e hour.

  • Previsão por hora:forneça location, date e hour (0 a 23). Use para horários específicos (por exemplo, "às 17h") ou termos como "próximas horas" ou "mais tarde hoje". Se o usuário especificar minutos, arredonde para a hora mais próxima. Não é possível fazer previsões por hora com mais de 120 horas de antecedência. É possível consultar o clima por hora das últimas 24 horas.

  • Previsão diária:forneça location e date. Não especifique hour. Use para solicitações gerais de dias (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. Não há suporte para clima histórico.

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 na ferramenta search_places. É permitida qualquer combinação de tipos de entrada (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 Unicode CLDR (código de país de duas letras, por exemplo, US, CA) do usuário para influenciar os resultados.

Instruções para chamada de função:

  • 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.

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 êxito, 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 devido a 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.

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 mapeamento 1:1 com os índices de entrada urls. Uma resolução de URL com falha resulta 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 devido a uma falha parcial.

Receber especificações da ferramenta MCP

Para receber as especificações de todas as ferramentas em um servidor do 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
}'