Veritabanları için MCP Araç Kutusu: BigQuery veri kümelerini MCP istemcilerinin kullanımına sunma

1. Giriş

Bu codelab'de, BigQuery veri kümelerinizi kullanıma sunmak için Veritabanları için MCP Araç Kutusu'nu kullanacaksınız.

Bu codelab'de aşağıdaki gibi adım adım bir yaklaşım kullanacaksınız:

  1. Herkese açık BigQuery veri kümeleri programından belirli bir BigQuery veri kümesi ("Google Cloud Sürüm Notları") belirleyin.
  2. BigQuery veri kümesine bağlanan Veritabanları için MCP Araç Kutusu'nu ayarlayın.
  3. Kullanıcının Google Cloud sürüm notlarıyla ilgili sorgularını yanıtlamak için MCP Araç Kutusu'nu kullanacak bir aracı geliştirmek üzere Agent Development Kit'i (ADK) kullanma

Yapacaklarınız

  • Google Cloud sürüm notlarını, herkese açık bir BigQuery veri kümesini diğer MCP müşterilerine (IDE'ler, araçlar vb.) MCP arayüzü olarak sunmak için Veritabanları için MCP Araç Kutusu'nu ayarlayın.

Neler öğreneceksiniz?

  • BigQuery'nin herkese açık veri kümelerini keşfedin ve belirli bir veri kümesi seçin.
  • MCP müşterilerine sunmak istediğimiz BigQuery herkese açık veri kümesi için Veritabanları için MCP Araç Kutusu'nu ayarlayın.
  • Kullanıcı sorgularını yanıtlamak için Agent Development Kit (ADK) kullanarak bir temsilci tasarlayıp geliştirme.
  • Ajanı ve Veritabanları için MCP Araç Kutusu'nu yerel ortamda test edin.

Gerekenler

  • Chrome web tarayıcısı.
  • Yerel bir Python geliştirme ortamı.

2. Başlamadan önce

Proje oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin .
  3. bq'nun önceden yüklendiği, Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. Google Cloud Console'un üst kısmında Cloud Shell'i Etkinleştir'i tıklayın.

Cloud Shell'i etkinleştir düğmesinin resmi

  1. Cloud Shell'e bağlandıktan sonra aşağıdaki komutu kullanarak kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını kontrol edin:
gcloud auth list
  1. gcloud komutunun projeniz hakkında bilgi sahibi olduğunu onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın.
gcloud config list project
  1. Projeniz ayarlanmamışsa ayarlamak için aşağıdaki komutu kullanın:
gcloud config set project <YOUR_PROJECT_ID>
  1. Aşağıda gösterilen komutu kullanarak gerekli API'leri etkinleştirin. Bu işlem birkaç dakika sürebilir. Lütfen bekleyin.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       run.googleapis.com \
                       cloudbuild.googleapis.com \
                       cloudfunctions.googleapis.com \
                       aiplatform.googleapis.com \
                       sqladmin.googleapis.com \
                       compute.googleapis.com 

Komut başarıyla yürütüldüğünde aşağıda gösterilene benzer bir mesaj görürsünüz:

Operation "operations/..." finished successfully.

Gcloud komutuna alternatif olarak, her ürünü arayarak veya bu bağlantıyı kullanarak konsolu kullanabilirsiniz.

Herhangi bir API atlanırsa uygulama sırasında istediğiniz zaman etkinleştirebilirsiniz.

gcloud komutları ve kullanımı için belgelere bakın.

3. Google Sürüm Notları Veri Kümesi ve MCP müşterileri

İlk olarak, resmi Google Cloud Sürüm Notları web sayfasında düzenli olarak güncellenen Google Cloud sürüm notlarına göz atalım. Bu sayfanın ekran görüntüsü aşağıda gösterilmektedir:

e177d58f7a866838.png

Feed URL'sine abone olabilirsiniz ancak bu sürüm notları hakkında Agent Chat'te soru sormak daha kolay olmaz mıydı? Örneğin, "Google Cloud sürüm notları hakkında beni bilgilendir" gibi basit bir sorgu.

4. Veritabanları için MCP Araç Kutusu

Veritabanları için MCP Araç Kutusu, veritabanları için açık kaynaklı bir MCP sunucusudur. Kurumsal düzeyde ve üretim kalitesinde olacak şekilde tasarlanmıştır. Bağlantı havuzu oluşturma ve kimlik doğrulama gibi karmaşık işlemleri yöneterek araçları daha kolay, hızlı ve güvenli bir şekilde geliştirmenizi sağlar.

Toolbox, temsilcilerinizin veritabanınızdaki verilere erişmesine olanak tanıyan üretken yapay zeka araçları oluşturmanıza yardımcı olur. Araç kutusu şunları sağlar:

  • Basitleştirilmiş geliştirme: Araçları 10 satırdan daha az kodla aracınıza entegre edin, araçları birden fazla aracı veya çerçeve arasında yeniden kullanın ve araçların yeni sürümlerini daha kolay dağıtın.
  • Daha iyi performans: Bağlantı havuzu oluşturma, kimlik doğrulama gibi en iyi uygulamalar.
  • Gelişmiş güvenlik: Verilerinize daha güvenli erişim için entegre kimlik doğrulama
  • Uçtan uca gözlemlenebilirlik: OpenTelemetry için yerleşik destekle kullanıma hazır metrikler ve izleme.
  • Araç kutusu, veritabanlarını IDE'nizdeki veritabanları da dahil olmak üzere MCP özellikli tüm yapay zeka asistanlarına kolayca bağlamanızı sağlar.

Araç kutusu, uygulamanızın düzenleme çerçevesi ile veritabanınız arasında yer alır ve araçları değiştirmek, dağıtmak veya çağırmak için kullanılan bir kontrol düzlemi sağlar. Araçları depolamak ve güncellemek için merkezi bir konum sağlayarak araçlarınızın yönetimini basitleştirir. Böylece, araçları temsilciler ve uygulamalar arasında paylaşabilir ve uygulamanızı yeniden dağıtmak zorunda kalmadan bu araçları güncelleyebilirsiniz.

12c16960e74b57f9.png

Basit kelimelerle özetlemek gerekirse:

  1. MCP Toolbox, ikili program, container görüntüsü olarak kullanılabilir ya da kaynaktan oluşturulabilir.
  2. tools.yaml dosyası aracılığıyla yapılandırdığınız bir dizi aracı kullanıma sunar. Araçlar, veri kaynaklarınıza bağlanma olarak düşünülebilir. Desteklediği çeşitli veri kaynaklarını (AlloyDB, BigQuery vb.) görebilirsiniz.
  3. Bu araç kutusu artık MCP'yi desteklediğinden, otomatik olarak bir MCP sunucusu uç noktasına sahip olursunuz. Bu uç nokta, daha sonra ajanlar (IDE'ler) tarafından kullanılabilir veya Agent Development Kit (ADK) gibi çeşitli çerçeveler kullanarak Ajan Uygulamalarınızı geliştirirken kullanılabilir.

Bu blog yayınında aşağıdaki alanlara odaklanacağız:

7527a2a4bff20adc.png

Özetle, Veritabanları için MCP Araç Kutusu'nda BigQuery veri kümemize nasıl bağlanılacağını bilen bir yapılandırma oluşturacağız. Ardından, MCP Araç Kutusu uç noktasıyla entegre olacak ve veri setimiz hakkında soru sormak için doğal sorgular göndermemize olanak tanıyacak bir temsilciyi Temsilci Geliştirme Kiti (ADK) kullanarak geliştireceğiz. Bunu, BigQuery veri kümenizle nasıl iletişim kuracağını bilen ve bazı sorgular çalıştıran, geliştirdiğiniz bir ajan uygulaması olarak düşünebilirsiniz.

5. Google Cloud için BigQuery Veri Kümesi Sürüm Notları

Google Cloud Herkese Açık Veri Kümesi Programı, uygulamalarınız için çeşitli veri kümeleri sunan bir programdır. Bu tür veri kümelerinden biri Google Cloud Sürüm Notları veritabanıdır. Bu veri kümesi, resmi Google Cloud Sürüm Notları web sayfası ile aynı bilgileri sağlar ve herkese açık olarak sorgulanabilir bir veri kümesi olarak kullanılabilir.

adb5593504dbb71d.png

Test olarak, aşağıdaki basit sorguyu çalıştırarak veri kümesini doğruluyorum:

SELECT
       product_name,description,published_at
     FROM
       `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
     WHERE
       DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
     GROUP BY product_name,description,published_at
     ORDER BY published_at DESC

Bu sorgu, Yayın Notları veri kümesindeki son 7 gün içinde yayınlanmış kayıtların listesini gösterir.

Bunu, istediğiniz başka bir veri kümesi ve ilgili sorgularınız ve parametrelerinizle değiştirin. Şimdi yapmamız gereken tek şey, bunu Veritabanları için MCP Araç Kutusu'nda veri kaynağı ve araç olarak ayarlamak. Bunu nasıl yapacağımıza bakalım.

6. MCP Toolbox for Databases'i yükleme

Yerel makinenizde bir terminal açın ve mcp-toolbox adlı bir klasör oluşturun.

mkdir mcp-toolbox

Aşağıdaki komutu kullanarak mcp-toolbox klasörüne gidin:

cd mcp-toolbox

Aşağıdaki komut dosyası aracılığıyla MCP Toolbox for Databases'in ikili sürümünü yükleyin. Aşağıdaki komut Linux içindir. Mac veya Windows kullanıyorsanız doğru ikili dosyayı indirdiğinizden emin olun. İşletim sisteminiz ve mimariniz için yayınlar sayfasına göz atın ve doğru ikili dosyayı indirin.

export VERSION=1.1.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

Artık araç kutusunun ikili sürümünü kullanabiliriz. Bir sonraki adım, araç kutusunu veri kaynaklarımız ve diğer yapılandırmalarla yapılandırmaktır.

7. Veritabanları için MCP Araç Kutusu'nu yapılandırma

Şimdi, Veritabanı için MCP Araç Kutusu'nun ihtiyaç duyduğu tools.yaml dosyasında BigQuery veri kümemizi ve araçlarımızı tanımlamamız gerekiyor. tools.yaml dosyası, Toolbox'ı yapılandırmanın birincil yoludur.

Aynı klasörde (ör.mcp-toolbox) tools.yaml adlı bir dosya oluşturun. Bu dosyanın içeriği aşağıda gösterilmiştir.

Cloud Shell'de bulunan nano düzenleyiciyi kullanabilirsiniz. Nano komutu şöyledir: "nano tools.yaml".

YOUR_PROJECT_ID değerini Google Cloud proje kimliğinizle değiştirmeyi unutmayın.

kind: source
name: my-bq-source
type: bigquery
project: gcp-experiments-349209
---
kind: tool
name: search_release_notes_bq
type: bigquery-sql
source: my-bq-source
description: Use this tool to get information on Google Cloud Release Notes.
statement: |
    SELECT
     product_name,description,published_at
    FROM
      `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
    WHERE
     DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
    GROUP BY product_name,description,published_at
    ORDER BY published_at DESC;
---
kind: toolset
name: my_bq_toolset
tools:
  - search_release_notes_bq

Dosyayı kısaca açıklayalım:

  1. Kaynaklar, bir aracın etkileşimde bulunabileceği farklı veri kaynaklarınızı temsil eder. Kaynak, bir aracın etkileşimde bulunabileceği bir veri kaynağını temsil eder. Kaynakları, tools.yaml dosyanızın kaynaklar bölümünde harita olarak tanımlayabilirsiniz. Genellikle bir kaynak yapılandırması, veritabanına bağlanmak ve veritabanıyla etkileşim kurmak için gereken tüm bilgileri içerir. Bizim durumumuzda bir BigQuery kaynağı my-bq-source tanımladık ve Google Cloud proje kimliğinizi sağlamanız gerekiyor. Daha fazla bilgi için Kaynaklar referansına bakın.
  2. Araçlar, bir aracının gerçekleştirebileceği işlemleri (ör. bir kaynağa okuma ve yazma) tanımlar. Araç, aracınızın gerçekleştirebileceği bir işlemi (ör. SQL ifadesi çalıştırma) temsil eder. Araçlar'ı tools.yaml dosyanızın araçlar bölümünde harita olarak tanımlayabilirsiniz. Genellikle bir aracın işlem yapması için kaynak gerekir. Bu örnekte tek bir araç search_release_notes_bq tanımlıyoruz. Bu, ilk adımda tanımladığımız BigQuery kaynağını my-bq-source ifade eder. Ayrıca, yapay zeka aracısı istemcileri tarafından kullanılacak ifade ve talimat da bulunur. Daha fazla bilgi için Araçlar referansına bakın.
  3. Son olarak, birlikte yüklemek istediğiniz araç gruplarını tanımlamanıza olanak tanıyan Araç Seti'ni ele alalım. Bu, aracıya veya uygulamaya göre farklı gruplar tanımlamak için yararlı olabilir. Bizim durumumuzda, şu anda tanımladığımız yalnızca bir mevcut aracı search_release_notes_bq tanımladığımız bir araç seti tanımımız var. Farklı araçların kombinasyonundan oluşan birden fazla araç seti kullanabilirsiniz.

Bu nedenle, şu anda sorguya göre son 7 günün sürüm notlarını alan yalnızca bir araç tanımladık. Ancak parametrelerle çeşitli kombinasyonlar da oluşturabilirsiniz.

Veritabanları için MCP Araç Kutusu'ndaki BigQuery veri kaynağı yapılandırması bölümünde daha fazla yapılandırma ayrıntısına göz atın.

8. Veritabanları için MCP Araç Kutusu'nu test etme

Araç kutusunu mcp-toolbox klasöründeki tools.yaml dosyasıyla indirip yapılandırdık. Önce yerel olarak uygulayalım.

Aşağıdaki komutu çalıştırın:

./toolbox --config "tools.yaml"

Başarılı bir yürütme işleminden sonra, aşağıdakine benzer bir örnek çıkışla sunucu başlatma işlemini görmeniz gerekir:

2026-04-29T10:26:15.435384+05:30 INFO "Initialized 1 sources: my-bq-source" 
2026-04-29T10:26:15.435424+05:30 INFO "Initialized 0 authServices: " 
2026-04-29T10:26:15.435428+05:30 INFO "Initialized 0 embeddingModels: " 
2026-04-29T10:26:15.435446+05:30 INFO "Initialized 1 tools: search_release_notes_bq" 
2026-04-29T10:26:15.435456+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default" 
2026-04-29T10:26:15.435461+05:30 INFO "Initialized 0 prompts: " 
2026-04-29T10:26:15.435467+05:30 INFO "Initialized 1 promptsets: default" 
2026-04-29T10:26:15.435487+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag" 
2026-04-29T10:26:15.435508+05:30 WARN "wildcard (`*`) allows all hosts to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-hosts` flag to prevent DNS rebinding attacks" 
2026-04-29T10:26:15.435728+05:30 INFO "Server ready to serve!" 

MCP Toolbox sunucusu varsayılan olarak 5000 bağlantı noktasında çalışır. 5000 bağlantı noktasının zaten kullanıldığını görürseniz aşağıdaki komutta gösterildiği gibi başka bir bağlantı noktası (ör. 7000) kullanabilirsiniz. Lütfen sonraki komutlarda 5000 bağlantı noktası yerine 7000 bağlantı noktasını kullanın.

./toolbox --config "tools.yaml" --port 7000

Bunu test etmek için Cloud Shell'i kullanalım.

Aşağıda gösterildiği gibi Cloud Shell'de Web Önizlemesi'ni tıklayın:

b8a52769f092e5d0.png

Change port'u (Bağlantı noktasını değiştir) tıklayın ve bağlantı noktasını aşağıda gösterildiği gibi 5000 olarak ayarlayıp Change and Preview'u (Değiştir ve Önizle) tıklayın.

3ccac41b1f8996c5.png

Bu işlem sonucunda aşağıdaki çıkış elde edilir:

e2a7d3ddaac0c3be.png

Araçları, Veritabanları için MCP Araç Kutusu kullanıcı arayüzü üzerinden test etme

Araç kutusu, parametreleri değiştirerek, başlıkları yöneterek ve çağrıları yürüterek araçlarla doğrudan etkileşim kurmak için görsel bir arayüz (Araç Kutusu kullanıcı arayüzü) sağlar. Tüm bu işlemler basit bir web kullanıcı arayüzünde gerçekleştirilir.

Bunu test etmek isterseniz Toolbox sunucusunu başlatmak için kullandığımız önceki komutu --ui seçeneğiyle çalıştırabilirsiniz.

Bunu yapmak için, çalışıyor olabilecek Veritabanları için MCP Araç Kutusu Sunucusu'nun önceki örneğini kapatın ve aşağıdaki komutu verin:

./toolbox --tools-file "tools.yaml" --ui

İdeal olarak, sunucunun veri kaynaklarımıza bağlanabildiğini ve araç setini ve araçları yüklediğini gösteren bir çıktı görmeniz gerekir. Aşağıda örnek bir çıktı verilmiştir. Bu çıktıda, Araç Kutusu kullanıcı arayüzünün çalışır durumda olduğu belirtilir.

2026-04-29T10:29:44.750446+05:30 INFO "Initialized 1 sources: my-bq-source" 
2026-04-29T10:29:44.750463+05:30 INFO "Initialized 0 authServices: " 
2026-04-29T10:29:44.750467+05:30 INFO "Initialized 0 embeddingModels: " 
2026-04-29T10:29:44.750474+05:30 INFO "Initialized 1 tools: search_release_notes_bq" 
2026-04-29T10:29:44.750482+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default" 
2026-04-29T10:29:44.750487+05:30 INFO "Initialized 0 prompts: " 
2026-04-29T10:29:44.750493+05:30 INFO "Initialized 1 promptsets: default" 
2026-04-29T10:29:44.7505+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag" 
2026-04-29T10:29:44.750512+05:30 WARN "wildcard (`*`) allows all hosts to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-hosts` flag to prevent DNS rebinding attacks" 
2026-04-29T10:29:44.750601+05:30 INFO "Server ready to serve!" 
2026-04-29T10:29:44.750605+05:30 INFO "Toolbox UI is up and running at: http://127.0.0.1:5000/ui" 

Kullanıcı arayüzü URL'sini tıklayın ve URL'nin sonunda /ui olduğundan emin olun. Aşağıdaki gibi bir kullanıcı arayüzü gösterilir:

cfad8321357e4322.png

Yapılandırılmış araçları görüntülemek için soldaki Araçlar seçeneğini tıklayın. Aşağıda gösterildiği gibi, bizim durumumuzda yalnızca bir araç (search_release_notes_bq) olmalıdır:

a315a6613e9e38ea.png

Araçları (search_release_notes_bq) tıkladığınızda aracı test edebileceğiniz bir sayfa açılır. Sağlanacak parametre olmadığından sonucu görmek için Aracı Çalıştır'ı tıklamanız yeterlidir. Örnek bir çalıştırma aşağıda gösterilmektedir:

de883f9d92de6537.png

9. Agent Development Kit (ADK) ile aracımızı yazma

Agent Development Kit'i (ADK) yükleme

Cloud Shell'de yeni bir terminal sekmesi açın ve aşağıdaki gibi my-agents adlı bir klasör oluşturun. my-agents klasörüne de gidin.

mkdir my-agents
cd my-agents

Şimdi de venv kullanarak aşağıdaki şekilde sanal bir Python ortamı oluşturalım:

python -m venv .venv

Sanal ortamı aşağıdaki gibi etkinleştirin:

source .venv/bin/activate

ADK ve MCP Toolbox for Databases paketlerini langchain bağımlılığıyla birlikte aşağıdaki şekilde yükleyin:

pip install google-adk toolbox-core

Artık adk yardımcı programını aşağıdaki şekilde çağırabilirsiniz.

adk

Komutların listesi gösterilir.

$ adk
Usage: adk [OPTIONS] COMMAND [ARGS]...

  Agent Development Kit CLI tools.

Options:
  --help  Show this message and exit.

Commands:
  api_server  Starts a FastAPI server for agents.
  create      Creates a new app in the current folder with prepopulated agent template.
  deploy      Deploys agent to hosted environments.
  eval        Evaluates an agent given the eval sets.
  run         Runs an interactive CLI for a certain agent.
  web         Starts a FastAPI server with Web UI for agents.

İlk Temsilci Uygulamamızı Oluşturma

Şimdi, aşağıdaki gibi bir uygulama adı **(gcp_releasenotes_agent_app)**ile adk create komutunu kullanarak Google Cloud Sürüm Notları Aracı Uygulaması için bir iskele oluşturmak üzere adk aracını kullanacağız.

adk create gcp_releasenotes_agent_app

Adımları uygulayın ve aşağıdakileri seçin:

  • Kök ajan için model seçmeye yönelik Gemini modeli.
  • Arka uç için Vertex AI'ı seçin.
  • Varsayılan Google proje kimliğiniz ve bölgeniz gösterilir. Varsayılanı seçin.
Choose a model for the root agent:
1. gemini-2.5-flash
2. Other models (fill later)

Choose model (1, 2): 1
1. Google AI
2. Vertex AI
Choose a backend (1, 2): 2

You need an existing Google Cloud account and project, check out this link for details:
https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai

Enter Google Cloud project ID [YOUR_GOOGLE_PROJECT_ID]: 
Enter Google Cloud region [us-central1]: 

Agent created in ../my-agents/gcp_releasenotes_agent_app:
- .env
- __init__.py
- agent.py

Varsayılan şablonun ve Agent için gerekli dosyaların oluşturulduğu klasörü inceleyin.

İlk olarak .env dosyası. İçeriği aşağıda gösterilmiştir:

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_GOOGLE_PROJECT_REGION

Değerler, Google Cloud projesi kimliği ve konumuna ilişkin ilgili değerlerle birlikte Vertex AI üzerinden Gemini'ı kullanacağımızı gösterir.

Ardından, klasörü modül olarak işaretleyen ve aracıyı agent.py dosyasından içe aktaran tek bir ifadeye sahip olan __init__.py dosyamız var.

from . import agent

Son olarak, agent.py dosyasına göz atalım. İçerikler aşağıda gösterilmektedir:

from google.adk.agents import Agent

root_agent = Agent(
    model='gemini-2.5-flash',
    name='root_agent',
    description='A helpful assistant for user questions.',
    instruction='Answer user questions to the best of your knowledge',
)

Bu, ADK ile yazabileceğiniz en basit ajandır. ADK dokümanları sayfasında, bir temsilcinin belirli hedeflere ulaşmak için bağımsız hareket edecek şekilde tasarlanmış, kendi kendine yeten bir yürütme birimi olduğu belirtilir. Temsilciler görevleri yerine getirebilir, kullanıcılarla etkileşim kurabilir, harici araçları kullanabilir ve diğer temsilcilerle koordineli çalışabilir.

Özellikle, genellikle Agent olarak bilinen bir LLMAgent, doğal dili anlamak, akıl yürütmek, plan yapmak, yanıt oluşturmak ve nasıl devam edeceğine veya hangi araçların kullanılacağına dinamik olarak karar vermek için temel motoru olarak Büyük Dil Modelleri'ni (LLM'ler) kullanır. Bu nedenle, esnek ve dil odaklı görevler için idealdir. LLM Aracıları hakkında daha fazla bilgiye buradan ulaşabilirsiniz.

Bu işlem, Agent Development Kit (ADK) kullanarak temel bir ajan oluşturmak için iskelemizi tamamlar. Şimdi aracımızı MCP Toolbox'a bağlayacağız. Böylece bu aracı kullanarak kullanıcının sorgularını (bu örnekte Google Cloud sürüm notları) yanıtlayabilir.

10. Temsilcimizi Araçlara Bağlama

Bu temsilciyi şimdi Araçlar'a bağlayacağız. ADK bağlamında Araç, bir yapay zeka ajanına sağlanan belirli bir yeteneği temsil eder. Bu yetenek, ajanın temel metin oluşturma ve akıl yürütme yeteneklerinin ötesinde işlemler gerçekleştirmesini ve dünyayla etkileşim kurmasını sağlar.

Bu örnekte, aracımızı Veritabanları için MCP Araç Kutusu'nda yapılandırdığımız araçlarla donatacağız.

agent.py dosyasını aşağıdaki kodla değiştirin. Kodda varsayılan bağlantı noktası 5000'in kullanıldığını unutmayın. Ancak alternatif bir bağlantı noktası numarası kullanıyorsanız lütfen bunu kullanın.

from google.adk.agents import Agent
from toolbox_core import ToolboxSyncClient

toolbox = ToolboxSyncClient("http://127.0.0.1:5000")

# Load all the tools
tools = toolbox.load_toolset('my_bq_toolset')

root_agent = Agent(
    name="gcp_releasenotes_agent",
    model="gemini-2.5-flash",
    description=(
        "Agent to answer questions about Google Cloud Release notes."
    ),
    instruction=(
        "You are a helpful agent who can answer user questions about the Google Cloud Release notes. Use the tools to answer the question"
    ),
    tools=tools,
)

Artık, Veritabanları için MCP Araç Kutusu ile yapılandırılmış BigQuery veri kümemizden gerçek verileri getirecek olan aracı test edebiliriz.

Bunun için aşağıdaki sırayı izleyin:

Cloud Shell'in bir terminalinde Veritabanları için MCP Araç Kutusu'nu başlatın. Daha önce test ettiğimiz gibi, yerel olarak 5000 numaralı bağlantı noktasında çalışıyor olabilir. Aksi takdirde, sunucuyu başlatmak için aşağıdaki komutu (mcp-toolbox klasöründen) çalıştırın:

./toolbox --config "tools.yaml"

İdeal olarak, sunucunun veri kaynaklarımıza bağlanabildiğini ve araç setini ve araçları yüklediğini gösteren bir çıktı görmeniz gerekir.

MCP sunucusu başarıyla başlatıldıktan sonra başka bir terminalde, aşağıdaki adk run (my-agents klasöründen) komutuyla aracıyı başlatın. Dilerseniz adk web komutunu da kullanabilirsiniz.

$ adk run gcp_releasenotes_agent_app/
Running agent gcp_releasenotes_agent, type exit to exit.
[user]: Hello
[gcp_releasenotes_agent]: Hello! I'm here to help you with Google Cloud Release Notes. What would you like to know today?
[user]: get me the google cloud release notes
[gcp_releasenotes_agent]: Here are the Google Cloud Release Notes:
*   **Cloud Asset Inventory** (Published: 2026-04-28)
    The following resource types are publicly available through the ExportAssets, ListAssets, BatchGetAssetsHistory, QueryAssets, Feed, SearchAllResources, and SearchAllIamPolicies APIs.
    *   App Lifecycle Manager
        *   `saasservicemgmt.googleapis.com/Saas`
        *   `saasservicemgmt.googleapis.com/Tenant`
        *   `saasservicemgmt.googleapis.com/UnitKind`
        *   `saasservicemgmt.googleapis.com/Unit`
        *   `saasservicemgmt.googleapis.com/Release`
    *   Backup and DR
        *   `backupdr.googleapis.com/BackupPlanRevision`
    *   Parallelstore
        *   `parallelstore.googleapis.com/Instance`
    *   Vertex AI
        *   `aiplatform.googleapis.com/DeploymentResourcePool`
*   **Google Cloud Contact Center as a Service** (Published: 2026-04-27)
    **Call scheduling improvements**
    We've made the following improvements to call scheduling for web SDK v3 and the headless web SDK:
    *   **Configurable time slots**. You can configure the length of call-scheduling time slots.
    *   **Day-based time slot selection**. End-users can browse available time slots organized by day.
    *   **Rescheduling**. If an end-user reopens the web SDK and has an existing scheduled call, they're prompted to manage that appointment (reschedule or cancel) before starting a new flow.
    *   **Cancellation**. End-users can cancel a previously scheduled call.
    *   **Queue-level configuration**. You can configure call scheduling at the queue level.
    **Note:** Headless web SDK users must specify `useAdvancedCallScheduling: true` with calls to the `getTimeSlots` method to access these call scheduling improvements.
    Administrators:
    *   There's a new **Scheduled Calls** pane on the **Settings > Calls** page.
    *   There's a new **Scheduled Calls** section in the **Settings > Queue > Web > SELECT_QUEUE** pane.
    *   We moved **Scheduled Call Countdown** and **Scheduled Call Expiration** from **Settings > Calls > Call Details** to **Settings > Calls > Scheduled Calls**.
    *   We've added the following settings to the **Settings > Calls > Scheduled Calls** pane:
        *   **Consumers can schedule calls up to SELECT_INTEGER day(s) in the future**
        *   **Static > Maximum calls per time slot**
    User experience changes:
    *   For **Scheduled Calls**, if you select **Consumers can schedule calls up to SELECT_INTEGER day(s) in the future**, a new **Select a day** screen appears to end-users who reschedule a call.
*   **Compute Engine** (Published: 2026-04-27)
    **Generally available**: Compute Engine now offers support for AI zones. To learn more, see AI zones.
*   **Cloud Storage** (Published: 2026-04-27)
    Cloud Storage now offers support for AI zones. To learn more, see AI zones.
*   **Apigee hybrid** (Published: 2026-04-27)
    **Sidecar authentication for Workload Identity Federation on non-GKE platforms**
    Starting in version v1.14.4, you can now use a sidecar along with Workload Identity Federation on non-GKE platforms to mount security tokens from your preferred identity provider (IDP) for service account authentication. See Use sidecar authentication for Workload Identity Federation on non-GKE platforms.
*   **Cloud Workstations** (Published: 2026-04-27)
    The preconfigured base images include a notification when the `running_timeout` for the workstation is close to being reached.
*   **Cloud Trace** (Published: 2026-04-27)
    Cloud Trace is a service covered by the Cloud Obse

......
......

Aracının, Veritabanları için MCP Araç Kutusu'nda (search_release_notes_bq) yapılandırdığımız aracı kullandığını ve verileri BigQuery veri kümesinden alıp yanıtı buna göre biçimlendirdiğini unutmayın.

11. Tebrikler

Veritabanları için MCP Araç Kutusu'nu başarıyla yapılandırdınız ve MCP istemcilerinde erişim için bir BigQuery veri kümesi oluşturdunuz.

Referans belgeler