Инструмент: resolve_names
Преобразует список запросов на определенные местоположения (названия достопримечательностей или точные адреса) в канонические идентификаторы мест Google Карт.
Требования к входным данным (КРИТИЧНО)
queries(массив объектов – ОБЯЗАТЕЛЬНО): список запросов местоположения, которые нужно разрешить. Можно указать до 20 запросов.- Каждый объект запроса должен содержать:
text(строка – ОБЯЗАТЕЛЬНО): текстовый запрос, представляющий название или адрес места, которое нужно найти.- Примеры:
'Googleplex, Mountain View, CA','1600 Amphitheatre Pkwy, Mountain View, CA','Eiffel Tower, Paris'.
- Примеры:
- Каждый объект запроса должен содержать:
location_bias(объект – НЕОБЯЗАТЕЛЬНО): используется, чтобы в первую очередь выводить результаты в пределах географического региона.- Формат:
{"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
- Формат:
region_code(строка – НЕОБЯЗАТЕЛЬНО). Код региона Unicode CLDR (двухбуквенный код страны, напримерUSилиCA) пользователя, чтобы сместить результаты.
Инструкции для вызова инструмента
- Конкретность (КРИТИЧНО). Запросы должны представлять собой название или адрес определенного места. Общие запросы, например
'restaurants', или названия сетей, например'Starbucks', не поддерживаются. - Не вызывайте этот инструмент, если инструменты, которые вы планируете использовать, уже принимают необработанные строки адресов или названий мест.
Сохранить в Google Картах:
- Ответ содержит поле
save_to_maps_url– ссылку на Карты, в которой перечислены все успешно распознанные места. - Если пользователь хочет сохранить, открыть или поделиться списком найденных мест в Google Картах, покажите ему эту ссылку. Не пытайтесь создать эту ссылку самостоятельно.
Обработка ошибок (КРИТИЧНО)
- Это инструмент пакетной обработки. Запрос может вернуть "смешанные результаты" (например, некоторые запросы будут выполнены успешно, а другие – нет).
- Выходной список
resultsгарантированно сопоставляется с входными индексамиqueriesпо принципу "один к одному". Если запрос не удастся выполнить, в спискеresultsна соответствующем индексе появится пустое сообщениеResult(без значенияentity). - Вы ОБЯЗАНЫ проверить поле карты
failed_requestsв ответе, чтобы определить, какой именно индекс запроса не удалось обработать. Ключfailed_requestsпредставляет собой индекс неудачного запроса в запросе (начиная с нуля). Не предполагайте, что пакетный вызов завершился неудачно из-за частичной ошибки.
В приведенном ниже фрагменте кода показано, как использовать curl для вызова инструмента resolve_names 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_names", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Схема ввода
Запрос сообщения для ResolveNames.
ResolveNamesRequest
| JSON-представление |
|---|
{ "queries": [ { object ( |
| Поля | |
|---|---|
queries[] |
Обязательно. Список запросов на определение местоположения, которые нужно обработать. Можно указать до 20 запросов. |
locationBias |
Необязательное поле. Необязательный регион, который будет учитываться при определении результатов. Если указано, результаты разрешения будут смещены в сторону объектов, которые находятся ближе к этому региону. Использование операторов Если указаны оба параметра – |
regionCode |
Необязательное поле. Необязательный код региона, который будет влиять на результаты разрешения. Если указано, результаты разрешения будут смещены в сторону объектов, которые находятся в указанном регионе или рядом с ним. Это должен быть код региона CLDR. Примеры: "US" или "CA". Использование операторов Если указаны оба параметра – |
LocationQuery
| JSON-представление |
|---|
{ "text": string } |
| Поля | |
|---|---|
text |
Обязательно. Текстовый запрос, который нужно преобразовать в определенный геопространственный объект на Google Картах, например место или адрес. Чем точнее запрос, тем точнее будет ответ. Примеры: "Сан-Франциско", "Googleplex, Маунтин-Вью, Калифорния", "1600 Amphitheatre Parkway, Маунтин-Вью, Калифорния" или "Эйфелева башня, Париж". Запросы должны представлять собой определенный адрес или название места. Общие местоположения, например название сети (Starbucks) или поисковый запрос (рестораны), не поддерживаются. |
LocationBias
| JSON-представление |
|---|
{ // Union field |
| Поля | |
|---|---|
Объединенное поле type. Тип смещения местоположения. type может иметь одно из следующих значений: |
|
viewport |
Область просмотра, заданная граничной рамкой. |
Область просмотра
| JSON-представление |
|---|
{ "low": { object ( |
| Поля | |
|---|---|
low |
Обязательно. Нижняя точка области просмотра. |
high |
Обязательно. Верхняя точка области просмотра. |
LatLng
| JSON-представление |
|---|
{ "latitude": number, "longitude": number } |
| Поля | |
|---|---|
latitude |
Градусная мера широты. Значение должно находиться в диапазоне от -90,0 до +90,0. |
longitude |
Градусная мера долготы. Должна попадать в диапазон [-180.0, +180.0]. |
Схема вывода
Сообщение с ответом для ResolveNames.
ResolveNamesResponse
| JSON-представление |
|---|
{ "results": [ { object ( |
| Поля | |
|---|---|
results[] |
Используется только для вывода. Список распознанных объектов из запросов местоположения. Гарантированно соответствует индексам запроса |
failedRequests |
Используется только для вывода. Карта, на которой показаны частичные сбои. Ключ – это индекс неудачного запроса в поле Объект содержит список из нескольких пар ( |
saveToMapsUrl |
Используется только для вывода. Ссылка для сохранения всех успешно распознанных объектов в Google Картах. |
Результат
| JSON-представление |
|---|
{ "entity": { object ( |
| Поля | |
|---|---|
entity |
Используется только для вывода. Распознанный объект из запроса местоположения. |
confidence |
Используется только для вывода. Уровень достоверности для разрешения. |
Объект
| 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. |
Точность
Уровень достоверности для разрешения.
| Перечисления | |
|---|---|
CONFIDENCE_UNSPECIFIED |
Значение по умолчанию. Это значение не используется. |
MEDIUM |
Средняя достоверность означает, что разрешение, скорее всего, правильное, но могут быть и другие варианты. |
HIGH |
Высокая достоверность означает, что разрешение правильное и представляет собой определенный геопространственный объект (например, определенное место). |
Аннотации инструментов
Аннотации инструментов отправляются клиентам MCP, чтобы описать основной риск, связанный с определенным инструментом. Большинство клиентов считают эти подсказки ненадежными, но их можно использовать, чтобы определить, когда пользователю может быть отправлен запрос на подтверждение.
Вместе со строкой заголовка определены следующие логические подсказки:
readOnlyHint: если значение равно true, инструмент не изменяет среду. Значение по умолчанию – false.destructiveHint: если задано значение True, инструмент может выполнять деструктивные действия. Если задано значение false, инструмент может выполнять только действия по добавлению. Значение по умолчанию: true.idempotentHint: если задано значение True, повторный вызов инструмента с теми же аргументами не окажет дополнительного влияния на его среду. Значение по умолчанию – false.openWorldHint– если значение равно true, инструмент может взаимодействовать с внешними объектами. Если значение равно false, инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет открытым миром, а инструмент памяти – нет.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌