Инструмент: resolve_maps_urls
Преобразует список URL Google Карт в канонические идентификаторы мест Google Карт.
Когда вызывать этот инструмент (КРИТИЧНО):
- Используйте этот инструмент, когда пользователь предоставляет одну или несколько ссылок или URL для доступа к Google Картам (например, https://maps.app.goo.gl/..., https://www.google.com/maps/place/… или https://maps.google.com/… и вам нужно извлечь канонические идентификаторы мест.
- В одном пакетном запросе можно указать до 20 URL.
Требования к входным данным (КРИТИЧНО)
urls(массив строк – ОБЯЗАТЕЛЬНО): список URL Google Карт, которые нужно преобразовать. Каждый URL должен быть действительным URL Google Карт, ведущим на одну страницу.
Сохранить в Google Картах:
- Ответ содержит поле
save_to_maps_url– ссылку на Карты, в которой перечислены все успешно распознанные места. - Если пользователь хочет сохранить, открыть или поделиться списком найденных мест в Google Картах (например, чтобы собрать места, которыми поделились в чате), покажите ему эту ссылку. Не пытайтесь создать эту ссылку самостоятельно.
Обработка ошибок (КРИТИЧНО)
- Это инструмент пакетной обработки. Запрос может вернуть "смешанные результаты" (например, некоторые URL будут успешно разрешены, а другие – нет).
- Выходной список
entitiesгарантированно сопоставляется с входными индексамиurlsпо принципу "один к одному". Если URL не удастся разрешить, в соответствующем индексе спискаentitiesпоявится пустое сообщениеEntity(без заданных полей). - Вы ОБЯЗАНЫ проверить поле карты
failed_requestsв ответе, чтобы определить, какой именно URL не был проиндексирован. Ключfailed_requestsпредставляет собой индекс URL, который не удалось обработать, в запросе (начиная с нуля). Не предполагайте, что пакетный вызов завершился неудачно из-за частичной ошибки.
В приведенном ниже фрагменте кода показано, как использовать curl для вызова инструмента resolve_maps_urls MCP.
| Запрос 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 MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Схема ввода
Запрос для ResolveMapsUrls.
ResolveMapsUrlsRequest
| JSON-представление |
|---|
{ "urls": [ string ] } |
| Поля | |
|---|---|
urls[] |
Обязательно. URL Google Карт, которые нужно преобразовать. Каждый URL должен быть действительным URL Google Карт, например https://maps.app.goo.gl/..., https://www.google.com/maps/place/... или https://maps.google.com/.... В настоящее время поддерживаются только URL, ведущие на одну страницу. Можно указать до 20 URL. |
Схема вывода
Сообщение с ответом для ResolveMapsUrls.
ResolveMapsUrlsResponse
| JSON-представление |
|---|
{ "entities": [ { object ( |
| Поля | |
|---|---|
entities[] |
Используется только для вывода. Список объектов, полученных из URL Google Карт. Гарантированно соответствует запросу |
failedRequests |
Используется только для вывода. Карта, содержащая информацию о частичных сбоях для URL Google Карт. Ключ – это индекс неудачного запроса в поле Объект содержит список из нескольких пар ( |
saveToMapsUrl |
Используется только для вывода. Ссылка для сохранения всех успешно распознанных объектов в Google Картах. |
Объект
| JSON-представление |
|---|
{ // Union field |
| Поля | |
|---|---|
Объединенное поле entity. Тип объекта, который удалось определить. entity может иметь одно из следующих значений: |
|
place |
Название ресурса для найденного места. |
FailedRequestsEntry
| JSON-представление |
|---|
{
"key": integer,
"value": {
object ( |
| Поля | |
|---|---|
key |
|
value |
|
Статус
| JSON-представление |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| Поля | |
|---|---|
code |
Код статуса. Должен быть перечислением |
message |
Сообщение об ошибке для разработчиков. Должно быть на английском языке. Любое сообщение об ошибке, видное пользователю, должно быть локализовано и отправлено в поле |
details[] |
Список сообщений, содержащих подробную информацию об ошибках. Существует распространенный набор типов сообщений, которые могут использовать API. Объект, содержащий поля произвольного типа. Дополнительное поле |
Все
| JSON-представление |
|---|
{ "typeUrl": string, "value": string } |
| Поля | |
|---|---|
typeUrl |
Определяет тип сериализованного сообщения Protobuf с помощью ссылки URI, состоящей из префикса, заканчивающегося косой чертой, и полного имени типа. Пример: type.googleapis.com/google.protobuf.StringValue Эта строка должна содержать хотя бы один символ Префикс может быть любым. Реализации Protobuf должны просто удалять все символы до последнего символа Все строки URL типа должны быть допустимыми ссылками URI с дополнительным ограничением (для текстового формата), согласно которому содержимое ссылки должно состоять только из буквенно-цифровых символов, экранированных символов, закодированных в процентах, и символов из следующего набора (не включая внешние обратные кавычки): В исходном дизайне |
value |
Содержит сериализацию Protobuf типа, описанного в type_url. Строка в кодировке Base64. |
Аннотации инструментов
Аннотации инструментов отправляются клиентам MCP, чтобы описать основной риск, связанный с определенным инструментом. Большинство клиентов считают эти подсказки ненадежными, но их можно использовать, чтобы определить, когда пользователю может быть отправлен запрос на подтверждение.
Вместе со строкой заголовка определены следующие логические подсказки:
readOnlyHint: если значение равно true, инструмент не изменяет среду. Значение по умолчанию – false.destructiveHint: если задано значение True, инструмент может выполнять деструктивные действия. Если задано значение false, инструмент может выполнять только действия по добавлению. Значение по умолчанию: true.idempotentHint: если задано значение True, повторный вызов инструмента с теми же аргументами не окажет дополнительного влияния на его среду. Значение по умолчанию – false.openWorldHint– если значение равно true, инструмент может взаимодействовать с внешними объектами. Если значение равно false, инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет открытым миром, а инструмент памяти – нет.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌