MCP Tools Reference: bigquery.googleapis.com

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

string

Wajib. Project yang akan digunakan untuk eksekusi kueri dan penagihan.

query

string

Wajib. Kueri yang akan dijalankan dalam bentuk kueri GoogleSQL.

dryRun

boolean

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 (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ]
}
Kolom
schema

object (TableSchema)

Skema hasil. Hanya ada jika kueri berhasil diselesaikan.

rows[]

object (Struct format)

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

boolean

Apakah kueri telah selesai atau belum. Jika rows atau totalRows ada, nilai ini akan selalu benar. Jika salah (false), totalRows tidak akan tersedia.

errors[]

object (ErrorProto)

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 (TableFieldSchema)
    }
  ],
  "foreignTypeInfo": {
    object (ForeignTypeInfo)
  }
}
Kolom
fields[]

object (TableFieldSchema)

Menjelaskan kolom dalam tabel.

foreignTypeInfo

object (ForeignTypeInfo)

Opsional. Menentukan metadata definisi jenis data asing dalam skema kolom (TableFieldSchema.foreign_type_definition).

Representasi JSON
{
  "name": string,
  "type": string,
  "mode": string,
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "description": string,
  "policyTags": {
    object (PolicyTagList)
  },
  "dataPolicies": [
    {
      object (DataPolicyOption)
    }
  ],
  "nameAlternative": [
    string
  ],
  "maxLength": string,
  "precision": string,
  "scale": string,
  "timestampPrecision": string,
  "roundingMode": enum (RoundingMode),
  "collation": string,
  "defaultValueExpression": string,
  "rangeElementType": {
    object (FieldElementType)
  },
  "foreignTypeDefinition": string
}
Kolom
name

string

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

string

Wajib. Jenis data kolom. Nilai yang memungkinkan mencakup:

  • STRING
  • BYTES
  • INTEGER (atau INT64)
  • FLOAT (atau FLOAT64)
  • BOOLEAN (atau BOOL)
  • TIMESTAMP
  • DATE
  • WAKTU
  • DATETIME
  • GEOGRAPHY
  • NUMERIC
  • BIGNUMERIC
  • JSON
  • RECORD (atau STRUCT)
  • RANGE

Penggunaan RECORD/STRUCT menunjukkan bahwa kolom berisi skema bertingkat.

mode

string

Opsional. Mode kolom. Nilai yang mungkin mencakup NULLABLE, REQUIRED, dan REPEATED. Nilai defaultnya adalah NULLABLE.

fields[]

object (TableFieldSchema)

Opsional. Menjelaskan kolom skema bertingkat jika properti jenis ditetapkan ke RECORD.

description

string

Opsional. Deskripsi kolom. Panjang maksimumnya adalah 1.024 karakter.

policyTags

object (PolicyTagList)

Opsional. Tag kebijakan yang dilampirkan ke kolom ini, digunakan untuk kontrol akses tingkat kolom. Jika tidak disetel, default-nya adalah policy_tags kosong.

dataPolicies[]

object (DataPolicyOption)

Opsional. Kebijakan data yang dilampirkan ke kolom ini, digunakan untuk kontrol akses tingkat kolom.

nameAlternative[]

string

Kolom ini tidak boleh digunakan.

maxLength

string (int64 format)

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

string (int64 format)

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:

  • Presisi (P) dan skala (S) ditentukan: [-10P-S + 10-S, 10P-S - 10-S]
  • Presisi (P) ditentukan, tetapi tidak dengan skala (sehingga skala ditafsirkan sama dengan nol): [-10P + 1, 10P - 1].

Nilai presisi dan skala yang dapat diterima jika keduanya ditentukan:

  • Jika type = "NUMERIC": 1 ≤ presisi - skala ≤ 29 dan 0 ≤ skala ≤ 9.
  • Jika type = "BIGNUMERIC": 1 ≤ presisi - skala ≤ 38 dan 0 ≤ skala ≤ 38.

Nilai presisi yang dapat diterima jika hanya presisi yang ditentukan, tetapi bukan skala (sehingga skala ditafsirkan sama dengan nol):

  • Jika type = "NUMERIC": 1 ≤ presisi ≤ 29.
  • Jika type = "BIGNUMERIC": 1 ≤ presisi ≤ 38.

Jika skala ditentukan tetapi tidak presisi, maka tidak valid.

scale

string (int64 format)

Opsional. Lihat dokumentasi untuk presisi.

timestampPrecision

string (Int64Value format)

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

enum (RoundingMode)

Opsional. Menentukan mode pembulatan yang akan digunakan saat menyimpan nilai jenis NUMERIC dan BIGNUMERIC.

collation

string

Opsional. Kolasi kolom hanya dapat ditetapkan jika jenis kolom adalah STRING. Nilai-nilai berikut didukung:

  • 'und:ci': lokalitas tidak ditentukan, tidak peka huruf besar/kecil.
  • '': string kosong. Default ke perilaku peka huruf besar/kecil.
defaultValueExpression

string

Opsional. Ekspresi SQL untuk menentukan nilai default untuk kolom ini.

rangeElementType

object (FieldElementType)

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:

  • DATE
  • DATETIME
  • TIMESTAMP
foreignTypeDefinition

string

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

string

Nilai string.

Representasi JSON
{
  "names": [
    string
  ]
}
Kolom
names[]

string

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 _name can be only one of the following:
  "name": string
  // End of list of possible types for union field _name.
}
Kolom

Kolom union _name.

_name hanya dapat berupa salah satu dari hal berikut:

name

string

Nama resource kebijakan data dalam bentuk projects/project_id/locations/location_id/dataPolicies/data_policy_id.

Representasi JSON
{
  "value": string
}
Kolom
value

string (int64 format)

Nilai int64.

Representasi JSON
{
  "type": string
}
Kolom
type

string

Wajib. Jenis elemen kolom. Untuk informasi selengkapnya, lihat TableFieldSchema.type.

Representasi JSON
{
  "typeSystem": enum (TypeSystem)
}
Kolom
typeSystem

enum (TypeSystem)

Wajib. Menentukan sistem yang menentukan jenis data asing.

Representasi JSON
{
  "fields": {
    string: value,
    ...
  }
}
Kolom
fields

map (key: string, value: value (Value format))

Peta tidak berurutan dari nilai yang diketik secara dinamis.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Representasi JSON
{
  "key": string,
  "value": value
}
Kolom
key

string

value

value (Value format)

Representasi JSON
{

  // Union field kind can be only one of the following:
  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
  // End of list of possible types for union field kind.
}
Kolom
Kolom union kind. Jenis nilai. kind hanya ada berupa salah satu diantara berikut:
nullValue

null

Mewakili nilai null.

numberValue

number

Mewakili nilai ganda.

stringValue

string

Mewakili nilai string.

boolValue

boolean

Mewakili nilai boolean.

structValue

object (Struct format)

Mewakili nilai terstruktur.

listValue

array (ListValue format)

Merepresentasikan Value yang berulang.

Representasi JSON
{
  "values": [
    value
  ]
}
Kolom
values[]

value (Value format)

Kolom berulang dari nilai yang diketik secara dinamis.

Representasi JSON
{
  "value": boolean
}
Kolom
value

boolean

Nilai bool.

Representasi JSON
{
  "reason": string,
  "location": string,
  "debugInfo": string,
  "message": string
}
Kolom
reason

string

Kode error singkat yang merangkum error.

location

string

Menentukan tempat terjadinya error, jika ada.

debugInfo

string

Informasi proses debug. Properti ini bersifat internal untuk Google dan tidak boleh digunakan.

message

string

Deskripsi error yang dapat dibaca manusia.

Anotasi Alat

Petunjuk Destruktif: ✅ | Petunjuk Idempoten: ❌ | Petunjuk Hanya Baca: ❌ | Petunjuk Dunia Terbuka: ✅