Akıllı Uygulamalar

Bağlı Uygulamalar Platformu ile uygulamanızı Gemini ve Arama'ya genişletme

Hoparlörler

  • Kateryna Semenova

    Kıdemli Geliştirici İlişkileri Mühendisi

  • Mai Lowe

    Grup Ürün Müdürü

Hakkında

Konuşma hakkında

Yeni Bağlı Uygulamalar Platformu, uygulamanızın hizmetlerini doğrudan Gemini'a, Arama'daki AI Modu'na ve Android akıllı sistemine entegre etmenize olanak tanır. Bu oturumda, kullanmaya başlamanıza yardımcı olacak pratik bir kılavuz sunulmaktadır. Kod örneklerini kullanarak ve gerçek hayattan örnek olay incelemelerinden öğrenerek geliştirme yaşam döngüsünü inceleyeceğiz: Kullanıcılara yapay zeka destekli iş akışlarında ulaşmak için ilk bağlı uygulamanızı oluşturma, test etme ve yayınlama.

Bu oturumun sonunda şunları yapabileceksiniz:

  • Hizmetinizi Bağlı Uygulamalar Platformu ile entegre edin.
  • Entegrasyonunuzu farklı yapay zeka platformlarında test edin.
  • Uygulamanızın özelliklerini kullanıcıların yapay zeka iş akışlarında yayınlayın.

Özet

  • Bağlı Uygulamalar Platformu, açıklayıcı şemalar kullanarak Gemini ve Arama'da uygulama özelliklerini başlatmak için tek bir giriş noktası sağlar. ABD'deki geliştiriciler için önizlemeyle başlayarak aşamalı olarak kullanıma sunulacaktır.
  • Entegrasyonlar, AppFunctions Jetpack kitaplığı aracılığıyla uzak sunucular veya yerel cihaz üzerinde sunucular üzerinden Model Context Protocol (MCP) standardını kullanır. Uzak sunucular, iframe içinde oluşturulan özel kullanıcı arayüzünü de döndürebilir.
  • Onaylar, kullanıcı güvenini korumak için riskle birlikte ölçeklendirilir. Geliştiriciler, araçları salt okunur olarak veya destructiveHint ile işaretleyerek Gemini'ın, verileri değiştiren ya da silen işlemler için açık onay istemesine yardımcı olur.
  • Gemini Geliştirici Modu, herkese açık uç noktalara yönelik araç çağrılarını ve gecikmeyi incelemenize olanak tanır. Bu özellik şu anda ABD'deki geliştiriciler tarafından kullanılabilir.
  • Google Connected Console, onaylanan geliştiriciler için üretim sürümünü yönetir. Uç noktaları yapılandırır, seçili platformlardaki test kullanıcılarını yönetir ve uygulamanızı incelemeye gönderirsiniz.

Kaynaklar

Gemini Notebook

Konular

  • gemini
  • search
  • connected-apps
  • mcp
  • appfunctions
  • android

Transkript

Giriş

  • Herkese merhaba.

  • Ben Mai. Gemini Bağlı Uygulamalar Platformu'nun ürün lideriyim.

  • Daha sonra, DevRel mühendisimiz Kate de size bilgi verecek.

  • Şimdi sahneye çıkacak.

  • Bugün, uygulamanızı Google'ın en popüler temsilci ürünlerinden Gemini ve Arama'ya nasıl genişletebileceğinizden bahsedeceğiz.

  • Bağlı uygulamaların kullanıcılarımız için nasıl ve neden faydalı ve sihirli olduğunu anlatacağız.

  • Daha da iyisi, bir tane oluşturmak için ne gerektiğini göstereceğiz.

  • Haydi başlayalım.

  • Birçoğumuz uygulama ekosisteminde gerçekten büyük bir değişimin yaşandığını fark etmişizdir.

  • Kullanıcıların cihazlarını kullanma, yanıt arama ve işlerini halletme şekli yalnızca gelişmekle kalmıyor.

  • Bu durum kökten değişti.

  • Kullanıcılar artık tarayıcıları açıp farklı yerlere dokunmuyor.

  • Gemini gibi asistanlarla doğrudan sohbet ediyorlar.

  • Gemini'a karmaşık sorular soruyor, Arama'da çok formatlı olarak yanıt arıyorlar.

  • Android cihazların yalnızca söylediklerini anlamasını değil, ne yapmak istediklerini de bilmesini bekliyorlar.

  • Herhangi bir günde yapabileceğiniz kendi iş akışlarınızdan bazılarını düşünün.

  • Gemini'dan, belirli bir zamanda ve yerde arkadaşlarınızla eğlenceli bir hafta sonu geçirmek için beyin fırtınası yapmanıza yardımcı olmasını istediğinizi varsayalım.

  • Günümüzdeki modeller bu planı saniyeler içinde işleyebilir.

  • Harika bir şey.

  • Düzenli.

  • Peki sonra ne olacak?

  • Sona erer.

  • Kullanıcı bir engelle karşılaşır ve yalnızca bir planla, hiçbir şey onaylanmadan öylece kalır.

  • Model ne yapacağını bilir ancak bunu yapacak elleri yoktur.

  • Bu nedenle, Gemini ile sohbetinizdeki bilgileri kopyalayıp başka bir uygulamaya yapıştırmanız gerekir.

  • Mobil cihazlarda bazen çok hantal olabiliyor.

  • Sonra da tüm bunları hatırlayıp yazmanız gerekir.

  • Bu bilişsel sıçrama ve sürtüşme, büyüyü tamamen bozuyor.

  • Peki, bu sizin için ne anlama geliyor?

  • Bu durum, uygulamanıza zengin ve ilgi çekici kullanıcılar çekmek yerine sohbet balonunda sıkışıp kalmış, satın alma niyeti yüksek bir kullanıcı talebiniz olduğu anlamına gelir.

  • Bağlı uygulamalar, kullanıcılarımıza tam olarak bulundukları yerde ulaşmamıza yardımcı olduğu için ezber bozuyor.

  • Şu anda Gemini gibi asistanlarla sohbet etmek için çok fazla zaman harcıyorlar.

  • Kullanıcının gerçek bir işlem yapma niyeti göstermesi, yolculuğundaki son derece değerli bir andır.

  • Pasif bir şekilde gezinmezler.

  • Hemen yapmak istedikleri belirli bir şey vardır.

  • Uygulamalar ile bu üretken modeller arasındaki entegrasyonlar sayesinde Gemini gibi asistanlar, soruları yanıtlamanın ötesine geçerek işlerinizi halletmenize yardımcı olur.

  • Kullanıcı önceliklendirilmiş yapılacaklar listesi istediğinde, yaklaşan bir gezi için araba kiralamak istediğinde veya yeni bulduğu bir tarif için malzeme satın almak istediğinde uygulamanız sayfanın alt kısmında statik bir bağlantı olarak görünmez.

  • Sihirli bir dokunuşla bu işlemi anında gerçekleştirebilirsiniz.

  • Her geliştirici ve ürün liderinin bunu düşündüğünü bildiğim için bir konuya açıklık getirmek istiyorum: Bağlı uygulamalar, uygulamanızı soyutlamakla ilgili değildir.

  • Markanız, iş mantığınız, kimliği doğrulanmış ilişkileriniz ve özel kullanıcı arayüzü deneyimleriniz size aittir.

  • Bağlı uygulamalar, hizmetlerinizi temsilci API yüzeyine entegre ederek Google'ın temsilci ürünlerinin, satın alma niyeti yüksek kullanıcıları doğrudan ürününüze sorunsuz bir şekilde yönlendirmesini sağlar.

Bağlı Uygulamalar Platformu

  • Bugün, Bağlı Uygulamalar Platformu'nun resmi olarak kullanıma sunulduğunu duyurmaktan büyük heyecan duyuyorum.

  • Geçmişte, Google ürünleri genelinde kullanıcılara ulaşmak için her ürünle ayrı bir entegrasyon yapılması gerekiyordu.

  • Android uygulama işlemi veya kısayolu istiyorsanız kendiniz oluşturmanız gerekiyordu.

  • Arama entegrasyonu, bir diğeri.

  • Ancak işleri sizin için mümkün olduğunca kolay ve harika hale getirmek istiyoruz.

  • Bu nedenle, uygulamanızı birden fazla Google temsilci ürününde kullanıma sunmanız için tek bir giriş noktası sağlayacak şekilde oryantasyonu standartlaştırdık.

  • Artık uygulamanızın işlevselliğini standart bildirim şemalarını kullanarak bir kez oluşturmanız yeterli. Bu sayede, uygulamanız Gemini ve Arama gibi iki önemli ürünümüzde de kullanılabilir hale gelir.

  • Yakında daha fazla ürün de eklenecek.

  • Şimdi bu erişimden ve sizin için ne anlama geldiğinden bahsedelim.

  • Android, Gemini ve Arama'da Google kullanıcılarına ulaşmak için birden fazla özel eklenti oluşturmanız, dört farklı geliştirici konsolunu yönetmeniz ve çeşitli kimlik doğrulama işlemleri yapmanız gerekmez.

  • Birleştirilmiş platformumuz sayesinde araç tanımlarınızı bir kez oluşturup kaydetmeniz yeterlidir.

  • İstediğiniz Google ürünlerini seçersiniz, biz de yeni Google Connected Console'da size tek bir başlatma düğmesi sunarız.

  • Yayınladığınızda, yetenekleriniz Gemini veya Arama'yı kullanan herkes tarafından keşfedilebilir hale gelir.

  • Kullanıcılar dizüstü bilgisayarlarında Gemini'a yazarken, web'de Arama'da bir dizi sorgu yaparken veya Android'de asistan özelliklerini kullanırken uygulamanızı tam olarak ihtiyaç duydukları anda ve yerde kullanma seçeneğine sahip olacaklar.

  • Bu nedenle, platformumuzu önizleme sürümümüzden başlayarak aşamalı olarak kullanıma açacağız.

  • Tüm ekibin, tüm özellikleri mümkün olduğunca çok kullanıcıya en kısa sürede sunmak için yoğun bir şekilde çalıştığından emin olabilirsiniz.

  • Önizlemenin bu aşamasında platformu yalnızca ABD'deki geliştiricilerin kullanımına açıyoruz.

  • Erişim için bir form doldurarak kaydolabilirsiniz. Bu formu developers.google.com/connected-apps adresindeki geliştirici kılavuzumuzda veya Google Play geliştiricisiyseniz Google Play Console'unuzun ana sayfasında bulabilirsiniz.

  • Sıradaki soru şu: Bu modelleri oluşturmak ne kadar zor?

  • REST API veya Android intent'leriniz varsa iyi bir başlangıç noktasındasınız demektir.

  • Geliştiricilerin aşina olduğu kavramları temel alıyoruz.

  • Platformumuz, hem sunucu tabanlı hem de Android'e özel MCP'ler aracılığıyla Model Context Protocol (MCP) standardıyla entegre olur.

  • Bu deneyimi daha da iyi ve kolay hale getirmek için bugün Gemini'da Geliştirici Modu adlı yepyeni bir özelliği kullanıma sunuyoruz. Bu özelliğe şu anda ABD'deki tüm kullanıcılar erişebilir.

  • Bu sayede uygulamanızı Gemini'da deneyebilir, hata durumları, gecikme ve model yanıtları hakkında anında geri bildirim alabilirsiniz.

  • Yakında kendi değerlendirme setlerinizi oluşturabilecek, kalite metriği puan kartları ve karşılaştırmalar alabileceksiniz.

  • Harika olacak.

  • Platforma erişiminiz ne olursa olsun uygulamanızı her zaman Geliştirici Modu'nda deneyebilirsiniz.

  • Daha fazla ayrıntı öğrenmek için sabırsızlandığınızı biliyorum. Kate benden hemen sonra sahneye çıkacak ve birkaç dakika içinde size her şeyi anlatacak.

Güven, gizlilik ve kullanıcı kontrolü

  • Öncelikle, her zaman daha önemli olan bir konudan, yani kullanıcı güveninden bahsetmem gerekiyor.

  • Temsilcilerin bir başkası adına işlem yapmasından bahsettiğimizde ilk soru genellikle "Kullanıcının kontrolü elinde tutmasını nasıl sağlarız?" olur.

  • Bu konuyu birkaç basit kavramla açıklayalım.

  • İlk olarak, onaylarımız riskle birlikte ölçeklendirilir.

  • Her araç çağrısından önce pop-up göstermeyeceğiz.

  • Bir şeyi aramak, menüdeki ürünlerin stok durumunu kontrol etmek, sipariş takibi yapmak sorunsuz bir şekilde gerçekleşmelidir.

  • Ancak bir işlemin gerçek sonuçları olduğunda (ör. paylaşılan bir şeyi düzenleme, rezervasyon tamamlama veya kullanıcının kolayca geri alamayacağı bir şeyi silme) model, işlem gerçekleşmeden önce kullanıcıdan açıkça onay almayı amaçlar.

  • İkinci olarak, hassas veriler gizlenmez, gösterilir.

  • Bu nedenle ürünlerimiz, uygulamanızla hangi kişisel bilgilerin paylaşılabileceğini kontrol edecek şekilde tasarlanmıştır.

  • Hassas bir şey algılanırsa kullanıcıya tam olarak neyin paylaşıldığını gösteririz. Böylece kullanıcı, uygulamanızla devam edip etmeyeceğine o anda karar verebilir.

  • Üçüncü olarak, soru sorarken net oluyoruz.

  • "Emin misiniz?" gibi belirsiz bir soru sormak yerine hangi uygulamanın kullanıldığını ve gerçekte neyin gönderildiğini veya değiştirildiğini belirtiriz.

  • Bu sayede onay, kullanıcının rastgele tıkladığı bir şey olmaktan çıkıp gerçekten karar vermesine yardımcı olur.

  • Kimse sürekli onay vermek istemediğinden, kullanıcılara bu soruların ne sıklıkta sorulacağı konusunda daha fazla kontrol imkanı sunuluyor.

  • Örneğin, Gemini uygulamasında kullanıcılar, işleme her zaman izin verilip verilmeyeceğini uygulama ve hatta işlem bazında seçebilir.

  • Bu nedenle, araçlarınızı dürüstçe işaretlemenizi rica ediyoruz.

  • Salt okunur olanları, nelerin değiştiğini ve nelerin veri sildiğini işaretleyin.

  • Bu sinyaller, ürünlerimizin kullanıcıyı ne zaman dahil edeceğine karar vermesine yardımcı olur.

  • Kate birkaç dakika içinde size bunu nasıl yapacağınızı gösterecek.

İş ortağı deneyimleri ve üretime geçiş süreci

  • Şimdi, bahsettiğimiz hafta sonu yolculuğuna, planlama kısmına geri dönelim.

  • Bunun ne kadar zor ve parçalı olduğunu hatırlıyor musunuz?

  • Bir arkadaş grubu için harika bir planınız vardı ancak bir engelle karşılaştınız. Uygulamalar arasında geçiş yaparak içerikleri kopyalayıp yapıştırmanız gerekti.

  • Viator ve Ticketmaster, ilk iş ortaklarımızdan ikisi ve kullanıcıya bulunduğu yerde ulaşma konusunda gerçek bir fırsat gördüler.

  • Bizimle iş ortaklığı yapmaya ve bu duvarı kaldırmaya karar verdiler. Böylece, satın alma niyeti yüksek olan bu kullanıcı doğrudan Gemini'dan uygulamalarına erişebildi.

  • Bu iş ortaklarının geliştirdiği bağlı uygulamalar sayesinde tüm yolculuk çok daha sorunsuz ve akıcı hale geliyor.

  • Şimdi bir göz atalım.

  • Kullanıcı, uygulamaları bağlar ve Gemini'dan Viator'da gündüz yemek turu ve Ticketmaster'da 4 kişilik bir grup için konser biletleri bulmasını ister.

  • Gemini, bu özelliği tanıyabilir ve Viator ile Ticketmaster araçlarını doğrudan doğru grup boyutu, tarihler ve tercihlerle çağırabilir.

  • Her iki uygulama da sohbetten ayrılmadan gerçek zamanlı müsaitlik durumunu alır ve kullanıcı için doğrudan sohbet içinde zengin, etkileşimli deneyimler sunar.

  • Viator ve Ticketmaster gibi iş ortakları, kullanıcıların çıkmaz sokaklara girmesini ve bir sürü sekmeyle uğraşmasını önler. Kullanıcılar, ihtiyaç duydukları her şeyi anında yapabilir, yemek turu duraklarını keşfedebilir, konser koltuklarını seçebilir ve keşiften harekete geçmeye kadar her şeyi sorunsuz bir şekilde gerçekleştirebilir.

  • Yani statik uygulama başlatıcılar dönemi sona eriyor ve yerini akıllı, proaktif ve temsilci tabanlı deneyimlere bırakıyor.

  • Kullanıcılarınız zaten Arama ve Gemini'ı kullanarak yardım istiyor.

  • Birlikte, kullanıcıların yanıtların ötesine geçmesine yardımcı olabilir ve gerçekten güçlü ve sihirli deneyimler sunabiliriz.

  • Benim anlatacaklarım bu kadar.

  • Şimdi sözü Kate'e bırakıyorum. Kate, bağlı bir uygulamanın tam olarak nasıl oluşturulacağını anlatacak.

  • Yukarı çıkın.

  • Herkese merhaba.

  • Ben Kate. Geliştirici İlişkileri Mühendisi olarak sizin gibi geliştiricilerin Bağlı Uygulamalar Platformu'na entegre olmasına yardımcı oluyorum.

  • Bu nedenle, bağlı uygulamanızı nasıl test edeceğinizi, oluşturacağınızı ve dağıtacağınızı adım adım anlatacağım.

  • Mai'nin daha önce de belirttiği gibi, Bağlı Uygulamalar Platformu ile entegrasyon için iki temel yöntem vardır: MCP protokolünü kullanarak uzak MCP sunucusu üzerinden veya AppFunctions kitaplığını kullanarak cihazda uzak MCP sunucunuzu oluşturabileceğiniz Android MCP üzerinden.

  • Android, iOS ve web gibi platformlar arasında entegrasyon yapmak istediğinizde uzak MCP sunucularını kullanmanızı öneririz.

  • Bazı geliştiricilerden, uygulama verileriniz yalnızca cihazda mevcut olduğunda bazen yerel yürütmeyi tercih ettiğinize dair geri bildirimler de aldık.

  • Bu kullanım alanları için AppFunctions Jetpack kitaplığını kullanarak Android MCP'yi kullanmanızı öneririz.

  • Dan ve Sarah'nın AppFunctions ve Android MCP aracılığıyla Bağlı Uygulamalar Platformu ile entegrasyonu ayrıntılı olarak ele aldığı özel konuşmayı da izleyebilirsiniz.

Uzak MCP sunucusu entegrasyonu ve demosu

  • Şimdi uzak MCP sunucusu oluşturmayı inceleyelim.

  • Bunun pratikte nasıl çalıştığını göstermek için resmi AndroidDevSummit bağlı uygulamasını geliştirdik.

  • Şimdi size nasıl çalıştığını göstereyim.

  • Canlı demoya geri dönelim.

  • Örneğin, "AndroidDevSummit, XR oturumları hakkında daha fazla bilgi ver" diye sorduğunuzu düşünün.

  • Gemini, bu bağlı uygulama için oluşturduğumuz MCP sunucumuza bağlanıyor.

  • Çağrılacak doğru aracı bulur ve verilerini kullanarak kullanıcı dostu bir yanıt oluşturur.

  • Böylece 1. ve 2. gün için XR ile ilgili oturumların bilgilerini bulur ve sonunda Android botuyla AndroidDevSummit için özel markalı widget'ımızı oluşturur.

  • Bu widget'ı doğrudan Gemini'da kullanabilirsiniz.

  • Programa bakabilir, örneğin konumu değiştirebilir veya güne göre filtreleyebilirsiniz.

  • Ayrıca, XR ile ilgili oturumları aramak istiyorsanız farklı konulara göre filtreleme yapabilir, ayrıntıları ve konuşmacıları inceleyebilirsiniz.

  • Harika!

  • Her şey Gemini'da, markanıza özel deneyiminizde. Kullanıcıların başka bir uygulamaya geçmesi, başka bir uygulamada bilgi araması gerekmiyor. Her şey tek bir yerde, etkileşime girmeden, geçiş yapmadan veya uygulamadan ayrılmadan.

  • Slaytlara geri dönelim.

MCP sunucusu geliştirme ve özel kullanıcı arayüzü

  • Şimdi de bu bağlı uygulamaları nasıl oluşturacağınızı inceleyelim.

  • FastMCP kitaplığıyla MCP sunucunuzu başlatmak çok kolaydır ancak uymanız gereken dört önemli en iyi uygulama vardır.

  • Öncelikle sunucuya açık talimatlar vermeniz gerekir.

    from mcp.server.fastmcp import FastMCP
    
    mcp = FastMCP(
        name="ADS-MCP",
        instructions=(
            "A Model Context Protocol server providing event "
            "overview, schedules, sessions, speakers, and "
            "sandbox demos for the Android Developer Summit "
        ),
    )
  • MCP sunucunuzu başlatırken her zaman bağlı uygulamanızın alanını ve özelliklerini açıklayan net talimatlar tanımlayın.

  • Bağlı Uygulamalar Platformu, sunucunuza ne zaman yetki vereceğini bilmek için bu talimatları kullanır.

  • Ayrıca, daha sonra göstereceğim Google Connected Console da bu talimatların mevcut olduğunu açıkça doğrular.

  • İkinci olarak, güvenlik ve kontrol için araç ek açıklamaları ekleyin.

    @mcp.tool(
        title="List Sessions",
    
        annotations=ToolAnnotations(
            readOnlyHint=True,
            destructiveHint=False,
        ),
    
        meta={ … },
    )
    def list_sessions( … )
    …
  • ADS sunucumuz için bu iki ek açıklamayı kullanırız.

  • Aracınızın salt okunur olduğu veya verileri değiştirdiği zamanların model tarafından bilinmesi önemlidir.

  • Bu nedenle, kullanıcı bilgilerini düzenleyen veya silen araçlarınız varsa bunları düzenleme veya silme işlemleri yapabilecek şekilde işaretlemek için her zaman bu destructiveHint kullanın.

  • Bu sayede Bağlı Uygulamalar Platformu, kullanıcıya bu işlemi tamamlamayı kabul ettiğini belirten bir onay mesajı göstermesi gerektiğini bilir.

  • Araçlarınızı Google Connected Console'da da yapılandırabilirsiniz. Bunu daha sonra göstereceğim.

  • Üçüncü olarak, kesin türlere sahip şemalar ve semantik docstring'ler.

    def list_sessions(
        track: Optional[str] = None,
        location: Optional[str] = None,
    ) -> List[Dict[str, Any]]:
        """Lists all sessions, optionally filtered by track
        (e.g. 'Tools and performance', 'Apps Foundation',
        'AI experiences', 'Android XR') or location
        (e.g. 'MTV', 'Mountain View', 'London', 'LON').
        """
        …
  • Parametre docstring'lerinizi isteminizin bir parçası olarak değerlendirin.

  • Bu list_sessions aracında, araçlar ve performans gibi beklenen değerleri veya konum için MTV ile Londra'yı açıkça belgeliyoruz.

  • Doğru araç çağrısı için en önemli faktör, net ve açıklayıcı şemalardır.

  • Son olarak da kullanıcı arayüzü kaynak meta verilerini bağlama.

    @mcp.tool(
        …
        meta={
            "ui": {
                "resourceUri": "ui://ads-mcp/summit-app",
            },
            …
        },
    )
    def list_sessions(…)
    …
  • Meta verilerdeki kullanıcı arayüzü tanımımıza bakın.

  • Bu meta veriler, Gemini'a araç çıkışını doğrudan buradaki özel kullanıcı arayüzü kaynağımıza bağlamasını söyleyen köprüdür.

  • Bu da bizi kullanıcı arayüzünü oluşturmaya getiriyor.

    @mcp.resource(
        "ui://ads-mcp/summit-app",
        name="summit-app",
        mime_type="text/html",
    )
    def get_summit_ui() -> ResourceResult:
        """Renders the interactive ADS 2026 dashboard."""
        return ResourceResult([
            ResourceContent(
                _build_summit_ui_html(),
                mime_type="text/html",
            )
        ])
  • Bağlı Uygulamalar Platformu, MCP Uygulamaları kullanıcı arayüzü aracılığıyla MCP sunucunuzdan zengin kullanıcı arayüzleri oluşturmanıza olanak tanır.

  • Android Dev Summit gibi özel ve markayı yansıtan bir arayüz için tam esneklik istediğinizde MCP kullanıcı arayüzü kaynağını kullanabilirsiniz.

  • Gemini, güvenli ve korumalı alana alınmış bir iFrame'de oluşturulabilir.

Test ve doğrulama iş akışı

  • Ardından, bağlı uygulamanızı doğrudan yerel makinenizden üretim ortamına test etme ve dağıtma adımlarını göstereceğim.

  • Evet.

  • Şimdi, yerel olarak nasıl geliştirme ve test yapabileceğinize bakalım.

  • Geliştirme sırasında, ilk komutu kullanarak sunucunuzu yerel olarak kolayca çalıştırabilirsiniz.

    ./venv/bin/python server.py
    npx @modelcontextprotocol/inspector
  • Ardından, sunucunuzda hata ayıklamak, mevcut araçları görmek ve kullanıcı arayüzüyle etkileşimde bulunmak için MCP Inspector'ı kullanabilirsiniz.

  • Bu, Android Dev Summit için MCP Inspector'ın nasıl göründüğüne dair bir örnektir.

  • Böylece araçları ve kullanıcı arayüzünü görebilir, yerel olarak test edebilirsiniz.

  • İkinci olarak, erişim elde etmek ve Gemini Geliştirici Modu'nda doğrulamak için MCP sunucunuzu uzak bir uç noktaya dağıtmanız gerekir.

  • MCP uç noktanızı bu altyapılardan herhangi birinde veya herhangi bir bulut sağlayıcıda barındırabilirsiniz.

  • Ancak Google Cloud'u tercih ederseniz Google Cloud CLI ile kullanımı çok kolaydır.

  • Dağıtım için bu basit komutu kullanmanız yeterlidir. Ardından uygulamanıza uzaktan erişebilirsiniz.

    gcloud run deploy ads-mcp-server
  • Sonraki adım, Gemini Geliştirici Modu'nda herkese açık uç noktanızı doğrulamaktır.

  • Şimdi canlı demoya geri dönelim ve geliştirici modunu pratikte nasıl kullanacağınızı göstereyim.

  • Ayarlar'a gidip Geliştirici Modu'nu tıklayarak geliştirici modunu kolayca bulabilirsiniz.

  • Ardından, test etmek istediğiniz bağlı uygulamayı seçmeniz gerekir.

  • Örneğin, buraya bir MCP sunucusu URL'si girerek yeni bir sunucu oluşturabilirsiniz.

  • Test için ADS MCP adında bir uç nokta oluşturdum.

  • Gemini ile uçtan uca nasıl çalıştığını test etmek istiyorum.

  • Şimdi bir soru soralım.

  • "ADS MCP, etkinlik hakkında daha fazla bilgi ver."

  • Şu anda Gemini, MCP sunucumuzu çağırıyor. Geliştirici modunda hangi aracın çağrıldığını da görebilirsiniz.

  • Örneğin, "Etkinlik hakkında daha fazla bilgi ver" istemi için get_summit_info çağrıldı.

  • Başarılı olan yanıtı da görebilirsiniz.

  • Gecikmeyi de görebilirsiniz.

  • Tüm istek ve yanıt ayrıntılarını da görebilirsiniz.

  • Örneğin, yanıtımız için çok fazla bilgiye sahibiz.

  • Ayrıca biraz yakınlaştırıp hangi bilgilere ihtiyacınız olduğunu görebilir ve her şeyin doğru olup olmadığını kontrol edebilirsiniz.

  • Ayrıca, ekip arkadaşınızla paylaşmak isterseniz kopyalayabilirsiniz. Bu çok kullanışlı bir özelliktir.

  • Ayrıca, tüm olay günlüğünü dışa aktarabilir ve gerekirse paylaşabilirsiniz.

  • Ayrıca, mevcut diğer araçları da keşfedebilirsiniz. Geliştirici modunda zirve bilgilerini alma, oturum listeleme ve diğer araçları görebilirsiniz.

  • Ayrıca farklı kullanıcı bağlamlarını simüle etmek için ortamı değiştirebilirsiniz.

  • Örneğin, günün saatini veya dil gibi tercihleri değiştirebilir, kimlik doğrulamayı ayarlayabilirsiniz.

  • Geliştirici Modu bu şekildeydi.

  • Evet, MCP sunucunuzu oluşturmaya hemen başlayabilir ve bugünden itibaren Geliştirici Modu'nda test edebilirsiniz.

  • Bu özellik şu anda herkes tarafından kullanılabilir.

  • Şimdi Slaytlar'a geri dönelim.

  • Anladım.

  • Geliştirici Modu'nda test yaptınız ve her şey yolunda görünüyor. Bir sonraki adımda ne yapmanız gerekir?

  • Platformumuza erişmek için erişim kaydı yapmanız ve önce bu talep formunu doldurmanız gerekir.

  • Bu bilgilere belgelerimizden ve Google Connected Console'dan da ulaşabilirsiniz.

Üretim ve kaynaklar için hazırlık

  • Gönderiminiz onaylandıktan sonra Google Connected Console'a erişebilir ve uygulamanızı üretim sürümüne hazırlayabilirsiniz.

  • Console'da uygulamanızı hazırlamak için birkaç adım yeterlidir.

  • Öncelikle orada yeni bir bağlı uygulama oluşturmanız ve bir ad vermeniz gerekir.

  • Ardından, özellikleri ve kategori gibi bilgileri seçmeniz gerekir.

  • Örneğin, bu örnekte üretkenliği seçtik ve "Oluştur"u tıkladık.

  • Ardından, uygulama ayrıntıları bölümünde görünen ad ve simge gibi herkese açık verileri sağlamanız gerekir. Ayrıca, kullanıcılara yönelik açıklamanın yanı sıra uygulamanızın özellikleri, sınırlamaları, örnek istemler ve diğer verileri de sağlamanız gerekir.

  • Ardından, MCP sunucunuzu yapılandırırken uç noktanızı belirtmeniz gerekir.

  • Bu alanın size ait olduğunu doğrulamanız gerekir. Ayrıca, senkronizasyon araçları için kimlik bilgilerini yapılandırabilirsiniz.

  • Google Console'un MCP şemanızın anlık görüntüsünü aldığını unutmayın. Bu nedenle, şemanızda değişiklik yaptığınızda geri dönüp yeniden dağıtmanız gerekir.

  • Ardından, uygulamanızın kullanılabilirliğini yapılandırabilirsiniz.

  • Uygulamanızın hangi bölgelerde, dillerde ve yüzeylerde kullanılacağını seçebilir, diğer araç yapılandırmalarını ayrı ayrı yapabilirsiniz.

  • Buradan "Değişiklikleri aktar" düğmesine basıp Gemini Stage incelemesi için gönderebilirsiniz.

  • Ardından, "Test kullanıcılarını yönetin" bölümüne test hesapları da ekleyebilirsiniz.

  • Ardından, web'de, mobil cihazlarda veya daha önce seçtiğiniz Gemini ya da Arama gibi platformlarda bu test hesaplarıyla canlı olarak test edip son önizleme için gönderebilirsiniz.

  • Uygulamanız hazır olduğunda, bu düğmeyi göndererek uygulamanızı dünya genelinde veya seçtiğiniz bölgelerdeki kullanıcılarınız için üretim kanalına yayınlayabilirsiniz.

  • İşte bu kadar!

  • Uygulama özelliklerinizi ister Uzak MCP Sunucusu ister Android MCP aracılığıyla sunun, Bağlı Uygulamalar Platformu ile neler geliştirebileceğinizi görmek için sabırsızlanıyoruz.

  • Bu muhteşem entegrasyonları oluşturmanızda size destek olmaktan memnuniyet duyarız.

  • Bu dokümanları ve bu barkodu kullanarak erişebileceğiniz örneklerimizi incelemeniz yeterlidir.

  • Bugün bize katıldığınız için çok teşekkür ederiz.

  • Keyifli kodlamalar!

Kod

Kod snippet'leri

"MCP sunucusu geliştirme ve özel kullanıcı arayüzü" videosunda 14:56'daki Python snippet'i
from mcp.server.fastmcp import FastMCP

mcp = FastMCP(
    name="ADS-MCP",
    instructions=(
        "A Model Context Protocol server providing event "
        "overview, schedules, sessions, speakers, and "
        "sandbox demos for the Android Developer Summit "
    ),
)
"MCP server development and custom UI" (MCP sunucu geliştirme ve özel kullanıcı arayüzü) videosunda 15:22'deki Python snippet'i
@mcp.tool(
    title="List Sessions",

    annotations=ToolAnnotations(
        readOnlyHint=True,
        destructiveHint=False,
    ),

    meta={ … },
)
def list_sessions( … )
…
"MCP sunucusu geliştirme ve özel kullanıcı arayüzü" videosunda 16:08'deki Python snippet'i
def list_sessions(
    track: Optional[str] = None,
    location: Optional[str] = None,
) -> List[Dict[str, Any]]:
    """Lists all sessions, optionally filtered by track
    (e.g. 'Tools and performance', 'Apps Foundation',
    'AI experiences', 'Android XR') or location
    (e.g. 'MTV', 'Mountain View', 'London', 'LON').
    """
    …
"MCP server development and custom UI" (MCP sunucu geliştirme ve özel kullanıcı arayüzü) videosunda 16:32'deki Python snippet'i
@mcp.tool(
    …
    meta={
        "ui": {
            "resourceUri": "ui://ads-mcp/summit-app",
        },
        …
    },
)
def list_sessions(…)
…
"MCP server development and custom UI" (MCP sunucu geliştirme ve özel kullanıcı arayüzü) videosunda 16:49'daki Python snippet'i
@mcp.resource(
    "ui://ads-mcp/summit-app",
    name="summit-app",
    mime_type="text/html",
)
def get_summit_ui() -> ResourceResult:
    """Renders the interactive ADS 2026 dashboard."""
    return ResourceResult([
        ResourceContent(
            _build_summit_ui_html(),
            mime_type="text/html",
        )
    ])
"Test ve doğrulama iş akışı"nda 17:29'daki kabuk snippet'i
./venv/bin/python server.py
npx @modelcontextprotocol/inspector
"Test ve doğrulama iş akışı"nda 18:16'daki kabuk snippet'i
gcloud run deploy ads-mcp-server