MCP Tools Reference: mapstools.googleapis.com

Инструмент: 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 (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode)
}
Поля
origin

object (Waypoint)

Обязательно. Путевая точка отправления.

destination

object (Waypoint)

Обязательно. Путевая точка пункта назначения.

travelMode

enum (RouteTravelMode)

Необязательное поле. Указывает способ передвижения.

Путевая точка

JSON-представление
{

  // Union field location_type can be only one of the following:
  "latLng": {
    object (LatLng)
  },
  "placeId": string,
  "address": string
  // End of list of possible types for union field location_type.
}
Поля
Объединенное поле location_type. Разные способы представления местоположения. location_type может иметь одно из следующих значений:
latLng

object (LatLng)

Точка, заданная с помощью географических координат.

placeId

string

Идентификатор места, связанный с путевой точкой.

address

string

Адрес, удобный для восприятия человеком, или код Plus Code. Подробную информацию можно найти на сайте https://plus.codes.

LatLng

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

number

Градусная мера широты. Значение должно находиться в диапазоне от -90,0 до +90,0.

longitude

number

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

RouteTravelMode

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

Перечисления
ROUTE_TRAVEL_MODE_UNSPECIFIED Не указан способ передвижения. Значение по умолчанию – DRIVE.
DRIVE Поездки на легковом автомобиле.
WALK Передвигаться пешком. ПРИМЕЧАНИЕ. Маршруты WALK находятся на этапе бета-тестирования и иногда могут не содержать четко определенных пешеходных дорожек. Это предупреждение должно показываться пользователю при каждом отображении в приложении данных о ходьбе.

Схема вывода

ComputeRoutesResponse.

ComputeRoutesResponse

JSON-представление
{
  "routes": [
    {
      object (Route)
    }
  ]
}
Поля
routes[]

object (Route)

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

Маршрут

JSON-представление
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  }
}
Поля
distanceMeters

integer

Расстояние маршрута в метрах.

duration

string (Duration format)

Время, необходимое для проезда по маршруту.

Продолжительность в секундах, может содержать до девяти дробных цифр и заканчиваться на символ "s". Пример: "3.5s".

attribution

object (Attribution)

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

Продолжительность

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

string (int64 format)

Подписанные секунды временного интервала. Значение должно быть в диапазоне от -315 576 000 000 до +315 576 000 000 включительно. Примечание. Эти границы вычисляются следующим образом: 60 с/мин * 60 мин/ч * 24 ч/день * 365,25 дней/год * 10 000 лет.

nanos

integer

Дробные значения секунд со знаком и разрешением до наносекунд. Продолжительность менее одной секунды указывается с помощью поля 0 seconds и положительного или отрицательного поля nanos. Если продолжительность составляет одну секунду или более, значение поля nanos должно быть ненулевым и иметь тот же знак, что и значение поля seconds. Значение должно быть в диапазоне от -999 999 999 до +999 999 999 включительно.

Атрибуция

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: ❌