Инструмент: compute_routes
Рассчитывает маршрут между указанными пунктами отправления и назначения. Поддерживаемые способы передвижения: "На автомобиле" (по умолчанию), "Пешком".
Требования к входным данным (КРИТИЧЕСКИ ВАЖНО): необходимо указать пункт отправления и пункт назначения. Каждое значение должно быть указано одним из следующих способов, вложенных в соответствующее поле:
address: (строка, например "Эйфелева башня, Париж"). Примечание. Чем точнее адрес, тем лучше будут результаты.
lat_lng: (объект, {"latitude": число, "longitude": число})
place_id: (строка, например "ChIJOwE_Id1w5EAR4Q27FkL6T_0"). Примечание. Этот идентификатор можно получить с помощью инструмента search_places. Допускается любая комбинация типов входных данных (например, начальная точка по адресу, а конечная – по координатам широты и долготы). Если отсутствует источник или пункт назначения, вы должны запросить у пользователя уточнение, прежде чем пытаться вызвать инструмент.
Пример вызова инструмента: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}
- Обоснованный ответ должен быть связан с источником с помощью информации из поля
attribution, если она доступна.
В приведенном ниже фрагменте кода показано, как использовать curl для вызова инструмента compute_routes 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": "compute_routes", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Схема ввода
ComputeRoutesRequest.
ComputeRoutesRequest
| JSON-представление |
|---|
{ "origin": { object ( |
| Поля | |
|---|---|
origin |
Обязательно. Путевая точка отправления. |
destination |
Обязательно. Путевая точка пункта назначения. |
travelMode |
Необязательное поле. Указывает способ передвижения. |
Путевая точка
| 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]. |
RouteTravelMode
Набор значений, используемых для указания способа передвижения.
| Перечисления | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
Не указан способ передвижения. Значение по умолчанию – DRIVE. |
DRIVE |
Поездки на легковом автомобиле. |
WALK |
Передвигаться пешком. ПРИМЕЧАНИЕ. Маршруты WALK находятся на этапе бета-тестирования и иногда могут не содержать четко определенных пешеходных дорожек. Это предупреждение должно показываться пользователю при каждом отображении в приложении данных о ходьбе. |
Схема вывода
ComputeRoutesResponse.
ComputeRoutesResponse
| JSON-представление |
|---|
{
"routes": [
{
object ( |
| Поля | |
|---|---|
routes[] |
Содержит маршруты между указанными пунктами отправления и назначения. В настоящее время возвращается только один маршрут. |
Маршрут
| JSON-представление |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| Поля | |
|---|---|
distanceMeters |
Расстояние маршрута в метрах. |
duration |
Время, необходимое для проезда по маршруту. Продолжительность в секундах, может содержать до девяти дробных цифр и заканчиваться на символ " |
attribution |
Атрибуция, которая должна показываться вместе с маршрутом. |
Продолжительность
| JSON-представление |
|---|
{ "seconds": string, "nanos": integer } |
| Поля | |
|---|---|
seconds |
Подписанные секунды временного интервала. Значение должно быть в диапазоне от -315 576 000 000 до +315 576 000 000 включительно. Примечание. Эти границы вычисляются следующим образом: 60 с/мин * 60 мин/ч * 24 ч/день * 365,25 дней/год * 10 000 лет. |
nanos |
Дробные значения секунд со знаком и разрешением до наносекунд. Продолжительность менее одной секунды указывается с помощью поля 0 |
Атрибуция
| JSON-представление |
|---|
{ "title": string, "url": string } |
| Поля | |
|---|---|
title |
Заголовок, который будет показываться в атрибуции. |
url |
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: ❌