MCP Tools Reference: mapstools.googleapis.com

Инструмент: search_places

Вызывайте этот инструмент, когда пользователь хочет найти места, компании, адреса, местоположения, достопримечательности или выполнить любой другой связанный запрос, связанный с Google Картами.

Требования к входным данным (КРИТИЧЕСКИ ВАЖНО):

  1. text_query (строка, ОБЯЗАТЕЛЬНО). Основной поисковый запрос. В нем должно быть четко указано, что ищет пользователь.

    • Примеры: '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'.
    • Для получения информации о местах укажите запрашиваемый атрибут (например, 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address').
  2. location_bias (объект, НЕОБЯЗАТЕЛЬНО). Используйте этот параметр, чтобы в первую очередь выводить результаты в пределах определенного географического региона.

    • Формат: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Использование:
      • Чтобы задать смещение в радиусе 5 км, используйте следующий код: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Чтобы задать сильное смещение к центральной точке, укажите {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (без radius_meters).
  3. language_code (строка, необязательный параметр). Язык, на котором будет показана сводка результатов поиска.

    • Формат. Двухбуквенный код языка (ISO 639-1), за которым может следовать символ подчеркивания и двухбуквенный код страны (ISO 3166-1 alpha-2), например en, ja, en_US, zh_CN, es_MX. Если код языка не указан, результаты будут на английском.
  4. region_code (строка, необязательный). Код региона пользователя в формате Unicode CLDR. Этот параметр используется для отображения информации о месте, например названия места в определенном регионе, если оно доступно. Этот параметр может влиять на результаты в соответствии с действующим законодательством.

    • Формат. Двухбуквенный код страны (ISO 3166-1 alpha-2), например US, CA.

Инструкции по вызову инструмента

  • Информация о местоположении (КРИТИЧЕСКИ ВАЖНО). Поисковый запрос должен содержать достаточно информации о местоположении. Если местоположение указано неточно (например, просто "пиццерии"), необходимо уточнить его в параметре text_query (например, "пиццерии в Нью-Йорке") или использовать параметр location_bias. При необходимости укажите город, штат/провинцию и регион/страну.

  • Всегда указывайте максимально точные и подробные text_query.

  • Используйте location_bias, только если координаты указаны явно или если определение местоположения по известному контексту пользователя уместно и необходимо для получения лучших результатов.

  • Обоснованный ответ должен быть связан с источником с помощью информации из поля attribution, если оно доступно.

В примере кода ниже показано, как использовать curl для вызова инструмента MCP search_places.

Запрос 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": "search_places",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Схема ввода

Сообщение запроса для SearchText.

SearchTextRequest

JSON-представление
{
  "textQuery": string,
  "languageCode": string,
  "regionCode": string,
  "pageSize": integer,
  "includeExtendedDetails": boolean,

  // Union field _location_bias can be only one of the following:
  "locationBias": {
    object (LocationBias)
  }
  // End of list of possible types for union field _location_bias.
}
Поля
textQuery

string

Обязательно. Текстовый запрос.

languageCode

string

Необязательное поле. Язык, на котором нужно составить краткий пересказ. Если код языка не указан или не распознан, будет возвращено краткое описание на английском языке.

Например, "en" для английского языка.

Список поддерживаемых языков: https://developers.google.com/maps/faq#languagesupport.

regionCode

string

Необязательное поле. Код страны или региона (CLDR) в формате Unicode, откуда поступает запрос. Этот параметр используется для отображения информации о месте, например названия места в определенном регионе, если оно доступно. Параметр может влиять на результаты в соответствии с действующим законодательством.

Например, "US" для США.

Дополнительную информацию можно найти на странице https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html.

Обратите внимание, что трехзначные коды регионов в настоящее время не поддерживаются.

pageSize

integer

Необязательное поле. Максимальное количество мест в ответе (до 5). Сервис может вернуть меньше результатов, чем указано в этом значении. Значение по умолчанию – 5.

includeExtendedDetails

boolean

Необязательное поле. Включает в ответ расширенные сведения о месте.

Установите для этого поля значение true, если запрос пользователя требует подробных качественных данных, динамики в реальном времени или специализированных атрибутов объектов: - Качественные отзывы, настроения клиентов и обратная связь. – конкретные предложения, например позиции меню, блюда, фирменные блюда, напитки или особенности бизнеса. - Качественная атмосфера, декор интерьера, эстетика, атмосфера или настроение. - Данные в реальном времени и характеристики специализированных учреждений, правила/советы для посетителей, время ожидания.

Оставьте значение false (по умолчанию) для стандартных поисковых запросов (например, по типу кухни или магазина), поиска местоположения/адреса, контактной информации, часов работы и стандартных метаданных/удобств.

Если включить это поле, задержка увеличится.

Объединенное поле _location_bias.

Поле _location_bias может иметь одно из следующих значений:

locationBias

object (LocationBias)

Необязательный параметр, позволяющий ограничить результаты поиска определенным регионом. Если в поле text_query указано точное местоположение, оно будет использоваться для уточнения результатов поиска вместо этого поля.

LocationBias

JSON-представление
{
  "circle": {
    object (Circle)
  }
}
Поля
circle

object (Circle)

Необязательное поле. Окружность, определяемая центральной точкой и радиусом. Параметр radius_meters необязателен. Если не задано, результаты будут смещены к центральной точке.

Круг

JSON-представление
{
  "center": {
    object (LatLng)
  },

  // Union field _radius_meters can be only one of the following:
  "radiusMeters": number
  // End of list of possible types for union field _radius_meters.
}
Поля
center

object (LatLng)

Обязательно. Центральная точка круга.

Объединенное поле _radius_meters.

Поле _radius_meters может иметь одно из следующих значений:

radiusMeters

number

Радиус круга в метрах. Радиус не должен превышать 50 000 метров.

LatLng

JSON-представление
{
  "latitude": number,
  "longitude": number
}
Поля
latitude

number

Градусная мера широты. Должна попадать в диапазон [-90.0, +90.0].

longitude

number

Градусная мера долготы. Должна попадать в диапазон [-180,0, +180,0].

Схема вывода

Ответное сообщение для SearchText.

SearchTextResponse

JSON-представление
{
  "places": [
    {
      object (PlaceView)
    }
  ],
  "summary": string,
  "contentToken": string
}
Поля
places[]

object (PlaceView)

Только для вывода. Список мест, упомянутых в сводке.

summary

string

Только для вывода. Краткий пересказ результатов поиска на естественном языке. В сводке могут быть цитаты, пронумерованные с нуля, например "[0]", "[1]", "[2]" и т. д. Они соответствуют местам в поле places.

contentToken

string

Только для вывода. Зашифрованный токен, который содержит контекст поиска и может быть передан в сервисы визуальной отрисовки Google Карт, SDK или агентный набор инструментов интерфейса Карт (A2UI) для отображения интерактивных компонентов интерфейса для возвращенных результатов поиска.

PlaceView

JSON-представление
{
  "place": string,
  "id": string,
  "googleMapsLinks": {
    object (GoogleMapsLinks)
  },
  "attribution": {
    object (Attribution)
  },

  // Union field _location can be only one of the following:
  "location": {
    object (LatLng)
  }
  // End of list of possible types for union field _location.
}
Поля
place

string

Название ресурса места в формате "places/{id}".

id

string

Идентификатор места, к которому относится адрес.

googleMapsLinks

object (GoogleMapsLinks)

Ссылки, запускающие различные действия в Google Картах.

attribution

object (Attribution)

Обязательная атрибуция, которая должна показываться вместе с местом.

Объединенное поле _location.

Поле _location может иметь одно из следующих значений:

location

object (LatLng)

Местоположение этого места.

LatLng

JSON-представление
{
  "latitude": number,
  "longitude": number
}
Поля
latitude

number

Градусная мера широты. Должна попадать в диапазон [-90.0, +90.0].

longitude

number

Градусная мера долготы. Должна попадать в диапазон [-180,0, +180,0].

JSON-представление
{
  "directionsUrl": string,
  "placeUrl": string,
  "writeAReviewUrl": string,
  "reviewsUrl": string,
  "photosUrl": string
}
Поля
directionsUrl

string

Ссылка на маршрут до места. В ссылке указан только пункт назначения и используется способ передвижения по умолчанию (DRIVE).

placeUrl

string

Ссылка на это место.

writeAReviewUrl

string

Ссылка, по которой можно написать отзыв об этом месте в Google Картах.

reviewsUrl

string

Ссылка на отзывы об этом месте в Google Картах.

photosUrl

string

Ссылка на фотографии этого места в Google Картах.

Атрибуция

JSON-представление
{
  "title": string,
  "url": string
}
Поля
title

string

Заголовок, который будет показываться в атрибуции.

url

string

URL, на который ведет ссылка для атрибуции.

Аннотации инструментов

Аннотации инструментов отправляются клиентам MCP, чтобы описать базовый риск, связанный с определенным инструментом. Большинство клиентов считают эти подсказки ненадежными, но их можно использовать, чтобы решить, когда пользователю может быть отправлен запрос на подтверждение.

Помимо строки заголовка, определены следующие логические подсказки:

  • readOnlyHint: если задано значение true, инструмент не изменяет свою среду. Значение по умолчанию – false.
  • destructiveHint: если задано значение True, инструмент может выполнять деструктивные действия. Если задано значение false, инструмент может выполнять только действия по добавлению. Значение по умолчанию: true.
  • idempotentHint. Если задано значение True, повторный вызов инструмента с теми же аргументами не будет иметь дополнительного эффекта в его среде. Значение по умолчанию – false.
  • openWorldHint: если задано значение true, инструмент может взаимодействовать с открытым миром внешних объектов. Если false, то инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет открытым миром, а инструмент памяти – нет.

Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌