Alat: execute_sql
Jalankan kueri SQL dalam project dan tampilkan hasilnya.
Alat ini hanya dibatasi untuk pernyataan SELECT. Pernyataan dan prosedur tersimpan INSERT, UPDATE, dan DELETE tidak diizinkan. Jika kueri tidak menyertakan pernyataan SELECT, error akan ditampilkan. Untuk mengetahui informasi tentang cara membuat kueri, lihat dokumentasi GoogleSQL.
Alat execute_sql juga dapat menimbulkan efek samping jika kueri memanggil fungsi jarak jauh atau UDF Python.
Semua kueri yang dijalankan menggunakan alat execute_sql memiliki label yang mengidentifikasi alat tersebut sebagai sumbernya. Anda dapat menggunakan label ini untuk memfilter kueri menggunakan pasangan nilai dan label goog-mcp-server: true.
Kueri ditagih ke project yang ditentukan di kolom project_id.
Contoh berikut menunjukkan cara menggunakan curl untuk memanggil alat MCP execute_sql.
| Permintaan Curl |
|---|
curl --location 'https://bigquery.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "execute_sql", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Skema Input
Menjalankan kueri SQL BigQuery secara serentak dan menampilkan hasil kueri jika kueri selesai dalam waktu tunggu yang ditentukan.
| Representasi JSON |
|---|
{ "projectId": string, "query": string, "dryRun": boolean } |
| Kolom | |
|---|---|
projectId |
Wajib. Project yang akan digunakan untuk eksekusi kueri dan penagihan. |
query |
Wajib. Kueri yang akan dijalankan dalam bentuk kueri GoogleSQL. |
dryRun |
Opsional. Jika disetel ke benar (true), BigQuery tidak menjalankan tugas. Sebagai gantinya, jika kueri valid, BigQuery akan menampilkan statistik tentang tugas seperti jumlah byte yang akan diproses. Jika kueri tidak valid, error akan ditampilkan. Nilai defaultnya adalah false. |
Skema Output
Respons untuk kueri SQL BigQuery.
| Representasi JSON |
|---|
{ "schema": { object ( |
| Kolom | |
|---|---|
schema |
Skema hasil. Hanya ada jika kueri berhasil diselesaikan. |
rows[] |
Objek dengan hasil sebanyak yang dapat dimuat dalam ukuran respons maksimum yang diizinkan. Untuk mendapatkan baris tambahan, Anda dapat memanggil GetQueryResults dan menentukan jobReference yang ditampilkan di atas. |
jobComplete |
Apakah kueri telah selesai atau belum. Jika rows atau totalRows ada, nilai ini akan selalu benar. Jika salah (false), totalRows tidak akan tersedia. |
errors[] |
Hanya output. Error atau peringatan pertama yang terjadi selama menjalankan tugas. Pesan akhir mencakup jumlah error yang menyebabkan proses berhenti. Error di sini tidak berarti bahwa tugas telah selesai atau tidak berhasil. Untuk mengetahui informasi selengkapnya tentang pesan error, lihat Pesan error. |
| Representasi JSON |
|---|
{ "fields": [ { object ( |
| Kolom | |
|---|---|
fields[] |
Menjelaskan kolom dalam tabel. |
foreignTypeInfo |
Opsional. Menentukan metadata definisi jenis data asing dalam skema kolom ( |
| Representasi JSON |
|---|
{ "name": string, "type": string, "mode": string, "fields": [ { object ( |
| Kolom | |
|---|---|
name |
Wajib. Nama kolom. Nama hanya boleh berisi huruf (a-z, A-Z), angka (0-9), atau garis bawah (_), dan harus diawali dengan huruf atau garis bawah. Panjang maksimum adalah 300 karakter. |
type |
Wajib. Jenis data kolom. Nilai yang memungkinkan mencakup:
Penggunaan RECORD/STRUCT menunjukkan bahwa kolom berisi skema bertingkat. |
mode |
Opsional. Mode kolom. Nilai yang mungkin mencakup NULLABLE, REQUIRED, dan REPEATED. Nilai defaultnya adalah NULLABLE. |
fields[] |
Opsional. Menjelaskan kolom skema bertingkat jika properti jenis ditetapkan ke RECORD. |
description |
Opsional. Deskripsi kolom. Panjang maksimumnya adalah 1.024 karakter. |
policyTags |
Opsional. Tag kebijakan yang dilampirkan ke kolom ini, digunakan untuk kontrol akses tingkat kolom. Jika tidak disetel, default-nya adalah policy_tags kosong. |
dataPolicies[] |
Opsional. Kebijakan data yang dilampirkan ke kolom ini, digunakan untuk kontrol akses tingkat kolom. |
nameAlternative[] |
Kolom ini tidak boleh digunakan. |
maxLength |
Opsional. Panjang maksimum nilai kolom ini untuk STRING atau BYTE. Jika max_length tidak ditentukan, tidak ada batasan panjang maksimum yang diterapkan pada kolom ini. Jika type = "STRING", maka max_length mewakili panjang UTF-8 maksimum string di kolom ini. Jika type = "BYTES", maka max_length mewakili jumlah maksimum byte dalam kolom ini. Kolom ini tidak boleh ditetapkan jika type ≠ "STRING" dan ≠ "BYTES". |
precision |
Opsional. Batasan presisi (jumlah maksimum total digit dalam basis 10) dan skala (jumlah maksimum digit dalam bagian pecahan dalam basis 10) untuk nilai kolom ini untuk NUMERIC atau BIGNUMERIC. Tidak valid untuk menyetel presisi atau skala jika type ≠ "NUMERIC" dan ≠ "BIGNUMERIC". Jika presisi dan skala tidak ditentukan, tidak ada batasan rentang nilai yang diterapkan pada kolom ini selama nilai diizinkan oleh jenisnya. Nilai kolom NUMERIC atau BIGNUMERIC ini harus berada dalam rentang ini jika:
Nilai presisi dan skala yang dapat diterima jika keduanya ditentukan:
Nilai presisi yang dapat diterima jika hanya presisi yang ditentukan, tetapi bukan skala (sehingga skala ditafsirkan sama dengan nol):
Jika skala ditentukan tetapi tidak presisi, maka tidak valid. |
scale |
Opsional. Lihat dokumentasi untuk presisi. |
timestampPrecision |
Opsional. Presisi (jumlah maksimum total digit dalam basis 10) untuk detik jenis TIMESTAMP. Nilai yang mungkin mencakup: * 6 (Default, untuk jenis TIMESTAMP dengan presisi mikrodetik) * 12 (Untuk jenis TIMESTAMP dengan presisi pikodetik) |
roundingMode |
Opsional. Menentukan mode pembulatan yang akan digunakan saat menyimpan nilai jenis NUMERIC dan BIGNUMERIC. |
collation |
Opsional. Kolasi kolom hanya dapat ditetapkan jika jenis kolom adalah STRING. Nilai-nilai berikut didukung:
|
defaultValueExpression |
Opsional. Ekspresi SQL untuk menentukan nilai default untuk kolom ini. |
rangeElementType |
Opsional. Subjenis RANGE, jika jenis kolom ini adalah RANGE. Jika jenisnya adalah RANGE, kolom ini wajib diisi. Nilai untuk jenis elemen kolom dapat berupa berikut ini:
|
foreignTypeDefinition |
Opsional. Definisi jenis data asing. Hanya valid untuk kolom skema tingkat teratas (bukan kolom bertingkat). Jika jenisnya adalah ASING, kolom ini wajib diisi. |
| Representasi JSON |
|---|
{ "value": string } |
| Kolom | |
|---|---|
value |
Nilai string. |
| Representasi JSON |
|---|
{ "names": [ string ] } |
| Kolom | |
|---|---|
names[] |
Daftar nama resource tag kebijakan. Misalnya, "projects/1/locations/eu/taxonomies/2/policyTags/3". Saat ini hanya boleh ada maksimal 1 tag kebijakan. |
| Representasi JSON |
|---|
{ // Union field |
| Kolom | |
|---|---|
Kolom union
|
|
name |
Nama resource kebijakan data dalam bentuk projects/project_id/locations/location_id/dataPolicies/data_policy_id. |
| Representasi JSON |
|---|
{ "value": string } |
| Kolom | |
|---|---|
value |
Nilai int64. |
| Representasi JSON |
|---|
{ "type": string } |
| Kolom | |
|---|---|
type |
Wajib. Jenis elemen kolom. Untuk informasi selengkapnya, lihat |
| Representasi JSON |
|---|
{
"typeSystem": enum ( |
| Kolom | |
|---|---|
typeSystem |
Wajib. Menentukan sistem yang menentukan jenis data asing. |
| Representasi JSON |
|---|
{ "fields": { string: value, ... } } |
| Kolom | |
|---|---|
fields |
Peta tidak berurutan dari nilai yang diketik secara dinamis. Objek yang berisi daftar pasangan |
| Representasi JSON |
|---|
{ "key": string, "value": value } |
| Kolom | |
|---|---|
key |
|
value |
|
| Representasi JSON |
|---|
{ // Union field |
| Kolom | |
|---|---|
Kolom union kind. Jenis nilai. kind hanya ada berupa salah satu diantara berikut: |
|
nullValue |
Mewakili nilai null. |
numberValue |
Mewakili nilai ganda. |
stringValue |
Mewakili nilai string. |
boolValue |
Mewakili nilai boolean. |
structValue |
Mewakili nilai terstruktur. |
listValue |
Merepresentasikan |
| Representasi JSON |
|---|
{ "values": [ value ] } |
| Kolom | |
|---|---|
values[] |
Kolom berulang dari nilai yang diketik secara dinamis. |
| Representasi JSON |
|---|
{ "value": boolean } |
| Kolom | |
|---|---|
value |
Nilai bool. |
| Representasi JSON |
|---|
{ "reason": string, "location": string, "debugInfo": string, "message": string } |
| Kolom | |
|---|---|
reason |
Kode error singkat yang merangkum error. |
location |
Menentukan tempat terjadinya error, jika ada. |
debugInfo |
Informasi proses debug. Properti ini bersifat internal untuk Google dan tidak boleh digunakan. |
message |
Deskripsi error yang dapat dibaca manusia. |
Anotasi Alat
Petunjuk Destruktif: ✅ | Petunjuk Idempoten: ❌ | Petunjuk Hanya Baca: ❌ | Petunjuk Dunia Terbuka: ✅