MCP Tools Reference: mapstools.googleapis.com

Narzędzie: compute_routes

Oblicza trasę podróży między określonym miejscem początkowym a docelowym. Obsługiwane środki transportu: SAMOCHÓD (domyślny), PIESZO.

Wymagania dotyczące danych wejściowych (BARDZO WAŻNE): wymaga podania zarówno miejsca początkowego, jak i miejsca docelowego. Każda z nich musi być podana w odpowiednim polu za pomocą jednej z tych metod:

  • address: (ciąg tekstowy, np. „Wieża Eiffla, Paryż”). Uwaga: im bardziej szczegółowy lub precyzyjny jest adres wejściowy, tym lepsze będą wyniki.

  • lat_lng: (obiekt, {"latitude": number, "longitude": number})

  • place_id: (ciąg znaków, np. „ChIJOwE_Id1w5EAR4Q27FkL6T_0”) Uwaga: ten identyfikator można uzyskać za pomocą narzędzia search_places. Dozwolona jest dowolna kombinacja typów danych wejściowych (np. miejsce docelowe według adresu, miejsce docelowe według współrzędnych lat_lng). Jeśli brakuje źródła lub miejsca docelowego, musisz poprosić użytkownika o wyjaśnienie, zanim spróbujesz wywołać narzędzie.

Przykład wywołania narzędzia: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • Wygenerowane dane muszą być przypisane do źródła na podstawie informacji z pola attribution, jeśli są dostępne.

Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia MCP compute_routes.

Żądanie 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
}'

Schemat wejściowy

ComputeRoutesRequest.

ComputeRoutesRequest

Zapis JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode)
}
Pola
origin

object (Waypoint)

Wymagane. Punkt na trasie źródłowej.

destination

object (Waypoint)

Wymagane. Punkt docelowy.

travelMode

enum (RouteTravelMode)

Opcjonalnie: Określa środek transportu.

Punkt pośredni

Zapis 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.
}
Pola
Pole zbiorcze location_type. Różne sposoby przedstawiania lokalizacji. location_type może mieć tylko jedną z tych wartości:
latLng

object (LatLng)

Punkt określony za pomocą współrzędnych geograficznych.

placeId

string

Identyfikator miejsca powiązany z punktem pośrednim.

address

string

Zrozumiały dla człowieka adres lub kod Plus Code. Więcej informacji znajdziesz na stronie https://plus.codes.

LatLng

Zapis JSON
{
  "latitude": number,
  "longitude": number
}
Pola
latitude

number

Szerokość geograficzna w stopniach. Musi mieścić się w zakresie od –90,0 do +90,0.

longitude

number

Długość geograficzna w stopniach. Musi mieścić się w zakresie od –180,0 do +180,0.

RouteTravelMode

Zestaw wartości służący do określania środka transportu.

Wartości w polu enum
ROUTE_TRAVEL_MODE_UNSPECIFIED Nie określono środka transportu. Domyślna wartość to DRIVE.
DRIVE podróżowanie samochodem osobowym;
WALK podróżować pieszo; UWAGA: trasy WALK są w wersji beta i czasami mogą nie mieć wyraźnych chodników ani ścieżek dla pieszych. Musisz wyświetlać to ostrzeżenie użytkownikowi w przypadku wszystkich tras pieszych, które wyświetlasz w aplikacji.

Schemat wyjściowy

ComputeRoutesResponse.

ComputeRoutesResponse

Zapis JSON
{
  "routes": [
    {
      object (Route)
    }
  ]
}
Pola
routes[]

object (Route)

Zawiera trasy między miejscem początkowym a docelowym. Obecnie zwracana jest tylko jedna trasa.

Trasa

Zapis JSON
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  }
}
Pola
distanceMeters

integer

Długość trasy w metrach.

duration

string (Duration format)

czas potrzebny na pokonanie trasy.

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „s”. Przykład: "3.5s".

attribution

object (Attribution)

Wymagane atrybucje, które mają być wyświetlane z trasą.

Czas trwania

Zapis JSON
{
  "seconds": string,
  "nanos": integer
}
Pola
seconds

string (int64 format)

Podpisane sekundy przedziału czasu. Musi mieścić się w przedziale od -315 576 000 000 do +315 576 000 000 włącznie. Uwaga: te granice są obliczane na podstawie: 60 s/min * 60 min/godz. * 24 godz./dzień * 365,25 dni/rok * 10 000 lat.

nanos

integer

Ułamki sekundy ze znakiem o rozdzielczości nanosekundy w zakresie czasu. Czasy trwania krótsze niż sekunda są reprezentowane przez pole 0 seconds i pole nanos z wartością dodatnią lub ujemną. W przypadku czasów trwania wynoszących co najmniej 1 sekundę wartość pola nanos musi mieć ten sam znak co pole seconds. Musi mieścić się w zakresie od -999 999 999 do +999 999 999 włącznie.

Atrybucja

Zapis JSON
{
  "title": string,
  "url": string
}
Pola
title

string

Tytuł, który ma być wyświetlany w przypisaniu.

url

string

Adres URL, do którego ma prowadzić link atrybucji.

Adnotacje do narzędzi

Adnotacje narzędzia są wysyłane do klientów MCP w celu opisania podstawowego ryzyka związanego z danym narzędziem. Większość klientów traktuje te wskazówki jako niezaufane, ale można ich używać do określania, kiedy użytkownikowi może zostać wysłany monit o potwierdzenie.

Oprócz ciągu tytułu zdefiniowano te wskazówki logiczne:

  • readOnlyHint: jeśli wartość jest prawdziwa, narzędzie nie modyfikuje środowiska. Wartość domyślna: fałsz.
  • destructiveHint: jeśli ma wartość Prawda, narzędzie może wykonywać działania destrukcyjne. Jeśli wartość to „false”, narzędzie może wykonywać tylko działania dodające. Wartość domyślna: true.
  • idempotentHint: jeśli ma wartość „true”, wielokrotne wywoływanie narzędzia z tymi samymi argumentami nie będzie miało dodatkowego wpływu na jego środowisko. Wartość domyślna: fałsz.
  • openWorldHint: jeśli wartość to „true”, narzędzie może wchodzić w interakcje z „otwartym światem” podmiotów zewnętrznych. Jeśli wartość jest fałszywa, narzędzie może wchodzić w interakcje tylko z podmiotami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie byłoby narzędziem typu otwarty świat, a narzędzie do zapamiętywania nie.

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