MCP Tools Reference: bigquery.googleapis.com

Herramienta: execute_sql

Ejecuta una consulta en SQL en el proyecto y devuelve el resultado.

Esta herramienta solo se puede usar con instrucciones SELECT. No se permiten las instrucciones INSERT, UPDATE y DELETE, ni los procedimientos almacenados. Si la consulta no incluye una instrucción SELECT, se muestra un error. Para obtener información sobre cómo crear consultas, consulta la documentación de GoogleSQL.

La herramienta execute_sql también puede tener efectos secundarios si la búsqueda invoca funciones remotas o UDF de Python.

Todas las búsquedas que se ejecutan con la herramienta execute_sql tienen una etiqueta que identifica la herramienta como la fuente. Puedes usar esta etiqueta para filtrar las búsquedas con el par etiqueta-valor goog-mcp-server: true.

Las consultas se cargan al proyecto especificado en el campo project_id.

En el siguiente ejemplo, se muestra cómo usar curl para invocar la herramienta de MCP execute_sql.

Solicitud de 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

Ejecuta una consulta en SQL de BigQuery de forma síncrona y muestra resultados si se completa en un tiempo de espera especificado.

Representación JSON
{
  "projectId": string,
  "query": string,
  "dryRun": boolean
}
Campos
projectId

string

Obligatorio. Es el proyecto que se usará para la ejecución de consultas y la facturación.

query

string

Obligatorio. Es la consulta que se ejecutará en forma de consulta de GoogleSQL.

dryRun

boolean

Es opcional. Si se establece como verdadero, BigQuery no ejecuta el trabajo. En su lugar, si la consulta es válida, BigQuery devuelve estadísticas sobre el trabajo, como cuántos bytes se procesarán. Si la búsqueda no es válida, se mostrará un error. El valor predeterminado es falso.

Esquema de salida

Es la respuesta a una consulta en SQL de BigQuery.

Representación JSON
{
  "schema": {
    object (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ]
}
Campos
schema

object (TableSchema)

Es el esquema de los resultados. Solo está presente cuando la consulta se completa correctamente.

rows[]

object (Struct format)

Es un objeto con la mayor cantidad de resultados que se pueden incluir dentro del tamaño máximo de respuesta permitido. Para obtener filas adicionales, puedes llamar a GetQueryResults y especificar el jobReference que se devolvió anteriormente.

jobComplete

boolean

Indica si la búsqueda se completó o no. Si se incluyen filas o totalRows, este valor siempre será verdadero. Si es falso, no estará disponible totalRows.

errors[]

object (ErrorProto)

Solo salida. Son los primeros errores o advertencias que se encontraron durante la ejecución del trabajo. El mensaje final incluye la cantidad de errores que provocaron la detención del proceso. Los errores que se muestran aquí no necesariamente significan que el trabajo se completó o no tuvo éxito. Para obtener más información sobre los mensajes de error, consulta Mensajes de error.

Representación JSON
{
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "foreignTypeInfo": {
    object (ForeignTypeInfo)
  }
}
Campos
fields[]

object (TableFieldSchema)

Describe los campos de una tabla.

foreignTypeInfo

object (ForeignTypeInfo)

Es opcional. Especifica los metadatos de la definición del tipo de datos externos en el esquema de campo (TableFieldSchema.foreign_type_definition).

Representación 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
}
Campos
name

string

Obligatorio. Es el nombre del campo. El nombre solo debe contener letras (a-z, A-Z), números (0-9) o guiones bajos (_) y debe comenzar con una letra o un guion bajo. La longitud máxima es de 300 caracteres.

type

string

Obligatorio. Es el tipo de datos del campo. Estos son algunos de los valores posibles:

  • STRING
  • BYTES
  • INTEGER (o INT64)
  • FLOAT (o FLOAT64)
  • BOOLEANO (o BOOL)
  • TIMESTAMP
  • DATE
  • TIME
  • DATETIME
  • GEOGRAPHY
  • NUMERIC
  • BIGNUMERIC
  • JSON
  • RECORD (o STRUCT)
  • RANGE

El uso de RECORD/STRUCT indica que el campo contiene un esquema anidado.

mode

string

Es opcional. Es el modo del campo. Los valores posibles incluyen NULLABLE, REQUIRED y REPEATED. El valor predeterminado es NULLABLE.

fields[]

object (TableFieldSchema)

Es opcional. Describe los campos del esquema anidado si la propiedad type está configurada como RECORD.

description

string

Es opcional. Es la descripción del campo. La longitud máxima es de 1,024 caracteres.

policyTags

object (PolicyTagList)

Es opcional. Son las etiquetas de política adjuntas a este campo, que se usan para el control de acceso a nivel del campo. Si no se establece, se aplica de forma predeterminada una lista vacía de policy_tags.

dataPolicies[]

object (DataPolicyOption)

Es opcional. Son las políticas de datos adjuntas a este campo, que se usan para el control de acceso a nivel del campo.

nameAlternative[]

string

No se debe usar este campo.

maxLength

string (int64 format)

Es opcional. Es la longitud máxima de los valores de este campo para STRING o BYTES.

Si no se especifica max_length, no se impone ninguna restricción de longitud máxima en este campo.

Si type = "STRING", max_length representa la longitud máxima en UTF-8 de las cadenas en este campo.

Si type = "BYTES", max_length representa la cantidad máxima de bytes en este campo.

No es válido establecer este campo si el tipo no es "STRING" ni "BYTES".

precision

string (int64 format)

Es opcional. Restricciones de precisión (cantidad máxima de dígitos totales en base 10) y escala (cantidad máxima de dígitos en la parte fraccionaria en base 10) para los valores de este campo para NUMERIC o BIGNUMERIC.

No es válido establecer la precisión o la escala si el tipo no es "NUMERIC" ni "BIGNUMERIC".

Si no se especifican la precisión y la escala, no se impone ninguna restricción de rango de valores en este campo, siempre y cuando el tipo permita los valores.

Los valores de este campo NUMERIC o BIGNUMERIC deben estar en este rango en los siguientes casos:

  • Se especifican la precisión (P) y la escala (S): [-10P-S + 10-S, 10P-S - 10-S]
  • Se especifica la precisión (P), pero no la escala (por lo que se interpreta que la escala es igual a cero): [-10P + 1, 10P - 1].

Valores aceptables para la precisión y la escala si se especifican ambos:

  • Si type = "NUMERIC", 1 ≤ precisión - escala ≤ 29 y 0 ≤ escala ≤ 9.
  • Si type = "BIGNUMERIC", 1 ≤ precisión - escala ≤ 38 y 0 ≤ escala ≤ 38.

Valores aceptables para la precisión si solo se especifica la precisión, pero no la escala (y, por lo tanto, se interpreta que la escala es igual a cero):

  • Si type = "NUMERIC", 1 ≤ precisión ≤ 29.
  • Si type = "BIGNUMERIC", 1 ≤ precisión ≤ 38.

Si se especifica la escala, pero no la precisión, el valor no es válido.

scale

string (int64 format)

Es opcional. Consulta la documentación para obtener información sobre la precisión.

timestampPrecision

string (Int64Value format)

Es opcional. Es la precisión (cantidad máxima de dígitos totales en base 10) para los segundos del tipo TIMESTAMP.

Los valores posibles incluyen: * 6 (valor predeterminado para el tipo TIMESTAMP con precisión de microsegundos) * 12 (para el tipo TIMESTAMP con precisión de picosegundos)

roundingMode

enum (RoundingMode)

Es opcional. Especifica el modo de redondeo que se usará cuando se almacenen valores de tipo NUMERIC y BIGNUMERIC.

collation

string

Es opcional. La intercalación de campos solo se puede establecer cuando el tipo de campo es STRING. Se admiten los siguientes valores:

  • "und:ci": Es una configuración regional indeterminada que no distingue mayúsculas de minúsculas.
  • "": Cadena vacía. Se establece un comportamiento que distingue mayúsculas de minúsculas de forma predeterminada.
defaultValueExpression

string

Es opcional. Es una expresión de SQL para especificar el valor predeterminado de este campo.

rangeElementType

object (FieldElementType)

Es opcional. Es el subtipo de RANGE, si el tipo de este campo es RANGE. Si el tipo es RANGE, este campo es obligatorio. Los valores para el tipo de elemento de campo pueden ser los siguientes:

  • DATE
  • DATETIME
  • TIMESTAMP
foreignTypeDefinition

string

Es opcional. Es la definición del tipo de datos externos. Solo es válido para los campos de esquema de nivel superior (no para los campos anidados). Si el tipo es FOREIGN, este campo es obligatorio.

Representación JSON
{
  "value": string
}
Campos
value

string

El valor de string.

Representación JSON
{
  "names": [
    string
  ]
}
Campos
names[]

string

Es una lista de nombres de recursos de etiqueta de política. Por ejemplo, "projects/1/locations/eu/taxonomies/2/policyTags/3". Actualmente, se permite como máximo 1 etiqueta de política.

Representación JSON
{

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

Campo de unión _name.

_name puede ser una de las siguientes opciones:

name

string

Es el nombre del recurso de la política de datos con el formato projects/project_id/locations/location_id/dataPolicies/data_policy_id.

Representación JSON
{
  "value": string
}
Campos
value

string (int64 format)

Es el valor int64.

Representación JSON
{
  "type": string
}
Campos
type

string

Obligatorio. Es el tipo de un elemento de campo. Para obtener más información, consulta TableFieldSchema.type.

Representación JSON
{
  "typeSystem": enum (TypeSystem)
}
Campos
typeSystem

enum (TypeSystem)

Obligatorio. Especifica el sistema que define el tipo de datos externos.

Representación JSON
{
  "fields": {
    string: value,
    ...
  }
}
Campos
fields

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

Es un mapa no ordenado de valores escritos de forma dinámica.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Representación JSON
{
  "key": string,
  "value": value
}
Campos
key

string

value

value (Value format)

Representación 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.
}
Campos
Campo de unión kind. Es el tipo de valor. kind puede ser solo uno de los parámetros siguientes:
nullValue

null

Representa un valor nulo.

numberValue

number

Representa un valor doble.

stringValue

string

Representa un valor de cadena.

boolValue

boolean

Representa un valor booleano.

structValue

object (Struct format)

Representa un valor estructurado.

listValue

array (ListValue format)

Representa un Value repetido.

Representación JSON
{
  "values": [
    value
  ]
}
Campos
values[]

value (Value format)

Es un campo repetido de valores escritos de forma dinámica.

Representación JSON
{
  "value": boolean
}
Campos
value

boolean

Es el valor booleano.

Representación JSON
{
  "reason": string,
  "location": string,
  "debugInfo": string,
  "message": string
}
Campos
reason

string

Es un código de error breve que resume el error.

location

string

Especifica dónde se produjo el error, si está presente.

debugInfo

string

Es información de depuración. Esta propiedad es interna de Google y no se debe usar.

message

string

Es una descripción del error legible por humanos.

Anotaciones de herramientas

Sugerencia destructiva: ✅ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ❌ | Sugerencia de mundo abierto: ✅