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 |
Obbligatorio. Progetto che verrà utilizzato per l'esecuzione delle query e la fatturazione. |
query |
Obbligatorio. Query da eseguire sotto forma di query GoogleSQL. |
dryRun |
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 ( |
| Campi | |
|---|---|
schema |
Lo schema dei risultati. Presente solo al termine della query. |
rows[] |
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 |
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[] |
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 ( |
| Campi | |
|---|---|
fields[] |
Descrive i campi di una tabella. |
foreignTypeInfo |
Facoltativo. Specifica i metadati della definizione del tipo di dati esterni nello schema del campo ( |
| Rappresentazione JSON |
|---|
{ "name": string, "type": string, "mode": string, "fields": [ { object ( |
| Campi | |
|---|---|
name |
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 |
Obbligatorio. Il tipo di dati del campo. I valori possibili sono:
L'utilizzo di RECORD/STRUCT indica che il campo contiene uno schema nidificato. |
mode |
Facoltativo. La modalità del campo. I valori possibili includono NULLABLE, REQUIRED e REPEATED. Il valore predefinito è NULLABLE. |
fields[] |
Facoltativo. Descrive i campi dello schema nidificati se la proprietà type è impostata su RECORD. |
description |
Facoltativo. La descrizione del campo. La lunghezza massima è di 1024 caratteri. |
policyTags |
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[] |
Facoltativo. Policy dei dati associate a questo campo, utilizzate per controllo dell'accesso a livello di campo. |
nameAlternative[] |
Questo campo non deve essere utilizzato. |
maxLength |
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 |
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:
Valori accettabili per precisione e scala se vengono specificati entrambi:
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 la scala è specificata, ma non la precisione, il valore non è valido. |
scale |
Facoltativo. Per informazioni dettagliate, consulta la documentazione. |
timestampPrecision |
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 |
Facoltativo. Specifica la modalità di arrotondamento da utilizzare per l'archiviazione dei valori di tipo NUMERIC e BIGNUMERIC. |
collation |
Facoltativo. L'ordinamento dei campi può essere impostato solo quando il tipo di campo è STRING. Sono supportati i seguenti valori:
|
defaultValueExpression |
Facoltativo. Un'espressione SQL per specificare il valore predefinito per questo campo. |
rangeElementType |
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:
|
foreignTypeDefinition |
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 |
Il valore stringa. |
| Rappresentazione JSON |
|---|
{ "names": [ string ] } |
| Campi | |
|---|---|
names[] |
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 |
| Campi | |
|---|---|
Campo unione
|
|
name |
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 |
Il valore int64. |
| Rappresentazione JSON |
|---|
{ "type": string } |
| Campi | |
|---|---|
type |
Obbligatorio. Il tipo di un elemento del campo. Per ulteriori informazioni, vedi |
| Rappresentazione JSON |
|---|
{
"typeSystem": enum ( |
| Campi | |
|---|---|
typeSystem |
Obbligatorio. Specifica il sistema che definisce il tipo di dati esterni. |
| Rappresentazione JSON |
|---|
{ "fields": { string: value, ... } } |
| Campi | |
|---|---|
fields |
Mappa non ordinata di valori con tipo dinamico. Un oggetto contenente un elenco di coppie |
| Rappresentazione JSON |
|---|
{ "key": string, "value": value } |
| Campi | |
|---|---|
key |
|
value |
|
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione kind. Il tipo di valore. kind può essere solo uno dei seguenti tipi: |
|
nullValue |
Rappresenta un valore null. |
numberValue |
Rappresenta un valore double. |
stringValue |
Rappresenta un valore stringa. |
boolValue |
Rappresenta un valore booleano. |
structValue |
Rappresenta un valore strutturato. |
listValue |
Rappresenta un |
| Rappresentazione JSON |
|---|
{ "values": [ value ] } |
| Campi | |
|---|---|
values[] |
Campo ripetuto di valori con tipo dinamico. |
| Rappresentazione JSON |
|---|
{ "value": boolean } |
| Campi | |
|---|---|
value |
Il valore booleano. |
| Rappresentazione JSON |
|---|
{ "reason": string, "location": string, "debugInfo": string, "message": string } |
| Campi | |
|---|---|
reason |
Un breve codice di errore che riassume l'errore. |
location |
Specifica dove si è verificato l'errore, se presente. |
debugInfo |
Informazioni di debug. Questa proprietà è interna a Google e non deve essere utilizzata. |
message |
Una descrizione dell'errore leggibile. |
Annotazioni dello strumento
Suggerimento distruttivo: ✅ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ❌ | Suggerimento open world: ✅