MCP Toolbox untuk Database: Membuat set data BigQuery tersedia untuk klien MCP
Tentang codelab ini
1. Pengantar
Dalam codelab ini, Anda akan menggunakan Toolbox MCP untuk Database untuk menyediakan set data BigQuery.
Melalui codelab ini, Anda akan menggunakan pendekatan langkah demi langkah sebagai berikut:
- Identifikasi set data BigQuery tertentu ("Catatan Rilis Google Cloud") dari program set data BigQuery publik.
- Siapkan MCP Toolbox untuk Database, yang terhubung ke set data BigQuery.
- Mengembangkan Agen menggunakan Agent Development Kit (ADK) yang akan menggunakan MCP Toolbox untuk menjawab kueri dari pengguna tentang catatan Rilis Google Cloud
Yang akan Anda lakukan
- Menyiapkan MCP Toolbox for Databases untuk mengekspos catatan Rilis Google Cloud, set data BigQuery publik, sebagai Antarmuka MCP ke Klien MCP lainnya (IDE, Alat, dll.).
Yang akan Anda pelajari
- Jelajahi set data publik BigQuery dan pilih set data tertentu.
- Siapkan MCP Toolbox untuk Database untuk set data publik BigQuery yang ingin kami sediakan untuk klien MCP.
- Buat desain dan kembangkan Agen menggunakan Agent Development Kit (ADK) untuk menjawab kueri pengguna.
- Uji Agen dan MCP Toolbox untuk Database di lingkungan lokal.
Yang Anda butuhkan
- Browser web Chrome.
- Lingkungan pengembangan Python lokal.
2. Sebelum memulai
Membuat project
- Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project .
- Anda akan menggunakan Cloud Shell, lingkungan command line yang berjalan di Google Cloud yang telah dilengkapi dengan bq. Klik Aktifkan Cloud Shell di bagian atas konsol Google Cloud.
- Setelah terhubung ke Cloud Shell, Anda akan memeriksa apakah Anda sudah diautentikasi dan project ditetapkan ke project ID Anda menggunakan perintah berikut:
gcloud auth list
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda.
gcloud config list project
- Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project <YOUR_PROJECT_ID>
Baca dokumentasi untuk mempelajari perintah gcloud dan penggunaannya.
3. Set data Catatan Rilis Google dan klien MCP
Pertama, mari kita lihat Catatan rilis Google Cloud yang diperbarui secara berkala di halaman web Catatan Rilis Google Cloud resmi, yang screenshot-nya ditampilkan di bawah:
Anda dapat berlangganan URL feed, tetapi bagaimana jika kita dapat langsung bertanya di Chat Agen tentang Catatan rilis ini. Mungkin kueri sederhana seperti "Beri tahu saya tentang Catatan Rilis Google Cloud".
4. MCP Toolbox for Databases
MCP Toolbox for Databases adalah server MCP open source untuk database. Server ini dirancang dengan mempertimbangkan kualitas produksi dan tingkat perusahaan. Dengan demikian, Anda dapat mengembangkan alat dengan lebih mudah, lebih cepat, dan lebih aman dengan menangani kompleksitas seperti penggabungan koneksi, autentikasi, dan lainnya.
Toolbox membantu Anda membuat alat AI Generatif yang memungkinkan agen mengakses data di database Anda. Toolbox menyediakan:
- Pengembangan yang disederhanakan: Mengintegrasikan alat ke agen Anda dalam kurang dari 10 baris kode, menggunakan kembali alat di antara beberapa agen atau framework, dan men-deploy versi baru alat dengan lebih mudah.
- Performa yang lebih baik: Praktik terbaik seperti penggabungan koneksi, autentikasi, dan lainnya.
- Keamanan yang ditingkatkan: Autentikasi terintegrasi untuk akses yang lebih aman ke data Anda
- Kemampuan observasi menyeluruh: Metrik dan pelacakan siap pakai dengan dukungan bawaan untuk OpenTelemetry.
- Toolbox memudahkan Anda menghubungkan database ke asisten AI yang kompatibel dengan MCP, bahkan yang ada di IDE Anda.
Toolbox berada di antara framework orkestrasi aplikasi dan database Anda, yang menyediakan platform kontrol yang digunakan untuk mengubah, mendistribusikan, atau memanggil alat. Alat ini menyederhanakan pengelolaan alat dengan menyediakan lokasi terpusat untuk menyimpan dan mengupdate alat, sehingga Anda dapat membagikan alat antar-agen dan aplikasi serta mengupdate alat tersebut tanpa harus men-deploy ulang aplikasi.
Untuk meringkasnya dengan kata-kata sederhana:
- MCP Toolbox tersedia sebagai image container biner atau Anda dapat mem-build-nya dari sumber.
- File ini mengekspos serangkaian alat yang Anda konfigurasi melalui file tools.yaml. Alat ini dapat dianggap terhubung ke sumber data Anda. Anda dapat melihat berbagai sumber data yang didukungnya : AlloyDB, BigQuery, dll.
- Karena toolbox ini kini mendukung MCP, Anda otomatis memiliki endpoint Server MCP yang kemudian dapat digunakan oleh Agen (IDE) atau Anda dapat menggunakannya saat mengembangkan Aplikasi Agen menggunakan berbagai framework seperti Agent Development Kit (ADK).
Fokus kami dalam postingan blog ini adalah pada area yang ditandai di bawah:
Singkatnya, kita akan membuat konfigurasi di MCP Toolbox for Databases yang mengetahui cara terhubung ke set data BigQuery. Kemudian, kita akan mengembangkan Agen menggunakan Agent Development Kit (ADK) yang akan terintegrasi dengan endpoint MCP Toolbox dan memungkinkan kita mengirim kueri alami untuk menanyakan set data kita. Anggaplah ini sebagai aplikasi agen yang Anda kembangkan yang tahu cara berkomunikasi dengan set data BigQuery dan menjalankan beberapa kueri.
5. Set Data BigQuery untuk Catatan Rilis Google Cloud
Program Set Data Publik Google Cloud adalah program yang menyediakan berbagai set data untuk aplikasi Anda. Salah satu set data tersebut adalah database Catatan Rilis Google Cloud. Set data ini memberikan informasi yang sama dengan halaman web Catatan Rilis Google Cloud resmi dan tersedia sebagai set data yang dapat dikueri secara publik.
Sebagai pengujian, saya cukup memvalidasi set data dengan menjalankan kueri sederhana yang ditampilkan di bawah:
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
Tindakan ini akan memberi saya daftar data dari set data Catatan Rilis yang telah dipublikasikan dalam 7 hari terakhir.
Ganti ini dengan set data lain pilihan Anda serta kueri dan parameter yang Anda inginkan. Yang perlu kita lakukan sekarang adalah menyiapkannya sebagai Sumber Data dan Alat di MCP Toolbox for Databases. Mari kita lihat caranya.
6. Menginstal MCP Toolbox for Databases
Buka terminal di komputer lokal Anda dan buat folder bernama mcp-toolbox
.
mkdir mcp-toolbox
Buka folder mcp-toolbox
melalui perintah yang ditampilkan di bawah:
cd mcp-toolbox
Instal MCP Toolbox for Databases versi biner melalui skrip yang diberikan di bawah. Perintah yang diberikan di bawah ini ditujukan untuk Linux, tetapi jika Anda menggunakan Mac atau Windows, pastikan Anda mendownload biner yang benar. Lihat halaman rilis untuk Sistem Operasi dan Arsitektur Anda, lalu download biner yang benar.
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
Sekarang kita memiliki toolbox versi biner yang siap digunakan. Langkah berikutnya adalah mengonfigurasi toolbox dengan sumber data dan konfigurasi lainnya.
7. Mengonfigurasi Toolbox MCP untuk Database
Sekarang, kita perlu menentukan set data dan alat BigQuery dalam file tools.yaml
yang diperlukan oleh MCP Toolbox untuk Database. File tools.yaml
adalah cara utama untuk mengonfigurasi Toolbox.
Buat file bernama tools.yaml
di folder yang sama, yaitu mcp-toolbox
, yang kontennya ditampilkan di bawah.
Anda dapat menggunakan editor nano yang tersedia di Cloud Shell. Perintah nano adalah sebagai berikut: "nano tools.yaml
".
Jangan lupa untuk mengganti nilai YOUR_PROJECT_ID
dengan ID Project Google Cloud Anda.
sources:
my-bq-source:
kind: bigquery
project: YOUR_PROJECT_ID
tools:
search_release_notes_bq:
kind: bigquery-sql
source: my-bq-source
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
description: |
Use this tool to get information on Google Cloud Release Notes.
toolsets:
my_bq_toolset:
- search_release_notes_bq
Mari kita pahami file ini secara singkat:
- Sumber mewakili berbagai sumber data Anda yang dapat berinteraksi dengan alat. Sumber mewakili sumber data yang dapat berinteraksi dengan alat. Anda dapat menentukan Sumber sebagai peta di bagian sumber file tools.yaml. Biasanya, konfigurasi sumber akan berisi informasi yang diperlukan untuk terhubung dan berinteraksi dengan database. Dalam kasus ini, kita telah menentukan sumber BigQuery
my-bq-source
dan Anda harus memberikan Project ID Google Cloud. Untuk informasi selengkapnya, lihat referensi Sumber. - Alat menentukan tindakan yang dapat dilakukan agen – seperti membaca dan menulis ke sumber. Alat mewakili tindakan yang dapat dilakukan agen Anda, seperti menjalankan pernyataan SQL. Anda dapat menentukan Alat sebagai peta di bagian alat pada file tools.yaml. Biasanya, alat akan memerlukan sumber untuk ditindaklanjuti. Dalam kasus ini, kita menentukan satu alat
search_release_notes_bq
. Ini mereferensikan sumber BigQuerymy-bq-source
yang kita tentukan pada langkah pertama. File ini juga memiliki pernyataan dan petunjuk yang akan digunakan oleh klien Agen AI. Untuk informasi selengkapnya, lihat referensi Alat. - Terakhir, kami memiliki Kumpulan Alat, yang memungkinkan Anda menentukan grup alat yang ingin dimuat bersama. Hal ini dapat berguna untuk menentukan berbagai grup berdasarkan agen atau aplikasi. Dalam kasus ini, kita memiliki definisi rangkaian alat yang saat ini hanya menentukan satu alat yang ada
search_release_notes_bq
yang telah kita tentukan. Anda dapat memiliki lebih dari satu set alat, yang memiliki kombinasi alat yang berbeda.
Jadi, saat ini, kita hanya telah menentukan satu alat yang mendapatkan catatan rilis selama 7 hari terakhir sesuai dengan kueri. Namun, Anda juga dapat memiliki berbagai kombinasi dengan parameter.
Lihat beberapa detail konfigurasi lainnya ( Sumber, Alat) di konfigurasi sumber data BigQuery di MCP Toolbox untuk Database.
8. Menguji Toolbox MCP untuk Database
Kita telah mendownload dan mengonfigurasi Toolbox dengan file tools.yaml
di folder mcp-toolbox
. Mari kita jalankan secara lokal terlebih dahulu.
Jalankan perintah berikut:
./toolbox --tools-file="tools.yaml"
Jika berhasil dieksekusi, Anda akan melihat server dimulai dengan contoh output yang mirip dengan contoh di bawah:
2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources."
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices."
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools."
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets."
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!"
Server MCP Toolbox berjalan secara default di port 5000
. Jika Anda mendapati bahwa port 5000
sudah digunakan, jangan ragu untuk menggunakan port lain (misalnya 7000
) sesuai perintah yang ditampilkan di bawah. Gunakan 7000
, bukan port 5000
, dalam perintah berikutnya.
./toolbox --tools-file "tools.yaml" --port 7000
Mari kita gunakan Cloud Shell untuk mengujinya.
Klik Pratinjau Web di Cloud Shell seperti yang ditunjukkan di bawah:
Klik Ubah port dan tetapkan port ke 5000 seperti yang ditunjukkan di bawah, lalu klik Ubah dan Pratinjau.
Tindakan ini akan menampilkan output berikut:
Di URL browser, tambahkan kode berikut ke bagian akhir URL:
/api/toolset
Tindakan ini akan menampilkan alat yang saat ini dikonfigurasi. Contoh output ditampilkan di bawah ini:
{
"serverVersion": "0.7.0+binary.linux.amd64.714d990c34ee990e268fac1aa6b89c4883ae5023",
"tools": {
"search_release_notes_bq": {
"description": "Use this tool to get information on Google Cloud Release Notes.\n",
"parameters": [],
"authRequired": []
}
}
}
MCP Toolkit for Databases menjelaskan cara Pythonic untuk memvalidasi dan menguji alat, yang didokumentasikan di sini. Kita akan melewatinya dan langsung menggunakan Agent Development Kit (ADK) di bagian berikutnya yang akan menggunakan alat ini.
9. Menulis Agen dengan Agent Development Kit (ADK)
Menginstal Agent Development Kit (ADK)
Buka tab terminal baru di Cloud Shell dan buat folder bernama my-agents
sebagai berikut. Buka juga folder my-agents
.
mkdir my-agents
cd my-agents
Sekarang, mari kita buat lingkungan virtual Python menggunakan venv
sebagai berikut:
python -m venv .venv
Aktifkan lingkungan virtual sebagai berikut:
source .venv/bin/activate
Instal paket ADK dan MCP Toolbox for Databases beserta dependensi langchain sebagai berikut:
pip install google-adk toolbox-core
Sekarang Anda dapat memanggil utilitas adk
sebagai berikut.
adk
Tindakan ini akan menampilkan daftar perintah.
$ 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.
Membuat Aplikasi Agen pertama kita
Sekarang kita akan menggunakan adk
untuk membuat scaffolding untuk Aplikasi Agen Catatan Rilis Google Cloud melalui perintah adk
create
dengan nama aplikasi **(gcp-releasenotes-agent-app)
**seperti yang diberikan di bawah.
adk create gcp-releasenotes-agent-app
Ikuti langkah-langkahnya dan pilih hal berikut:
- Model Gemini untuk memilih model agen root.
- Pilih Vertex AI untuk backend.
- ID Project Google dan region default Anda akan ditampilkan. Pilih setelan default itu sendiri.
Choose a model for the root agent:
1. gemini-2.0-flash-001
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
Amati folder tempat template default dan file yang diperlukan untuk Agen telah dibuat.
Yang pertama adalah file .env
. Isinya ditampilkan di bawah:
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_GOOGLE_PROJECT_REGION
Nilai tersebut menunjukkan bahwa kita akan menggunakan Gemini melalui Vertex AI beserta nilai masing-masing untuk Project ID dan lokasi Google Cloud.
Kemudian, kita memiliki file __init__.py
yang menandai folder sebagai modul dan memiliki satu pernyataan yang mengimpor agen dari file agent.py
.
from . import agent
Terakhir, mari kita lihat file agent.py
. Isinya ditampilkan di bawah:
from google.adk.agents import Agent
root_agent = Agent(
model='gemini-2.0-flash-001',
name='root_agent',
description='A helpful assistant for user questions.',
instruction='Answer user questions to the best of your knowledge',
)
Ini adalah Agen paling sederhana yang dapat Anda tulis dengan ADK. Dari halaman dokumentasi ADK, Agen adalah unit eksekusi mandiri yang dirancang untuk bertindak secara otonom guna mencapai sasaran tertentu. Agen dapat melakukan tugas, berinteraksi dengan pengguna, menggunakan alat eksternal, dan berkoordinasi dengan agen lain.
Secara khusus, LLMAgent, yang biasanya memiliki alias sebagai Agen, menggunakan Model Bahasa Besar (LLM) sebagai mesin intinya untuk memahami bahasa alami, penalaran, perencanaan, menghasilkan respons, dan memutuskan secara dinamis cara melanjutkan atau alat yang akan digunakan, sehingga ideal untuk tugas yang fleksibel dan berfokus pada bahasa. Pelajari Agen LLM lebih lanjut di sini.
Tindakan ini akan menyelesaikan scaffolding untuk membuat Agen dasar menggunakan Agent Development Kit (ADK). Sekarang kita akan menghubungkan Agen ke MCP Toolbox, sehingga dapat menggunakan alat tersebut untuk menjawab kueri dari pengguna (dalam hal ini, catatan Rilis Google Cloud).
10. Menghubungkan Agen ke Alat
Sekarang kita akan menghubungkan Agen ini ke Alat. Dalam konteks ADK, Alat mewakili kemampuan tertentu yang diberikan kepada agen AI, sehingga dapat melakukan tindakan dan berinteraksi dengan dunia di luar kemampuan penalaran dan pembuatan teks intinya.
Dalam kasus ini, kita akan melengkapi Agen dengan Alat yang telah dikonfigurasi di Toolbox MCP untuk Database.
Ubah file agent.py
dengan kode berikut. Perhatikan bahwa kita menggunakan port default 5000 dalam kode, tetapi jika Anda menggunakan nomor port alternatif, harap gunakan port tersebut.
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.0-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,
)
Sekarang kita dapat menguji Agen yang akan mengambil data sebenarnya dari set data BigQuery yang telah dikonfigurasi dengan MCP Toolbox untuk Database.
Untuk melakukannya, ikuti urutan ini:
Di satu terminal Cloud Shell, luncurkan MCP Toolbox untuk Database. Anda mungkin sudah menjalankannya secara lokal di port 5000 seperti yang kita uji sebelumnya. Jika tidak, jalankan perintah berikut (dari folder mcp-toolbox
) untuk memulai server:
./toolbox --tools_file "tools.yaml"
Idealnya, Anda akan melihat output bahwa Server telah dapat terhubung ke sumber data kami dan telah memuat rangkaian alat dan alat. Contoh output diberikan di bawah ini:
./toolbox --tools-file "tools.yaml"
2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources."
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices."
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools."
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets."
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!"
Setelah server MCP berhasil dimulai, di terminal lain, luncurkan Agen melalui perintah adk run
(dari folder my-agents
) yang ditampilkan di bawah. Anda juga dapat menggunakan perintah adk web
jika mau.
$ adk run gcp-releasenotes-agent-app/
Log setup complete: /tmp/agents_log/agent.20250423_170001.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Running agent gcp_releasenotes_agent, type exit to exit.
[user]: get me the google cloud release notes
[gcp_releasenotes_agent]: Here are the Google Cloud Release Notes.
Google SecOps SOAR: Release 6.3.49 is being rolled out to the first phase of regions. This release contains internal and customer bug fixes. Published: 2025-06-14
Compute Engine: Dynamic NICs let you add or remove network interfaces to or from an instance without having to restart or recreate the instance. You can also use Dynamic NICs when you need more network interfaces. The maximum number of vNICs for most machine types in Google Cloud is 10; however, you can configure up to 16 total interfaces by using Dynamic NICs. Published: 2025-06-13
Compute Engine: General purpose C4D machine types, powered by the fifth generation AMD EPYC processors (Turin) and Google Titanium, are generally available. Published: 2025-06-13
Google Agentspace: Google Agentspace Enterprise: App-level feature management. As an Agentspace administrator, you can choose to turn the following features on or off for your end users in the web app: Agents gallery, Prompt gallery, No-code agent, NotebookLM Enterprise. Published: 2025-06-13
Cloud Load Balancing: Cloud Load Balancing supports load balancing to multi-NIC instances that use Dynamic NICs. This capability is in Preview. Published: 2025-06-13
Virtual Private Cloud: Dynamic Network Interfaces (NICs) are available in Preview. Dynamic NICs let you update an instance to add or remove network interfaces without having to restart or recreate the instance. Published: 2025-06-13
Security Command Center: The following Event Threat Detection detectors for Vertex AI have been released to Preview:
- `Persistence: New Geography for AI Service`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Admin Activity`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Data Access`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Admin Activity`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Data Access`
- `Privilege Escalation: Anomalous Impersonation of Service Account for AI Admin Activity`
- `Persistence: New AI API Method`
......
......
Perhatikan bahwa Agen menggunakan alat yang telah kita konfigurasikan di MCP Toolbox for Databases (search_release_notes_bq
) dan mengambil data dari set data BigQuery serta memformat respons yang sesuai.
11. Selamat
Selamat, Anda telah berhasil mengonfigurasi MCP Toolbox untuk Database dan mengonfigurasi set data BigQuery untuk akses dalam klien MCP.