Инструмент: search_along_route
Вызывайте этот инструмент, когда пользователь хочет найти места, компании или достопримечательности вдоль маршрута (например, "заправки по пути в Тахо", "кофейни между Сан-Франциско и Сан-Хосе"). Вызов этого инструмента стоит дороже, чем search_places, поэтому используйте search_places, когда ищете места рядом с одним местоположением, а не вдоль маршрута.
Требования к входным данным (КРИТИЧЕСКИ ВАЖНО):
text_query(строка, ОБЯЗАТЕЛЬНО). Описание того, что нужно искать вдоль маршрута, на естественном языке.- Примеры:
'ev chargers','coffee','vegetarian restaurants','rest stops'.
- Примеры:
Спецификация маршрута (ОБЯЗАТЕЛЬНО – укажите только ОДИН из следующих вариантов):
retrieval_token(строка). Значениеretrieval_token, возвращенное предыдущим вызовомcompute_routesдля маршрутаDRIVE. Используйте этот вариант, если маршрут уже рассчитан. Токен действителен в течение 10 минут.route_endpoints(объект).originиdestinationмаршрута. Каждое значение должно быть указано с помощью одного из следующих свойств:address,lat_lngилиplace_id.- Пример:
{"route_endpoints": {"origin": {"address": "San Francisco, CA"}, "destination": {"address": "Lake Tahoe, CA"}}}.
- Пример:
encoded_polyline(строка) – закодированная ломаная линия, представляющая маршрутDRIVE.
travel_mode(enum – НЕОБЯЗАТЕЛЬНО):DRIVE(по умолчанию),WALKилиBICYCLE.WALKиBICYCLEподдерживаются только сroute_endpoints.TRANSITне поддерживается.routing_preference(enum – НЕОБЯЗАТЕЛЬНО):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(по умолчанию) – маршрут и объезды рассчитываются без учета текущей загруженности дорог. Наименьшая задержка.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL– используются данные о загруженности дорог в реальном времени (если доступны). Не поддерживается дляWALKиBICYCLE. Устанавливайте этот параметр, ТОЛЬКО когда пользователь спрашивает о пробках, заторах или времени объезда с учетом пробок. Увеличивается задержка.
include_extended_details(логическое значение, необязательно). Установите значениеtrue, только если в запросе требуются качественные отзывы, конкретные пункты меню или предложения, атмосфера, советы посетителей или загруженность, наличие устройства для зарядки ЭМ, цены на бензин или другие подробные качественные данные. Значение по умолчанию –false. Если включить эту функцию, задержка может увеличиться.language_code(строка, необязательно). Язык сводки результатов и информации о местах, напримерen,ja,en-US. Значение по умолчанию –en-US.region_code(строка, необязательно). Код региона пользователя в формате Unicode CLDR, напримерUS,CA.
Инструкции по вызову инструмента
- Каждый результат включает объект
detour_summary(если доступен), описывающий дополнительное расстояние (localized_detour_distance) и, если маршрут не был задан какencoded_polyline, дополнительное время (detour_duration), необходимое для остановки в этом месте. Используйте его, чтобы сравнивать варианты. - Ответ
summaryможет содержать цитаты, начинающиеся с нуля (например, "[0]"), которые ссылаются на записи вresults. - Обоснованные выходные данные должны быть соотнесены с источником с помощью поля
attributionкаждогоresults[].place, если оно доступно.
В примере кода ниже показано, как использовать curl для вызова инструмента MCP search_along_route.
| Запрос 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_along_route", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Схема ввода
Сообщение запроса для SearchAlongRoute.
SearchAlongRouteRequest
| JSON-представление |
|---|
{ "textQuery": string, "languageCode": string, "regionCode": string, "routingPreference": enum ( |
| Поля | |
|---|---|
textQuery |
Обязательно. Поисковый запрос на естественном языке, например "зарядные станции для электромобилей" или "кофе". |
languageCode |
Необязательное поле. Язык сводки и информации о месте. По умолчанию используется значение "en-US". |
regionCode |
Необязательное поле. Код страны или региона (CLDR) местоположения, например "US". |
routingPreference |
Необязательное поле. Необязательный параметр, определяющий, как используются данные о трафике. Значение по умолчанию – TRAFFIC_UNAWARE. |
includeExtendedDetails |
Необязательное поле. Включает в ответ расширенные сведения о месте. Установите для этого поля значение Оставьте значение Если включить это поле, задержка может увеличиться. |
travelMode |
Необязательное поле. Указывает способ передвижения, используемый для расчета маршрута и объездов. Значение по умолчанию – |
Объединенное поле route_spec. Спецификация маршрута: существующий маршрут, токен маршрута или начальная и конечная точки. route_spec может иметь одно из следующих значений: |
|
encodedPolyline |
Закодированная строка ломаной линии, представляющая маршрут. Подробнее: https://developers.google.com/maps/documentation/utilities/polylinealgorithm. |
retrievalToken |
Токен извлечения, возвращенный из предыдущего вызова ComputeRoutes, представляющего маршрут. |
routeEndpoints |
Явные конечные точки маршрута (начальная и конечная). |
RouteEndpoints
| JSON-представление |
|---|
{ "origin": { object ( |
| Поля | |
|---|---|
origin |
Обязательно. Пункт отправления (адрес, идентификатор места или географические координаты). |
destination |
Обязательно. Пункт назначения (адрес, идентификатор места или географические координаты). |
Путевая точка
| JSON-представление |
|---|
{ // Union field |
| Поля | |
|---|---|
Объединенное поле location_type. Различные способы представления местоположения. location_type может иметь одно из следующих значений: |
|
latLng |
Точка, заданная географическими координатами. |
placeId |
Идентификатор места, связанный с путевой точкой. |
address |
Адрес в понятном для человека формате или код Plus Code. Подробную информацию можно найти на сайте https://plus.codes. |
LatLng
| JSON-представление |
|---|
{ "latitude": number, "longitude": number } |
| Поля | |
|---|---|
latitude |
Градусная мера широты. Должна попадать в диапазон [-90.0, +90.0]. |
longitude |
Градусная мера долготы. Должна попадать в диапазон [-180,0, +180,0]. |
RoutingPreference
Набор значений, определяющих факторы, которые следует учитывать при расчете маршрута.
| Перечисления | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
Предпочтения маршрутизации не указаны. Значение по умолчанию – ROUTING_PREFERENCE_TRAFFIC_UNAWARE. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
Рассчитывает маршруты без учета текущей загруженности дорог. Подходит, когда загруженность дорог не имеет значения или неприменима. При этом задержка будет минимальной. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
Рассчитывает маршруты с учетом загруженности дорог в реальном времени (если доступны данные о трафике). Для Это значение активирует уровень Pro и приведет к увеличению суммы к оплате и задержки. |
RouteTravelMode
Набор значений, используемых для указания способа передвижения.
| Перечисления | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
Способ передвижения не указан. Значение по умолчанию – DRIVE. |
DRIVE |
Путешествуйте на легковом автомобиле. |
WALK |
Путешествуйте пешком. ПРИМЕЧАНИЕ. Маршруты для WALK находятся на этапе бета-тестирования, поэтому на них могут отсутствовать тротуары или пешеходные дорожки. Вы должны показывать это предупреждение пользователю для всех пеших маршрутов, которые вы показываете в своем приложении. |
BICYCLE |
Поездка на велосипеде. |
TRANSIT |
Поездки на общественном транспорте. |
Схема вывода
Сообщение с ответом для SearchAlongRoute.
SearchAlongRouteResponse
| JSON-представление |
|---|
{
"results": [
{
object ( |
| Поля | |
|---|---|
results[] |
Только для вывода. Рейтинговый список результатов поиска по маршруту. |
summary |
Только для вывода. Сводка результатов поиска и компромиссов при объезде на естественном языке. Может содержать ссылки, начинающиеся с нуля (например, "[0]", "[1]"), которые указывают на соответствующие записи в списке |
contentToken |
Только для вывода. Зашифрованный токен, который содержит контекст поиска и может быть передан в сервисы визуальной отрисовки Google Карт, SDK или агентный набор инструментов интерфейса Карт (A2UI) для показа интерактивных компонентов интерфейса в результатах поиска. |
Результат
| JSON-представление |
|---|
{ "place": { object ( |
| Поля | |
|---|---|
place |
Только для вывода. Сведения о месте, найденном на маршруте. |
detourSummary |
Только для вывода. Показатели объезда, полученные при добавлении этого места в качестве промежуточной остановки на маршруте. Если показатели объезда не удалось рассчитать, это поле будет пустым или не будет включено в ответ. |
PlaceView
| JSON-представление |
|---|
{ "place": string, "id": string, "googleMapsLinks": { object ( |
| Поля | |
|---|---|
place |
Название ресурса места в формате "places/{id}". |
id |
Идентификатор места, к которому относится адрес. |
googleMapsLinks |
Ссылки, которые запускают различные действия в Google Картах. |
attribution |
Обязательная атрибуция, которая должна показываться вместе с местом. |
Объединенное поле Поле |
|
location |
Местоположение этого места. |
LatLng
| JSON-представление |
|---|
{ "latitude": number, "longitude": number } |
| Поля | |
|---|---|
latitude |
Градусная мера широты. Должна попадать в диапазон [-90.0, +90.0]. |
longitude |
Градусная мера долготы. Должна попадать в диапазон [-180,0, +180,0]. |
GoogleMapsLinks
| JSON-представление |
|---|
{ "directionsUrl": string, "placeUrl": string, "writeAReviewUrl": string, "reviewsUrl": string, "photosUrl": string } |
| Поля | |
|---|---|
directionsUrl |
Ссылка на маршрут до места. В ссылке указан только пункт назначения и используется способ передвижения по умолчанию ( |
placeUrl |
Ссылка на это место. |
writeAReviewUrl |
Ссылка, по которой можно написать отзыв об этом месте в Google Картах. |
reviewsUrl |
Ссылка на отзывы об этом месте в Google Картах. |
photosUrl |
Ссылка на фотографии этого места в Google Картах. |
Атрибуция
| JSON-представление |
|---|
{ "title": string, "url": string } |
| Поля | |
|---|---|
title |
Заголовок, который будет показываться в атрибуции. |
url |
URL, на который ведет ссылка в атрибуции. |
DetourSummary
| JSON-представление |
|---|
{ "detourDuration": string, "localizedDetourDistance": string } |
| Поля | |
|---|---|
detourDuration |
Дополнительное время в пути, необходимое для объезда этого места по основному маршруту. Это значение не задано, если маршрут указан в поле Продолжительность в секундах, может содержать до девяти дробных цифр и заканчиваться на букву |
localizedDetourDistance |
Дополнительное расстояние, которое нужно проехать, чтобы добраться до этого места с основного маршрута. Форматируется для отображения на языке запроса (например, "1,2 мили" или "1,9 км"). |
Продолжительность
| JSON-представление |
|---|
{ "seconds": string, "nanos": integer } |
| Поля | |
|---|---|
seconds |
Секунды со знаком. Значение должно быть в диапазоне от -315 576 000 000 до +315 576 000 000 включительно. Примечание. Эти границы вычисляются следующим образом: 60 сек/мин * 60 мин/ч * 24 ч/день * 365,25 дней/год * 10 000 лет. |
nanos |
Доли секунды со знаком и наносекундным разрешением. Продолжительность менее одной секунды представлена полем |
Аннотации инструментов
Аннотации инструментов отправляются клиентам MCP, чтобы описать базовый риск, связанный с определенным инструментом. Большинство клиентов считают эти подсказки ненадежными, но их можно использовать, чтобы решить, когда пользователю может быть отправлен запрос на подтверждение.
Помимо строки заголовка, определены следующие логические подсказки:
readOnlyHint: если задано значение true, инструмент не изменяет свою среду. Значение по умолчанию – false.destructiveHint: если задано значение True, инструмент может выполнять деструктивные действия. Если false, то инструмент может выполнять только действия по добавлению. Значение по умолчанию: true.idempotentHint– если задано значение True, повторный вызов инструмента с теми же аргументами не будет иметь дополнительного эффекта в его среде. Значение по умолчанию – false.openWorldHint: если задано значение true, инструмент может взаимодействовать с "открытым миром" внешних объектов. Если false, то инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет открытым миром, а инструмент памяти – нет.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌