Ferramenta: execute_sql
Executar uma consulta SQL no projeto e devolver o resultado.
Esta ferramenta está restrita apenas a declarações SELECT. As declarações INSERT, UPDATE e DELETE, bem como os procedimentos armazenados, não são permitidos. Se a consulta não incluir uma declaração SELECT, é devolvido um erro. Para obter informações sobre como criar consultas, consulte a documentação do GoogleSQL.
A ferramenta execute_sql também pode ter efeitos secundários se a consulta invocar funções remotas ou UDFs do Python.
Todas as consultas executadas através da ferramenta execute_sql têm uma etiqueta que identifica a ferramenta como a origem. Pode usar esta etiqueta para filtrar as consultas através do par de etiqueta e valor goog-mcp-server: true.
As consultas são cobradas ao projeto especificado no campo project_id.
O exemplo seguinte demonstra como usar curl para invocar a ferramenta MCP execute_sql.
| Pedido 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 }' |
Esquema de entrada
Executa uma consulta SQL do BigQuery de forma síncrona e devolve os resultados da consulta se esta for concluída dentro de um limite de tempo especificado.
| Representação JSON |
|---|
{ "projectId": string, "query": string, "dryRun": boolean } |
| Campos | |
|---|---|
projectId |
Obrigatório. Projeto que vai ser usado para a execução de consultas e a faturação. |
query |
Obrigatório. A consulta a executar sob a forma de uma consulta GoogleSQL. |
dryRun |
Opcional. Se estiver definida como verdadeira, o BigQuery não executa a tarefa. Em alternativa, se a consulta for válida, o BigQuery devolve estatísticas sobre a tarefa, como o número de bytes que seriam processados. Se a consulta for inválida, é devolvido um erro. O valor predefinido é false. |
Esquema de saída
Resposta para uma consulta SQL do BigQuery.
| Representação JSON |
|---|
{ "schema": { object ( |
| Campos | |
|---|---|
schema |
O esquema dos resultados. Presente apenas quando a consulta é concluída com êxito. |
rows[] |
Um objeto com tantos resultados quanto os que podem ser incluídos no tamanho máximo permitido da resposta. Para obter linhas adicionais, pode chamar GetQueryResults e especificar o jobReference devolvido acima. |
jobComplete |
Se a consulta foi concluída ou não. Se rows ou totalRows estiverem presentes, esta propriedade é sempre verdadeira. Se for falso, totalRows não está disponível. |
errors[] |
Apenas saída. Os primeiros erros ou avisos encontrados durante a execução da tarefa. A mensagem final inclui o número de erros que fizeram com que o processo parasse. Os erros aqui não significam necessariamente que a tarefa foi concluída ou não foi bem-sucedida. Para mais informações acerca das mensagens de erro, consulte o artigo Mensagens de erro. |
| Representação JSON |
|---|
{ "fields": [ { object ( |
| Campos | |
|---|---|
fields[] |
Descreve os campos numa tabela. |
foreignTypeInfo |
Opcional. Especifica os metadados da definição do tipo de dados externo no esquema de campos ( |
| Representação JSON |
|---|
{ "name": string, "type": string, "mode": string, "fields": [ { object ( |
| Campos | |
|---|---|
name |
Obrigatório. O nome do campo. O nome tem de conter apenas letras (a-z, A-Z), números (0-9) ou sublinhados (_) e tem de começar por uma letra ou um sublinhado. O comprimento máximo é de 300 carateres. |
type |
Obrigatório. O tipo de dados do campo. Os valores possíveis incluem:
A utilização de RECORD/STRUCT indica que o campo contém um esquema aninhado. |
mode |
Opcional. O campo mode. Os valores possíveis incluem NULLABLE, REQUIRED e REPEATED. O valor predefinido é NULLABLE. |
fields[] |
Opcional. Descreve os campos do esquema aninhado se a propriedade de tipo estiver definida como RECORD. |
description |
Opcional. A descrição do campo. O comprimento máximo é de 1024 carateres. |
policyTags |
Opcional. As etiquetas de políticas anexadas a este campo, usadas para o controlo de acesso ao nível do campo. Se não estiver definido, o valor predefinido é policy_tags vazio. |
dataPolicies[] |
Opcional. Políticas de dados anexadas a este campo, usadas para o controlo de acesso ao nível do campo. |
nameAlternative[] |
Este campo não deve ser usado. |
maxLength |
Opcional. Comprimento máximo dos valores deste campo para STRINGS ou BYTES. Se max_length não for especificado, não é imposta nenhuma restrição de comprimento máximo neste campo. Se type = "STRING", max_length representa o comprimento máximo UTF-8 das strings neste campo. Se type = "BYTES", max_length representa o número máximo de bytes neste campo. Não é válido definir este campo se o tipo for diferente de "STRING" e "BYTES". |
precision |
Opcional. Restrições de precisão (número máximo de dígitos totais na base 10) e escala (número máximo de dígitos na parte fracionária na base 10) para valores deste campo para NUMERIC ou BIGNUMERIC. Não é válido definir a precisão ou a escala se o tipo for diferente de "NUMERIC" e "BIGNUMERIC". Se a precisão e a escala não forem especificadas, não é imposta nenhuma restrição de intervalo de valores neste campo, na medida em que os valores são permitidos pelo tipo. Os valores deste campo NUMERIC ou BIGNUMERIC têm de estar neste intervalo quando:
Valores aceitáveis para a precisão e a escala se ambas forem especificadas:
Valores aceitáveis para a precisão se apenas a precisão for especificada, mas não a escala (e, por isso, a escala é interpretada como igual a zero):
Se a escala for especificada, mas a precisão não, é inválido. |
scale |
Opcional. Consulte a documentação para ver a precisão. |
timestampPrecision |
Opcional. Precisão (número máximo de dígitos totais na base 10) para segundos do tipo TIMESTAMP. Os valores possíveis incluem: * 6 (predefinição, para o tipo TIMESTAMP com precisão de microssegundos) * 12 (para o tipo TIMESTAMP com precisão de picossegundos) |
roundingMode |
Opcional. Especifica o modo de arredondamento a usar ao armazenar valores do tipo NUMERIC e BIGNUMERIC. |
collation |
Opcional. A ordenação de campos só pode ser definida quando o tipo de campo é STRING. Os seguintes valores são suportados:
|
defaultValueExpression |
Opcional. Uma expressão SQL para especificar o valor predefinido deste campo. |
rangeElementType |
Opcional. O subtipo do INTERVALO, se o tipo deste campo for INTERVALO. Se o tipo for RANGE, este campo é obrigatório. Os valores para o tipo de elemento de campo podem ser os seguintes:
|
foreignTypeDefinition |
Opcional. Definição do tipo de dados externo. Válido apenas para campos de esquema de nível superior (não campos aninhados). Se o tipo for FOREIGN, este campo é obrigatório. |
| Representação JSON |
|---|
{ "value": string } |
| Campos | |
|---|---|
value |
O valor de string. |
| Representação JSON |
|---|
{ "names": [ string ] } |
| Campos | |
|---|---|
names[] |
Uma lista de nomes de recursos de etiquetas de políticas. Por exemplo, "projects/1/locations/eu/taxonomies/2/policyTags/3". Atualmente, é permitida, no máximo, 1 etiqueta de política. |
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união
|
|
name |
Nome do recurso da política de dados no formato projects/project_id/locations/location_id/dataPolicies/data_policy_id. |
| Representação JSON |
|---|
{ "value": string } |
| Campos | |
|---|---|
value |
O valor int64. |
| Representação JSON |
|---|
{ "type": string } |
| Campos | |
|---|---|
type |
Obrigatório. O tipo de um elemento de campo. Para mais informações, consulte |
| Representação JSON |
|---|
{
"typeSystem": enum ( |
| Campos | |
|---|---|
typeSystem |
Obrigatório. Especifica o sistema que define o tipo de dados externos. |
| Representação JSON |
|---|
{ "fields": { string: value, ... } } |
| Campos | |
|---|---|
fields |
Mapa não ordenado de valores com tipo dinâmico. Um objeto que contém uma lista de pares |
| Representação JSON |
|---|
{ "key": string, "value": value } |
| Campos | |
|---|---|
key |
|
value |
|
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união kind. O tipo de valor. kind só pode ser uma das seguintes opções: |
|
nullValue |
Representa um valor nulo. |
numberValue |
Representa um valor duplo. |
stringValue |
Representa um valor de string. |
boolValue |
Representa um valor booleano. |
structValue |
Representa um valor estruturado. |
listValue |
Representa um |
| Representação JSON |
|---|
{ "values": [ value ] } |
| Campos | |
|---|---|
values[] |
Campo repetido de valores com tipo dinâmico. |
| Representação JSON |
|---|
{ "value": boolean } |
| Campos | |
|---|---|
value |
O valor bool. |
| Representação JSON |
|---|
{ "reason": string, "location": string, "debugInfo": string, "message": string } |
| Campos | |
|---|---|
reason |
Um código de erro curto que resume o erro. |
location |
Especifica onde ocorreu o erro, se estiver presente. |
debugInfo |
Informações de depuração. Esta propriedade é interna à Google e não deve ser usada. |
message |
Uma descrição legível do erro. |
Anotações de ferramentas
Destructive Hint: ✅ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ✅