MCP Tools Reference: mapstools.googleapis.com

Araç: compute_routes

Başlangıç ve varış noktası arasında (isteğe bağlı olarak ara duraklar üzerinden) seyahat rotalarını hesaplar. Her rotanın mesafesini ve süresini döndürür.

Giriş Şartları (KRİTİK):

  1. origin ve destination (nesneler - ZORUNLU): Her biri, aşağıdakilerden tam olarak biri kullanılarak sağlanmalıdır:

    • address (dize, ör. 'Eiffel Tower, Paris'). Adlandırılmış yerler, önemli noktalar ve işletmeler doğrudan çözümlenir. Bu nedenle, yalnızca bir ara noktanın coğrafi kodunu almak için önce search_places yöntemini çağırmayın. Kullanıcının bahsettiği şehir, bölge veya ülkeleri ekleyin.
    • lat_lng (nesne, {"latitude": number, "longitude": number}).
    • place_id (dize, ör. 'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), örneğin search_places.
  2. intermediate_waypoints (nesne dizisi - İSTEĞE BAĞLI): Başlangıç ve varış noktası arasında sırayla geçilecek en fazla 10 durak. origin ile aynı biçim. TRANSIT ile desteklenmez. Yalnızca kullanıcının istediği durakları ekleyin.

  3. travel_mode (enum - İSTEĞE BAĞLI): DRIVE (varsayılan), WALK, BICYCLE veya TRANSIT.

  4. Zamanlama (İSTEĞE BAĞLI - en fazla BİR tane ayarlayın): UTC farkı içeren RFC 3339 zaman damgaları (ör. '2026-09-19T08:00:00-07:00'). Varsayılan olarak "Şimdi hareket ediyor" seçeneği kullanılır. TRANSIT için zaman, geçmişte en fazla 7 gün veya gelecekte en fazla 100 gün olabilir. Diğer modlarda ise zaman, gelecekte 365 güne kadar olabilir ve geçmişte olmamalıdır.

    • departure_time: Kullanıcı ne zaman ayrılacağını söylediğinde (ör. "yarın sabah 8'de") kullanın.
    • arrival_time: Kullanıcı ne zaman varması gerektiğini söylediğinde kullanılır (ör. "sabah 9'da orada ol").
  5. routing_preference (enum - İSTEĞE BAĞLI):

    • ROUTING_PREFERENCE_TRAFFIC_UNAWARE (varsayılan): Canlı trafik, olaylar ve kapalı yollar yok sayılır. En düşük gecikme.
    • ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: Mümkün olduğunda canlı trafik koşullarını kullanır. WALK veya BICYCLE için desteklenmez. Bu ayarı YALNIZCA kullanıcı trafik, yoğunluk veya trafiğe göre ayarlanmış TVS hakkında soru sorduğunda kullanın. Daha yüksek maliyet ve gecikmeye neden olur.
  6. location_bias (nesne - İSTEĞE BAĞLI): Ara nokta adreslerindeki yer adlarının anlam belirsizliğini gidermek için kullanılan {"latitude": number, "longitude": number}. Ad belirsizse (ör. "Springfield") ve kullanıcı bölge belirtmediyse adı address içinde verildiği gibi bırakın ve bölgeyi tahmin etmek yerine location_bias değerini amaçlanan alana ayarlayın.

  7. compute_alternative_routes (boole - İSTEĞE BAĞLI): Yalnızca kullanıcı rota seçenekleri veya alternatifleri istediğinde true olarak ayarlayın. Varsayılan değer false olup yalnızca önerilen rotayı döndürür.

  8. include_polyline (boolean - İSTEĞE BAĞLI): Yalnızca rota geometrisi (encoded_polyline) gerektiğinde true olarak ayarlanır. Varsayılan değer: false.

Araç Çağrısı Talimatları:

  • Başlangıç veya hedef eksikse aracı çağırmadan önce kullanıcıdan açıklama istemeniz ZORUNLUDUR.
  • "A ile B arasındaki mesafe ne kadar?" sorularında B'yi origin, A'yı ise destination olarak kullanın.

Örnek Araç Çağrısı: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Louvre Museum"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}

Instructions for Response:

  • Alternatif rotalar istendiğinde rotalar en çok önerilenden en az önerilene doğru sıralanır.
  • routes boşsa kullanıcıya rota bulunamadığını söyleyin. Rotayı tahmin etmeyin.
  • Yalnızca araç tarafından döndürülen gerçekleri belirtin. Adım adım yol tarifleri, toplu taşıma hatları, istasyonlar, peronlar veya aktarmalar uydurmayın.
  • Temellendirilmiş çıkış, mümkün olduğunda her rotanın attribution alanı kullanılarak kaynağa atfedilmelidir.

Aşağıdaki kod örneğinde, compute_routes MCP aracını çağırmak için curl öğesinin nasıl kullanılacağı gösterilmektedir.

Curl İsteği
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
}'

Giriş şeması

ComputeRoutesRequest.

ComputeRoutesRequest

JSON gösterimi
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode),
  "intermediateWaypoints": [
    {
      object (Waypoint)
    }
  ],
  "routingPreference": enum (RoutingPreference),
  "locationBias": {
    object (LatLng)
  },
  "includePolyline": boolean,
  "computeAlternativeRoutes": boolean,

  // Union field timing can be only one of the following:
  "departureTime": string,
  "arrivalTime": string
  // End of list of possible types for union field timing.
}
Alanlar
origin

object (Waypoint)

Zorunlu. Kalkış ara noktası.

destination

object (Waypoint)

Zorunlu. Hedef ara nokta.

travelMode

enum (RouteTravelMode)

İsteğe bağlıdır. Ulaşım şeklini belirtir.

intermediateWaypoints[]

object (Waypoint)

İsteğe bağlıdır. Başlangıç ve varış noktası arasında sırayla geçilecek ara duraklar. En fazla 10 ara nokta desteklenir. travel_mode, TRANSIT olduğunda ara yol noktaları desteklenmez.

routingPreference

enum (RoutingPreference)

İsteğe bağlıdır. Trafik verilerinin rotayı hesaplamak için nasıl kullanılacağını belirler. travel_mode, WALK veya BICYCLE olduğunda ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL desteklenmez. TRANSIT için gecikmeler ve iptaller gibi anlık toplu taşıma verilerini etkinleştirir.

locationBias

object (LatLng)

İsteğe bağlıdır. Arama sonuçlarının yönlendirileceği bir konum (ör. ara nokta metin sorgularının anlam belirsizliğini gidermek için).

includePolyline

boolean

İsteğe bağlıdır. Kodlanmış çoklu çizginin yanıt rotalarına dahil edilip edilmeyeceği. Varsayılan değer: false. true olarak ayarlandığında Route.encoded_polyline döndürülür.

computeAlternativeRoutes

boolean

İsteğe bağlıdır. Önerilen rotaya ek olarak alternatif rotaların hesaplanıp hesaplanmayacağı. Varsayılan olarak false değerine ayarlanır. Bu durumda yalnızca önerilen rota döndürülür. Doğru değerine ayarlandığında, mevcut tüm rotalar döndürülür ancak her istek için alternatifler mevcut olmayabilir.

timing birleşik alanı. Başlangıç noktasından ne zaman ayrılacağınızı veya son ara noktaya ne zaman varacağınızı belirtir. Belirtilmezse varsayılan olarak geçerli saatte kalkış yapılır. TRANSIT için zaman, en fazla 7 gün önce ve en fazla 100 gün sonra olmalıdır. Diğer seyahat modları için zaman geçmişte olmamalı ve gelecekte en fazla 365 gün olmalıdır. timing aşağıdakilerden yalnızca biri olabilir:
departureTime

string (Timestamp format)

İsteğe bağlıdır. Rotanın kalkış saatine göre hesaplanması gerektiğini belirtir.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

arrivalTime

string (Timestamp format)

İsteğe bağlıdır. Rotanın varış zamanına göre hesaplanması gerektiğini belirtir.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

Zaman damgası

JSON gösterimi
{
  "seconds": string,
  "nanos": integer
}
Alanlar
seconds

string (int64 format)

Unix epoch 1970-01-01T00:00:00Z'den bu yana geçen UTC zamanının saniye cinsinden değerini temsil eder. -62135596800 ile 253402300799 arasında olmalıdır (0001-01-01T00:00:00Z ile 9999-12-31T23:59:59Z arasına karşılık gelir).

nanos

integer

Nanosaniye çözünürlüğünde, saniyenin negatif olmayan kesirleri. Bu alan, sürenin nanosaniye kısmıdır, saniyeye alternatif değildir. Kesirli negatif saniye değerleri, zamanı ileriye doğru sayan negatif olmayan nanos değerlerine sahip olmalıdır. 0 ile 999.999.999 (her iki değer de dahil) arasında olmalıdır.

Ara nokta

JSON gösterimi
{

  // 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.
}
Alanlar
location_type birleşik alanı. Bir konumu temsil etmenin farklı yolları. location_type aşağıdakilerden yalnızca biri olabilir:
latLng

object (LatLng)

Coğrafi koordinatlar kullanılarak belirtilen bir nokta.

placeId

string

Ara nokta ile ilişkili yer kimliği.

address

string

Kullanıcıların okuyabileceği adres veya Plus Code. Ayrıntılar için https://plus.codes adresini ziyaret edin.

LatLng

JSON gösterimi
{
  "latitude": number,
  "longitude": number
}
Alanlar
latitude

number

Derece cinsinden enlem. [-90,0, +90,0] aralığında olmalıdır.

longitude

number

Derece cinsinden boylam. [-180,0, +180,0] aralığında olmalıdır.

RouteTravelMode

Seyahat modunu belirtmek için kullanılan bir değerler kümesi.

Sıralamalar
ROUTE_TRAVEL_MODE_UNSPECIFIED Seyahat modu belirtilmedi. Varsayılan değer: DRIVE.
DRIVE Binek otomobille seyahat
WALK Yürüyerek seyahat edin. NOT: WALK rotaları beta sürümündedir ve bazen net kaldırımlar veya yaya yolları eksik olabilir. Uygulamanızda gösterdiğiniz tüm yürüyüşler için kullanıcıya bu uyarıyı göstermeniz gerekir.
BICYCLE Bisikletle seyahat edin.
TRANSIT Toplu taşımayla seyahat edin.

RoutingPreference

Rota hesaplanırken dikkate alınacak faktörleri belirten bir değerler kümesi.

Sıralamalar
ROUTING_PREFERENCE_UNSPECIFIED Yönlendirme tercihi belirtilmedi. Varsayılan değer: ROUTING_PREFERENCE_TRAFFIC_UNAWARE.
ROUTING_PREFERENCE_TRAFFIC_UNAWARE Canlı trafik koşullarını dikkate almadan rotaları hesaplar. Trafik koşullarının önemli veya geçerli olmadığı durumlarda uygundur. Bu değer kullanıldığında en düşük gecikme süresi elde edilir.
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL

Trafik verileri mevcut olduğunda canlı trafik koşullarını dikkate alarak rotaları hesaplar. TRANSIT için, varsa gecikmeler ve iptaller gibi anlık toplu taşıma verilerini kullanır.

Bu değer, Pro katmanını tetikler ve daha yüksek faturalandırma maliyeti ile gecikmeye neden olur. Bu özellik yalnızca izin verilenler listesindeki müşteriler tarafından kullanılabilir. İzin verilenler listesine eklenmezse istek ROUTING_PREFERENCE_TRAFFIC_UNAWARE değerine geri döner.

Çıkış şeması

ComputeRoutesResponse.

ComputeRoutesResponse

JSON gösterimi
{
  "routes": [
    {
      object (Route)
    }
  ]
}
Alanlar
routes[]

object (Route)

İstenen başlangıç ve varış noktası arasındaki rotaları içerir. Bu rotalar, en çok önerilenden en az önerilene doğru sıralanır. ComputeRoutesRequest.compute_alternative_routes, true olarak ayarlanmadığı sürece yalnızca bir rota döndürülür.

Rota

JSON gösterimi
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  },
  "encodedPolyline": string,
  "retrievalToken": string
}
Alanlar
distanceMeters

integer

Rotanın metre cinsinden seyahat mesafesi.

duration

string (Duration format)

Rotada gezinmek için gereken süre.

En fazla dokuz kesirli basamak içeren ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

attribution

object (Attribution)

Rotayla birlikte gösterilmesi gereken ilişkilendirme.

encodedPolyline

string

Rotanın kodlanmış çoklu çizgisi. https://developers.google.com/maps/documentation/utilities/polylinealgorithm adresini inceleyin.

retrievalToken

string

SearchAlongRoute gibi alt araçlarda bu belirli rotayı almak için kullanılabilecek bir jeton. 10 dakika boyunca geçerlidir.

Süre

JSON gösterimi
{
  "seconds": string,
  "nanos": integer
}
Alanlar
seconds

string (int64 format)

Zaman aralığının işaretli saniyeleri. -315.576.000.000 ile +315.576.000.000 arasında (değerler dahil) olmalıdır. Not: Bu sınırlar şu şekilde hesaplanır: 60 sn/dk * 60 dk/sa * 24 sa/gün * 365,25 gün/yıl * 10.000 yıl

nanos

integer

Zaman aralığının nanosaniye çözünürlüğünde saniyenin işaretli kesirleri. Bir saniyeden kısa süreler, 0 seconds alanı ve pozitif veya negatif nanos alanı ile temsil edilir. Bir saniye veya daha uzun süreler için nanos alanının sıfır olmayan değeri, seconds alanıyla aynı işarete sahip olmalıdır. -999.999.999 ile +999.999.999 arasında (her iki değer de dahil) olmalıdır.

İlişkilendirme

JSON gösterimi
{
  "title": string,
  "url": string
}
Alanlar
title

string

İlişkilendirme için gösterilecek başlık.

url

string

İlişkilendirme için bağlantı verilecek URL.

Araç Notları

Araç notları, belirli bir aracın temel riskini açıklamak için MCP istemcilerine gönderilir. Çoğu istemci bu ipuçlarını güvenilir olmayan olarak değerlendirir ancak kullanıcıya ne zaman onay istemi gönderileceğine karar vermek için kullanılabilir.

Başlık dizesiyle birlikte aşağıdaki boole ipuçları şu şekilde tanımlanır:

  • readOnlyHint: Doğru ise araç, ortamını değiştirmez. Varsayılan: false.
  • destructiveHint: Doğru ise araç, yıkıcı işlemler gerçekleştirebilir. Yanlış ise araç yalnızca ekleme işlemleri gerçekleştirebilir. Varsayılan: true.
  • idempotentHint: Doğru ise aracın aynı bağımsız değişkenlerle tekrar tekrar çağrılması, ortamı üzerinde ek bir etki yaratmaz. Varsayılan: false.
  • openWorldHint: Doğru ise araç, harici varlıkların "açık dünyası" ile etkileşime girebilir. Yanlış ise araç yalnızca dahili varlıklarla etkileşim kurabilir. Örneğin, web arama aracı açık dünya iken bellek aracı açık dünya değildir.

Yıkıcı İpucu: ❌ | Eşgüçlü İpucu: ❌ | Salt Okunur İpucu: ✅ | Açık Dünya İpucu: ❌