Strumento: execute_sql_readonly
Esegui una query SQL di sola lettura nel progetto e restituisci il risultato. Se possibile, preferisci questo strumento a execute_sql.
Questo strumento è limitato solo agli estratti conto SELECT. Le istruzioni e le procedure archiviate 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.
Le query eseguite utilizzando lo strumento execute_sql_readonly avranno l'etichetta del job goog-mcp-server: true impostata automaticamente. 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_readonly.
| 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_readonly", "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.
QueryRequest
| 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.
QueryResponse
| 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. |
queryId |
Solo output. L'ID della query. |
totalBytesBilled |
Solo output. Il numero totale di byte fatturati per la query. Si applica solo se il progetto è configurato per utilizzare i prezzi on demand. |
totalSlotMs |
Solo output. Numero di millisecondi di slot per cui viene effettivamente addebitato l'utente. |
numDmlAffectedRows |
Solo output. Il numero di righe interessate da un'istruzione DML. |
totalBytesProcessed |
Solo output. Il numero totale di byte elaborati per questa query. |
TableSchema
| 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 ( |
TableFieldSchema
| 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à 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. |
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. Le regole di confronto dei campi possono essere impostate 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. |
generatedColumn |
Facoltativo. Definizione della modalità di generazione dei valori per il campo. Valido solo per i campi dello schema di primo livello (non per i campi nidificati). |
StringValue
| Rappresentazione JSON |
|---|
{ "value": string } |
| Campi | |
|---|---|
value |
Il valore stringa. |
PolicyTagList
| 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. |
DataPolicyOption
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione
|
|
name |
Nome risorsa della policy sui dati nel formato projects/project_id/locations/location_id/dataPolicies/data_policy_id. |
Int64Value
| Rappresentazione JSON |
|---|
{ "value": string } |
| Campi | |
|---|---|
value |
Il valore int64. |
FieldElementType
| Rappresentazione JSON |
|---|
{ "type": string } |
| Campi | |
|---|---|
type |
Obbligatorio. Il tipo di un elemento del campo. Per ulteriori informazioni, vedi |
GeneratedColumn
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione
|
|
generatedMode |
Facoltativo. Determina quando i valori generati dal sistema vengono utilizzati per compilare il campo. |
Campo unione
|
|
generatedExpressionInfo |
Definizione dell'espressione utilizzata per generare il campo. |
GeneratedExpressionInfo
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione
|
|
generationExpression |
Facoltativo. L'espressione di generazione (ad es. AI.EMBED(...)) utilizzata per generare il campo. |
Campo unione
|
|
asynchronous |
Facoltativo. Indica se la generazione di colonne viene eseguita in modo asincrono. |
Campo unione
|
|
stored |
Facoltativo. Indica se la colonna generata è memorizzata nella tabella. |
ForeignTypeInfo
| Rappresentazione JSON |
|---|
{
"typeSystem": enum ( |
| Campi | |
|---|---|
typeSystem |
Obbligatorio. Specifica il sistema che definisce il tipo di dati esterni. |
Struct
| Rappresentazione JSON |
|---|
{ "fields": { string: value, ... } } |
| Campi | |
|---|---|
fields |
Mappa non ordinata di valori digitati dinamicamente. Un oggetto contenente un elenco di coppie |
FieldsEntry
| Rappresentazione JSON |
|---|
{ "key": string, "value": value } |
| Campi | |
|---|---|
key |
|
value |
|
Valore
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione kind. Il tipo di valore. kind può essere solo uno dei seguenti tipi: |
|
nullValue |
Rappresenta un |
numberValue |
Rappresenta un numero JSON. Non deve essere |
stringValue |
Rappresenta una stringa JSON. |
boolValue |
Rappresenta un valore booleano JSON (valore letterale |
structValue |
Rappresenta un oggetto JSON. |
listValue |
Rappresenta un array JSON. |
ListValue
| Rappresentazione JSON |
|---|
{ "values": [ value ] } |
| Campi | |
|---|---|
values[] |
Campo ripetuto di valori con tipo dinamico. |
BoolValue
| Rappresentazione JSON |
|---|
{ "value": boolean } |
| Campi | |
|---|---|
value |
Il valore booleano. |
ErrorProto
| 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: ❌