MCP Tools Reference: mapstools.googleapis.com

Herramienta: resolve_maps_urls

Resuelve una lista de URLs de Google Maps en IDs de lugar canónicos de Google Maps.

Cuándo llamar a esta herramienta (CRÍTICO):

  • Usa esta herramienta cuando el usuario proporcione uno o más vínculos o URLs para compartir de Google Maps (p. ej., "https://maps.app.goo.gl/…", "https://www.google.com/maps/place/…" o "https://maps.google.com/…") y necesitas extraer los IDs de lugar canónicos subyacentes.
  • Puedes especificar hasta 20 URLs para resolver en una sola solicitud por lotes.

Requisitos de entrada (CRÍTICOS):

  • urls (matriz de cadenas; OBLIGATORIO): Es la lista de URLs de Google Maps que se deben resolver. Cada URL debe ser una URL de Google Maps válida de un solo lugar.

Manejo de errores (CRÍTICO):

  • Esta es una herramienta de procesamiento por lotes. Una solicitud puede devolver "resultados mixtos" (p.ej., algunas URLs se resuelven correctamente, mientras que otras fallan).
  • Se garantiza que la lista de salida de entities se correlaciona 1:1 con los índices de entrada de urls. Si falla la resolución de una URL, se generará un mensaje Entity vacío (no se establece ningún campo) en su índice correspondiente en la lista de entities.
  • DEBES verificar el campo del mapa failed_requests en la respuesta para identificar qué índice de URL específico falló. La clave de failed_requests representa el índice basado en 0 de la URL fallida en la solicitud. No supongas que falló toda la llamada por lotes debido a una falla parcial.

En el siguiente ejemplo, se muestra cómo usar curl para invocar la herramienta de MCP resolve_maps_urls.

Solicitud de 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": "resolve_maps_urls",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Esquema de entrada

Es el mensaje de solicitud para ResolveMapsUrls.

ResolveMapsUrlsRequest

Representación JSON
{
  "urls": [
    string
  ]
}
Campos
urls[]

string

Obligatorio. Son las URLs de Google Maps que se resolverán. Cada URL debe ser una URL válida de Google Maps, por ejemplo, https://maps.app.goo.gl/..., https://www.google.com/maps/place/... o https://maps.google.com/.... Actualmente, solo se admiten URLs que dirigen a un solo lugar. Puedes especificar hasta 20 URLs.

Esquema de salida

Es el mensaje de respuesta de ResolveMapsUrls.

ResolveMapsUrlsResponse

Representación JSON
{
  "entities": [
    {
      object (Entity)
    }
  ],
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  }
}
Campos
entities[]

object (Entity)

Solo salida. Es la lista de entidades resueltas a partir de las URLs de Google Maps. Se garantiza que se asignará 1:1 con los índices de urls de la solicitud. Un mensaje vacío en el índice i (en el que no se establece ningún entity) indica que no se pudo resolver esa URL. Si la resolución falló, verifica el campo failed_requests para conocer el estado del error.

failedRequests

map (key: integer, value: object (Status))

Solo salida. Mapa que comunica las fallas parciales de las URLs de Google Maps. La clave es el índice de la solicitud fallida en el campo urls. El valor es el estado de error que detalla por qué falló la resolución.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Entidad

Representación JSON
{

  // Union field entity can be only one of the following:
  "place": string
  // End of list of possible types for union field entity.
}
Campos
Campo de unión entity. Es el tipo de entidad resuelto. entity puede ser solo uno de los parámetros siguientes:
place

string

Es el nombre del recurso del lugar resuelto.

FailedRequestsEntry

Representación JSON
{
  "key": integer,
  "value": {
    object (Status)
  }
}
Campos
key

integer

value

object (Status)

Estado

Representación JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Campos
code

integer

El código de estado, que debe ser un valor enum de google.rpc.Code.

message

string

Un mensaje de error dirigido al desarrollador, que debe estar en inglés. Cualquier mensaje de error dirigido al usuario debe localizarse y enviarse al campo google.rpc.Status.details; o el cliente debe localizarlo.

details[]

object

Una lista de mensajes que contienen los detalles del error. Hay un conjunto común de tipos de mensajes para que usen las API.

Un objeto que contiene campos de un tipo arbitrario. Un campo adicional "@type" contiene una URI que identifica el tipo. Ejemplo: { "id": 1234, "@type": "types.example.com/standard/id" }.

Cualquiera

Representación JSON
{
  "typeUrl": string,
  "value": string
}
Campos
typeUrl

string

Identifica el tipo del mensaje serializado de Protobuf con una referencia de URI que consta de un prefijo que termina en una barra y el nombre del tipo completamente calificado.

Ejemplo: type.googleapis.com/google.protobuf.StringValue

Esta cadena debe contener al menos un carácter /, y el contenido después del último / debe ser el nombre completamente calificado del tipo en formato canónico, sin un punto inicial. No escribas un esquema en estas referencias de URI para que los clientes no intenten comunicarse con ellas.

El prefijo es arbitrario, y se espera que las implementaciones de Protobuf simplemente quiten todo lo que se encuentre hasta el último / inclusive para identificar el tipo. type.googleapis.com/ es un prefijo predeterminado común que requieren algunas implementaciones heredadas. Este prefijo no indica el origen del tipo, y no se espera que los URIs que lo contengan respondan a ninguna solicitud.

Todas las cadenas de URL de tipo deben ser referencias de URI legales con la restricción adicional (para el formato de texto) de que el contenido de la referencia debe constar solo de caracteres alfanuméricos, escapes codificados como porcentaje y caracteres del siguiente conjunto (sin incluir las comillas inversas externas): /-.~_!$&()*+,;=. A pesar de que permitimos las codificaciones como porcentaje, las implementaciones no deben decodificarlas para evitar confusiones con los analizadores existentes. Por ejemplo, se debe rechazar type.googleapis.com%2FFoo.

En el diseño original de Any, se consideró la posibilidad de lanzar un servicio de resolución de tipos en estas URLs de tipos, pero Protobuf nunca implementó uno y considera que contactar estas URLs es problemático y un posible problema de seguridad. No intentes comunicarte con URLs de tipo.

value

string (bytes format)

Contiene una serialización de Protobuf del tipo que describe type_url.

String codificada en base64.

Anotaciones de herramientas

Sugerencia destructiva: ❌ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ✅ | Sugerencia de mundo abierto: ❌