Инструмент: 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 должен быть действительным и указывать на одно место в Google Картах.
Сохранить в Google Картах
- Ответ содержит поле
save_to_maps_url– одну ссылку на Google Карты, содержащую все успешно распознанные места. - Если пользователь хочет сохранить, отправить или открыть найденные места в виде списка в Google Картах (например, собрать места, упомянутые в разговоре), покажите ему эту ссылку. Не создавайте эту ссылку самостоятельно.
Обработка ошибок (КРИТИЧЕСКИЙ ПРИОРИТЕТ)
- Это инструмент пакетной обработки. Запрос может возвращать смешанные результаты (например, некоторые URL разрешаются успешно, а другие – нет).
- Выходной список
entitiesгарантированно сопоставляется 1:1 с входными индексамиurls. Если URL не удастся обработать, в спискеentitiesпоявится пустое сообщениеEntity(без полей). - Вы ДОЛЖНЫ проверить поле карты
failed_requestsв ответе, чтобы определить, какой именно индекс URL не удалось обработать. Ключfailed_requestsпредставляет собой индекс URL, который не удалось обработать, в запросе (начиная с нуля). Не считайте, что весь пакетный вызов завершился ошибкой, если она произошла только в некоторых случаях.
В примере кода ниже показано, как использовать curl для вызова инструмента MCP resolve_maps_urls.
| Запрос 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 Карт. Гарантируется сопоставление 1:1 с индексами |
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: ❌