MCP Reference: mapstools.googleapis.com

Bu, Maps Grounding Lite API'si tarafından sağlanan bir MCP sunucusudur. Sunucu, geliştiricilerin Google Haritalar Platformu üzerinde LLM uygulamaları oluşturması için araçlar sağlar.

Model Context Protocol (MCP) sunucusu, Büyük Dil Modeli'ne (LLM) veya yapay zeka uygulamasına bağlam, veri ya da özellikler sağlayan harici bir hizmet ile bu hizmeti kullanan uygulama arasında proxy görevi görür. MCP sunucuları, yapay zeka uygulamalarını veritabanları ve web hizmetleri gibi harici sistemlere bağlar ve yanıtlarını yapay zeka uygulamasının anlayabileceği bir biçime çevirir.

Sunucu Kurulumu

Kullanmadan önce MCP sunucularını etkinleştirmeniz ve kimlik doğrulamayı ayarlamanız gerekir. Google ve Google Cloud uzaktan MCP sunucularını kullanma hakkında daha fazla bilgi için Google Cloud MCP sunucularına genel bakış başlıklı makaleyi inceleyin.

Sunucu uç noktaları

MCP hizmeti uç noktası, bir yapay zeka uygulamasının (MCP istemcisinin ana makinesi) güvenli ve standartlaştırılmış bir bağlantı oluşturmak için kullandığı MCP sunucusunun ağ adresi ve iletişim arayüzüdür (genellikle bir URL). Bu uç nokta, LLM'nin bağlam istemek, bir aracı çağırmak veya bir kaynağa erişmek için kullandığı iletişim noktasıdır. Google MCP uç noktaları genel veya bölgesel olabilir.

Maps Grounding Lite API MCP sunucusunun aşağıdaki küresel MCP uç noktası vardır:

  • https://mapstools.googleapis.com/mcp

MCP Araçları

MCP aracı, bir MCP sunucusunun gerçek dünyada işlem yapmak için bir LLM'ye veya yapay zeka uygulamasına sunduğu bir işlev ya da yürütülebilir özelliktir.

Araçlar

mapstools.googleapis.com MCP sunucusunda aşağıdaki araçlar bulunur:

MCP Araçları
search_places

Kullanıcının isteği yerleri, işletmeleri, adresleri, konumları, ilgi çekici yerleri veya Google Haritalar ile ilgili başka bir aramayı bulmak olduğunda bu aracı çağırın.

Giriş Koşulları (ÇOK ÖNEMLİ):

  1. text_query (dize - ZORUNLU): Birincil arama sorgusu. Bu, kullanıcının ne aradığını net bir şekilde tanımlamalıdır.

    • Örnekler: 'restaurants in New York', 'coffee shops near Golden Gate Park', 'SF MoMA', '1600 Amphitheatre Pkwy, Mountain View, CA, USA', 'pets friendly parks in Manhattan, New York', 'date night restaurants in Chicago', 'accessible public libraries in Los Angeles'.
    • Belirli yer ayrıntıları için: İstenen özelliği (ör. 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address') ekleyin.
  2. location_bias (object - İSTEĞE BAĞLI): Belirli bir coğrafi bölgenin yakınındaki sonuçlara öncelik vermek için kullanılır.

    • Biçim: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Kullanım:
      • 5 km yarıçaplı bir alana yönlendirmek için: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Odak noktasına güçlü bir şekilde ağırlık vermek için: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (radius_meters atlanarak).
  3. language_code (dize - İSTEĞE BAĞLI): Arama sonuçları özetinin gösterileceği dil.

    • Biçim: İki harfli bir dil kodu (ISO 639-1), isteğe bağlı olarak bir alt çizgi ve iki harfli bir ülke kodu (ISO 3166-1 alpha-2) ile birlikte, örneğin en, ja, en_US, zh_CN, es_MX. Dil kodu sağlanmazsa sonuçlar İngilizce olarak gösterilir.
  4. region_code (dize - İSTEĞE BAĞLI): Kullanıcının Unicode CLDR bölge kodu. Bu parametre, varsa bölgeye özgü yer adı gibi yer ayrıntılarını göstermek için kullanılır. Parametre, geçerli yasaya göre sonuçları etkileyebilir.

    • Biçim: İki harfli ülke kodu (ISO 3166-1 alfa-2), örneğin US, CA.

Instructions for Tool Call:

  • Konum bilgileri (KRİTİK): Arama, yeterli konum bilgisi içermelidir. Konum belirsizse (ör. yalnızca "pizza yerleri"), text_query içinde belirtmeniz gerekir (ör. "New York'taki pizza yerleri") veya location_bias parametresini kullanmanız gerekir. Belirsizliği gidermek için gerekirse şehir, eyalet/il ve bölge/ülke adını ekleyin.

  • Mümkün olduğunca spesifik ve bağlam açısından zengin text_query yanıtlar verin.

  • Yalnızca koordinatlar açıkça sağlanıyorsa veya kullanıcının bilinen bağlamından konum çıkarımı yapmak daha iyi sonuçlar için uygun ve gerekliyse location_bias kullanın.

  • Temellendirilmiş çıktı, varsa attribution alanındaki bilgiler kullanılarak kaynağa atfedilmelidir.

lookup_weather

Mevcut koşullar, saatlik ve günlük tahminler dahil olmak üzere kapsamlı hava durumu verilerini alır.

Kullanılabilir Veriler: Sıcaklık (Anlık, Hissedilen, Maksimum/Minimum, Isı İndeksi), Rüzgar (Hız, Esme, Yön), Gök Olayları (Gündoğumu/Günbatımı, Ay Evresi), Yağış (Tür, Olasılık, Miktar/QPF), Atmosferik Koşullar (UV İndeksi, Nem, Bulut Örtüsü, Fırtına Olasılığı) ve Coğrafi Kodlu Konum Adresi.

Konum ve Konum Kuralları (ÇOK ÖNEMLİ):

Hava durumu verilerinin istendiği konum, location alanı kullanılarak belirtilir. Bu alan bir "oneof" yapısıdır. Bu nedenle, doğru hava durumu verisi araması için aşağıdaki üç konum alt alanından YALNIZCA BİRİNE değer sağlamanız GEREKİR.

  1. Coğrafi Koordinatlar (lat_lng)

    • Tam enlem/boylam koordinatları verildiğinde kullanın.
    • Örnek: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Los Angeles
  2. Yer kimliği (place_id)

    • Net bir dize tanımlayıcısı (Google Haritalar yer kimliği).
    • place_id, search_places aracından alınabilir.
    • Örnek: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Eyfel Kulesi
  3. Adres Dizesi (address)

    • Coğrafi kodlama için belirli bir biçimde olması gereken serbest biçimli dize.
    • Şehir ve Bölge: Bölge/ülke her zaman dahil edilmelidir (ör. "Londra, Birleşik Krallık", "Londra" değil).
    • Açık Adres: Tam adresi girin (ör. "1600 Pennsylvania Ave NW, Washington, DC").
    • Posta/Zip Kodları: Ülke adıyla birlikte verilmelidir (ör. "90210, ABD", "90210" DEĞİL).
    • Örnek: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

Kullanım Modları:

  • Şu anki hava durumu: Yalnızca location değerini girin. date ve hour değerlerini belirtmeyin.

  • Saatlik Tahmin: location, date ve hour (0-23) değerlerini sağlayın. Belirli zamanlar (ör. "saat 17:00'de") veya "önümüzdeki birkaç saat" ya da "bugün ilerleyen saatlerde" gibi ifadeler için kullanın. Kullanıcı dakikayı belirtirse en yakın saate yuvarlayın. Şu andan itibaren 120 saatten sonraki saatlik tahmin desteklenmez. Geçmişteki saatlik hava durumu 24 saate kadar desteklenir.

  • Günlük Tahmin: location ve date bilgilerini ver. hour özelliğini belirtmeyin. Genel gün istekleri için kullanılır (ör. "yarının hava durumu", "cuma gününün hava durumu", "25.12'nin hava durumu"). Bugünün tarihi bağlamda yer almıyorsa kullanıcıya bu durumu açıklamanız gerekir. Bugün de dahil olmak üzere 10 günü aşan günlük tahmin desteklenmez. Geçmiş hava durumu desteklenmez.

Parametre Kısıtlamaları:

  • Saat dilimleri: Tüm date ve hour girişleri, kullanıcının saat dilimine göre değil, konumun yerel saat dilimine göre olmalıdır.
  • Tarih Biçimi: Girişler {year, month, day} tam sayıya ayrılmalıdır.
  • Birimler: Varsayılan olarak METRIC'dir. Kullanıcı ABD standartlarını ima ederse veya açıkça isterse Fahrenheit/Mil için units_system'yi IMPERIAL olarak ayarlayın.
  • Temellendirilmiş çıktı, varsa attribution alanındaki bilgiler kullanılarak kaynağa atfedilmelidir.

compute_routes

Belirtilen bir başlangıç ve varış noktası arasında seyahat rotası hesaplar. Desteklenen Seyahat Modları: ARABA (varsayılan), YÜRÜME.

Giriş Koşulları (ÖNEMLİ): Hem kalkış hem de varış noktası gerekir. Her biri, ilgili alanın içine yerleştirilmiş olarak aşağıdaki yöntemlerden biri kullanılarak sağlanmalıdır:

  • address: (dize, ör. "Eyfel Kulesi, Paris"). Not: Giriş adresi ne kadar ayrıntılı veya belirli olursa sonuçlar o kadar iyi olur.

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

  • place_id: (dize, örneğin "ChIJOwE_Id1w5EAR4Q27FkL6T_0") Not: Bu kimlik, search_places aracından alınabilir. Giriş türlerinin herhangi bir kombinasyonuna izin verilir (ör. adrese göre başlangıç, lat_lng'ye göre hedef). Başlangıç veya hedef eksikse aracı çağırmayı denemeden önce kullanıcıdan açıklama İSTEMELİSİNİZ.

Örnek Araç Çağrısı: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • Temellendirilmiş çıktı, varsa attribution alanındaki bilgiler kullanılarak kaynağa atfedilmelidir.
resolve_names

Belirli konum sorgularının (önemli yer adları veya tam adresler) toplu listesini standart Google Haritalar yer kimliklerine dönüştürür.

Giriş Koşulları (ÇOK ÖNEMLİ):

  1. queries (nesne dizisi - ZORUNLU): Çözülecek konum sorgularının listesi. En fazla 20 sorgu belirtebilirsiniz.

    • Her sorgu nesnesi şunları içermelidir:
      • text (dize - ZORUNLU): Çözümlenecek belirli bir yer adını veya adresi temsil eden metin sorgusu.
        • Örnekler: 'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'.
  2. location_bias (object - İSTEĞE BAĞLI): Belirli bir coğrafi bölgenin yakınındaki sonuçlara öncelik vermek için kullanılır.

    • Biçim: {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code (dize - İSTEĞE BAĞLI): Sonuçları önyargılı hale getirmek için kullanıcının Unicode CLDR bölge kodu (iki harfli ülke kodu; örneğin, US, CA).

Instructions for Tool Call:

  • Belirginlik (CRITICAL): Sorgular belirli bir yer adını veya adresi temsil etmelidir. 'restaurants' gibi genel aramalar veya 'Starbucks' gibi zincir adları desteklenmez.
  • Çağırmayı planladığınız aşağı akış araçları, ham adres veya yer adı dizelerini doğrudan kabul ediyorsa bu aracı ÇAĞIRMAYIN.

Hata İşleme (KRİTİK):

  • Bu bir toplu işleme aracıdır. Bir istek "karma sonuçlar" döndürebilir (ör. bazı sorgular başarıyla çözülürken diğerleri başarısız olur).
  • results çıkış listesinin, queries giriş dizinleriyle 1:1 eşleneceği garanti edilir. Başarısız olan bir sorgu, results listesindeki ilgili dizinde boş bir Result mesajıyla (entity ayarlanmamış) sonuçlanır.
  • Hangi sorgu dizininin başarısız olduğunu belirlemek için yanıttaki failed_requests harita alanını KONTROL ETMELİSİNİZ. failed_requests anahtarı, istekteki başarısız sorgunun 0 tabanlı dizinini temsil eder. Kısmi bir hata nedeniyle tüm toplu çağrının başarısız olduğunu varsaymayın.
resolve_maps_urls

Bir Google Haritalar URL'leri listesini standart Google Haritalar yer kimliklerine dönüştürür.

Bu aracın çağırılma zamanı (KRİTİK):

  • Kullanıcı bir veya daha fazla Google Haritalar paylaşım bağlantısı ya da URL'si (ör. "https://maps.app.goo.gl/...", "https://www.google.com/maps/place/..." veya "https://maps.google.com/...") biçiminde bir URL'niz varsa temel standart yer kimliklerini ayıklamanız gerekir.
  • Tek bir toplu istekte çözümlenecek en fazla 20 URL belirtebilirsiniz.

Giriş Koşulları (ÇOK ÖNEMLİ):

  • urls (dizi - ZORUNLU): Çözümlenecek Google Haritalar URL'lerinin listesi. Her URL, geçerli ve tek yerli bir Google Haritalar URL'si olmalıdır.

Hata İşleme (KRİTİK):

  • Bu bir toplu işleme aracıdır. Bir istek "karma sonuçlar" döndürebilir (ör. bazı URL'ler başarıyla çözümlenirken diğerleri başarısız olur).
  • entities çıkış listesinin, urls giriş dizinleriyle 1:1 eşleneceği garanti edilir. Başarısız bir URL çözümü, Entity listesindeki ilgili dizinde boş bir Entity mesajıyla (alan ayarlanmamış) sonuçlanır.entities
  • Hangi URL dizininin başarısız olduğunu belirlemek için yanıttaki failed_requests harita alanını KONTROL ETMELİSİNİZ. failed_requests anahtarı, istekteki başarısız URL'nin 0 tabanlı dizinini temsil eder. Kısmi bir hata nedeniyle tüm toplu çağrının başarısız olduğunu varsaymayın.

MCP aracı özelliklerini edinme

Bir MCP sunucusundaki tüm araçlar için MCP aracı özelliklerini almak üzere tools/list yöntemini kullanın. Aşağıdaki örnekte, MCP sunucusunda şu anda kullanılabilen tüm araçları ve özelliklerini listelemek için curl komutunun 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/list",
    "jsonrpc": "2.0",
    "id": 1
}'