MCP Tools Reference: bigquery.googleapis.com

Strumento: execute_sql

Esegui una query SQL nel progetto e restituisci il risultato.

Questo strumento è limitato solo agli estratti conto SELECT. Le istruzioni e le stored procedure INSERT, UPDATE e DELETE non sono consentite. Se la query non include un'istruzione SELECT, viene restituito un errore. Per informazioni sulla creazione di query, consulta la documentazione di GoogleSQL.

Lo strumento execute_sql può anche avere effetti collaterali se la query richiama funzioni remote o UDF Python.

Tutte le query eseguite utilizzando lo strumento execute_sql hanno un'etichetta che identifica lo strumento come origine. Puoi utilizzare questa etichetta per filtrare le query utilizzando la coppia etichetta-valore goog-mcp-server: true.

Le query vengono addebitate al progetto specificato nel campo project_id.

Il seguente esempio mostra come utilizzare curl per richiamare lo strumento MCP execute_sql.

Curl Request
                  
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
}'
                

Schema di input

Esegue una query SQL BigQuery in modo sincrono e restituisce i risultati se la query viene completata prima di un timeout specificato.

Rappresentazione JSON
{
  "projectId": string,
  "query": string,
  "dryRun": boolean
}
Campi
projectId

string

Obbligatorio. Progetto che verrà utilizzato per l'esecuzione delle query e la fatturazione.

query

string

Obbligatorio. Query da eseguire sotto forma di query GoogleSQL.

dryRun

boolean

Facoltativo. Se il valore è true, BigQuery non esegue il job. Se la query è valida, BigQuery restituisce statistiche sul job, ad esempio il numero di byte che verranno elaborati. Se la query non è valida, viene restituito un errore. Il valore predefinito è false.

Schema di output

Risposta per una query SQL di BigQuery.

Rappresentazione JSON
{
  "schema": {
    object (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ]
}
Campi
schema

object (TableSchema)

Lo schema dei risultati. Presente solo al termine della query.

rows[]

object (Struct format)

Un oggetto con il maggior numero possibile di risultati contenuti nella dimensione massima consentita della risposta. Per ottenere altre righe, puoi chiamare GetQueryResults e specificare jobReference restituito sopra.

jobComplete

boolean

Indica se la query è stata completata o meno. Se sono presenti righe o totalRows, questo valore sarà sempre true. Se questo valore è false, totalRows non sarà disponibile.

errors[]

object (ErrorProto)

Solo output. I primi errori o avvisi riscontrati durante l'esecuzione del job. Il messaggio finale include il numero di errori che hanno causato l'interruzione della procedura. Gli errori qui non significano necessariamente che il job è stato completato o non è andato a buon fine. Per ulteriori informazioni sui messaggi di errore, vedi Messaggi di errore.

Rappresentazione JSON
{
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "foreignTypeInfo": {
    object (ForeignTypeInfo)
  }
}
Campi
fields[]

object (TableFieldSchema)

Descrive i campi di una tabella.

foreignTypeInfo

object (ForeignTypeInfo)

Facoltativo. Specifica i metadati della definizione del tipo di dati esterni nello schema del campo (TableFieldSchema.foreign_type_definition).

Rappresentazione 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
}
Campi
name

string

Obbligatorio. Il nome del campo. Il nome deve contenere solo lettere (a-z, A-Z), numeri (0-9) o trattini bassi (_) e deve iniziare con una lettera o un trattino basso. La lunghezza massima è di 300 caratteri.

type

string

Obbligatorio. Il tipo di dati del campo. I valori possibili sono:

  • STRING
  • BYTES
  • NUMERO INTERO (o INT64)
  • FLOAT (o FLOAT64)
  • BOOLEANO (o BOOL)
  • TIMESTAMP
  • DATA
  • TEMPO
  • DATETIME
  • GEOGRAPHY
  • NUMERIC
  • BIGNUMERIC
  • JSON
  • RECORD (o STRUCT)
  • RANGE

L'utilizzo di RECORD/STRUCT indica che il campo contiene uno schema nidificato.

mode

string

Facoltativo. La modalità del campo. I valori possibili includono NULLABLE, REQUIRED e REPEATED. Il valore predefinito è NULLABLE.

fields[]

object (TableFieldSchema)

Facoltativo. Descrive i campi dello schema nidificati se la proprietà type è impostata su RECORD.

description

string

Facoltativo. La descrizione del campo. La lunghezza massima è di 1024 caratteri.

policyTags

object (PolicyTagList)

Facoltativo. I tag criterio collegati a questo campo, utilizzati per controllo dell'accesso a livello di campo. Se non viene impostato, il valore predefinito è policy_tags vuoto.

dataPolicies[]

object (DataPolicyOption)

Facoltativo. Policy dei dati associate a questo campo, utilizzate per controllo dell'accesso a livello di campo.

nameAlternative[]

string

Questo campo non deve essere utilizzato.

maxLength

string (int64 format)

Facoltativo. Lunghezza massima dei valori di questo campo per STRINGHE o BYTE.

Se max_length non è specificato, non viene imposto alcun vincolo di lunghezza massima a questo campo.

Se type = "STRING", max_length rappresenta la lunghezza massima UTF-8 delle stringhe in questo campo.

Se type = "BYTES", max_length rappresenta il numero massimo di byte in questo campo.

Non è valido impostare questo campo se type ≠ "STRING" e ≠ "BYTES".

precision

string (int64 format)

Facoltativo. Vincoli di precisione (numero massimo di cifre totali in base 10) e scala (numero massimo di cifre nella parte frazionaria in base 10) per i valori di questo campo per NUMERIC o BIGNUMERIC.

Non è valido impostare la precisione o la scala se il tipo è diverso da "NUMERIC" e "BIGNUMERIC".

Se non vengono specificati precisione e scala, a questo campo non viene imposto alcun vincolo di intervallo di valori, a condizione che i valori siano consentiti dal tipo.

I valori di questo campo NUMERIC o BIGNUMERIC devono essere compresi in questo intervallo quando:

  • Sono specificati precisione (P) e scala (S): [-10P-S + 10-S, 10P-S - 10-S]
  • La precisione (P) è specificata, ma non la scala (che quindi viene interpretata come uguale a zero): [-10P + 1, 10P - 1].

Valori accettabili per precisione e scala se vengono specificati entrambi:

  • Se type = "NUMERIC": 1 ≤ precision - scale ≤ 29 e 0 ≤ scale ≤ 9.
  • Se type = "BIGNUMERIC": 1 ≤ precisione - scalabilità ≤ 38 e 0 ≤ scalabilità ≤ 38.

Valori accettabili per la precisione se viene specificata solo la precisione, ma non la scala (e quindi la scala viene interpretata come uguale a zero):

  • Se type = "NUMERIC": 1 ≤ precision ≤ 29.
  • Se type = "BIGNUMERIC": 1 ≤ precision ≤ 38.

Se la scala è specificata, ma non la precisione, il valore non è valido.

scale

string (int64 format)

Facoltativo. Per informazioni dettagliate, consulta la documentazione.

timestampPrecision

string (Int64Value format)

Facoltativo. Precisione (numero massimo di cifre totali in base 10) per i secondi del tipo TIMESTAMP.

I valori possibili includono: * 6 (valore predefinito per il tipo TIMESTAMP con precisione al microsecondo) * 12 (per il tipo TIMESTAMP con precisione al picosecondo)

roundingMode

enum (RoundingMode)

Facoltativo. Specifica la modalità di arrotondamento da utilizzare per l'archiviazione dei valori di tipo NUMERIC e BIGNUMERIC.

collation

string

Facoltativo. L'ordinamento dei campi può essere impostato solo quando il tipo di campo è STRING. Sono supportati i seguenti valori:

  • 'und:ci': impostazioni internazionali non determinate, senza distinzione tra maiuscole e minuscole.
  • "": stringa vuota. Per impostazione predefinita viene applicato il comportamento sensibile alle maiuscole.
defaultValueExpression

string

Facoltativo. Un'espressione SQL per specificare il valore predefinito per questo campo.

rangeElementType

object (FieldElementType)

Facoltativo. Il sottotipo di RANGE, se il tipo di questo campo è RANGE. Se il tipo è INTERVALLO, questo campo è obbligatorio. I valori per il tipo di elemento del campo possono essere i seguenti:

  • DATA
  • DATETIME
  • TIMESTAMP
foreignTypeDefinition

string

Facoltativo. Definizione del tipo di dati esterni. Valido solo per i campi dello schema di primo livello (non per i campi nidificati). Se il tipo è ESTERO, questo campo è obbligatorio.

Rappresentazione JSON
{
  "value": string
}
Campi
value

string

Il valore stringa.

Rappresentazione JSON
{
  "names": [
    string
  ]
}
Campi
names[]

string

Un elenco di nomi di risorse tag di criteri. Ad esempio, "projects/1/locations/eu/taxonomies/2/policyTags/3". Al momento è consentito al massimo un tag di criteri.

Rappresentazione JSON
{

  // Union field _name can be only one of the following:
  "name": string
  // End of list of possible types for union field _name.
}
Campi

Campo unione _name.

_name può essere solo uno dei seguenti tipi:

name

string

Nome risorsa del criterio di gestione dei dati nel formato projects/project_id/locations/location_id/dataPolicies/data_policy_id.

Rappresentazione JSON
{
  "value": string
}
Campi
value

string (int64 format)

Il valore int64.

Rappresentazione JSON
{
  "type": string
}
Campi
type

string

Obbligatorio. Il tipo di un elemento del campo. Per ulteriori informazioni, vedi TableFieldSchema.type.

Rappresentazione JSON
{
  "typeSystem": enum (TypeSystem)
}
Campi
typeSystem

enum (TypeSystem)

Obbligatorio. Specifica il sistema che definisce il tipo di dati esterni.

Rappresentazione JSON
{
  "fields": {
    string: value,
    ...
  }
}
Campi
fields

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

Mappa non ordinata di valori con tipo dinamico.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Rappresentazione JSON
{
  "key": string,
  "value": value
}
Campi
key

string

value

value (Value format)

Rappresentazione 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.
}
Campi
Campo unione kind. Il tipo di valore. kind può essere solo uno dei seguenti tipi:
nullValue

null

Rappresenta un valore null.

numberValue

number

Rappresenta un valore double.

stringValue

string

Rappresenta un valore stringa.

boolValue

boolean

Rappresenta un valore booleano.

structValue

object (Struct format)

Rappresenta un valore strutturato.

listValue

array (ListValue format)

Rappresenta un Value ripetuto.

Rappresentazione JSON
{
  "values": [
    value
  ]
}
Campi
values[]

value (Value format)

Campo ripetuto di valori con tipo dinamico.

Rappresentazione JSON
{
  "value": boolean
}
Campi
value

boolean

Il valore booleano.

Rappresentazione JSON
{
  "reason": string,
  "location": string,
  "debugInfo": string,
  "message": string
}
Campi
reason

string

Un breve codice di errore che riassume l'errore.

location

string

Specifica dove si è verificato l'errore, se presente.

debugInfo

string

Informazioni di debug. Questa proprietà è interna a Google e non deve essere utilizzata.

message

string

Una descrizione dell'errore leggibile.

Annotazioni dello strumento

Suggerimento distruttivo: ✅ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ❌ | Suggerimento open world: ✅