MCP Tools Reference: bigquery.googleapis.com

Outil : execute_sql

Exécute une requête SQL dans le projet et renvoie le résultat. Si possible, privilégiez l'outil execute_sql_readonly.

Cet outil peut exécuter n'importe quelle requête compatible avec BigQuery, y compris : * Requêtes SQL (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.) * Fonctions d'IA/ML telles que AI.FORECAST, ML.EVALUATE et ML.PREDICT * Toute autre requête compatible avec BigQuery

Le libellé de job goog-mcp-server: true est automatiquement défini pour les requêtes exécutées à l'aide de l'outil execute_sql. Les requêtes sont facturées au projet spécifié dans le champ project_id.

L'exemple suivant montre comment utiliser curl pour appeler l'outil MCP execute_sql.

Requête 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
}'
                

Schéma d'entrée

Exécute une requête SQL BigQuery de manière synchrone et renvoie les résultats si la requête aboutit dans un délai spécifié.

QueryRequest

Représentation JSON
{
  "projectId": string,
  "query": string,
  "dryRun": boolean
}
Champs
projectId

string

Obligatoire. Projet qui sera utilisé pour l'exécution des requêtes et la facturation.

query

string

Obligatoire. Requête à exécuter sous la forme d'une requête GoogleSQL.

dryRun

boolean

Facultatif. Si la valeur est définie sur "true", BigQuery n'exécute pas le job. En revanche, si la requête est valide, BigQuery renvoie des statistiques sur le job, comme le nombre d'octets à traiter. Si la requête n'est pas valide, une erreur est renvoyée. La valeur par défaut est "false".

Schéma de sortie

Réponse à une requête SQL BigQuery.

QueryResponse

Représentation JSON
{
  "schema": {
    object (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ],
  "queryId": string,
  "totalBytesBilled": string,
  "totalSlotMs": string,
  "numDmlAffectedRows": string,
  "totalBytesProcessed": string
}
Champs
schema

object (TableSchema)

Schéma des résultats. Présent uniquement lorsque la requête aboutit.

rows[]

object (Struct format)

Objet contenant le plus grand nombre possible de résultats dans la limite de la taille de réponse maximale autorisée. Pour obtenir d'autres lignes, vous pouvez appeler GetQueryResults et spécifier la jobReference renvoyée ci-dessus.

jobComplete

boolean

Indique si la requête est terminée ou non. Si les lignes ou totalRows sont présents, cette valeur sera toujours "true". Si la valeur est "false", totalRows ne sera pas disponible.

errors[]

object (ErrorProto)

Uniquement en sortie. Les premières erreurs ou les premiers avertissements rencontrés lors de l'exécution du job. Le message final indique le nombre d'erreurs qui ont entraîné l'arrêt du processus. Les erreurs qui s'affichent ici ne signifient pas nécessairement que le job est terminé ou qu'il a échoué. Pour en savoir plus sur les messages d'erreur, consultez Messages d'erreur.

queryId

string

Uniquement en sortie. ID de la requête.

totalBytesBilled

string (Int64Value format)

Uniquement en sortie. Nombre total d'octets facturés pour la requête. Ne s'applique que si le projet est configuré pour utiliser la tarification à la demande.

totalSlotMs

string (Int64Value format)

Uniquement en sortie. Nombre de millisecondes de créneaux facturées à l'utilisateur.

numDmlAffectedRows

string (Int64Value format)

Uniquement en sortie. Nombre de lignes affectées par une instruction LMD.

totalBytesProcessed

string (Int64Value format)

Uniquement en sortie. Nombre total d'octets traités pour cette requête.

TableSchema

Représentation JSON
{
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "foreignTypeInfo": {
    object (ForeignTypeInfo)
  }
}
Champs
fields[]

object (TableFieldSchema)

Décrit les champs d'un tableau.

foreignTypeInfo

object (ForeignTypeInfo)

Facultatif. Spécifie les métadonnées de la définition du type de données étrangères dans le schéma de champ (TableFieldSchema.foreign_type_definition).

TableFieldSchema

Représentation JSON
{
  "name": string,
  "type": string,
  "mode": string,
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "description": string,
  "policyTags": {
    object (PolicyTagList)
  },
  "dataPolicies": [
    {
      object (DataPolicyOption)
    }
  ],
  "maxLength": string,
  "precision": string,
  "scale": string,
  "timestampPrecision": string,
  "roundingMode": enum (RoundingMode),
  "collation": string,
  "defaultValueExpression": string,
  "rangeElementType": {
    object (FieldElementType)
  },
  "foreignTypeDefinition": string,
  "generatedColumn": {
    object (GeneratedColumn)
  }
}
Champs
name

string

Obligatoire. Nom du champ. Le nom ne doit contenir que des lettres (a-z, A-Z), des chiffres (0-9) ou des traits de soulignement (_), et doit commencer par une lettre ou un trait de soulignement. La longueur ne doit pas dépasser 300 caractères.

type

string

Obligatoire. Type de données du champ. Les valeurs possibles sont les suivantes :

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

L'utilisation de RECORD/STRUCT indique que le champ contient un schéma imbriqué.

mode

string

Facultatif. Mode du champ. Les valeurs possibles sont NULLABLE, REQUIRED et REPEATED. La valeur par défaut est NULLABLE.

fields[]

object (TableFieldSchema)

Facultatif. Décrit les champs de schéma imbriqués si la propriété de type est définie sur RECORD.

description

string

Facultatif. Description du champ. La longueur ne doit pas dépasser 1 024 caractères.

policyTags

object (PolicyTagList)

Facultatif. Tags avec stratégie associés à ce champ, utilisés pour le contrôle des accès au niveau des champs. Si ce champ n'est pas défini, la valeur par défaut est une liste vide de tags de règles.

dataPolicies[]

object (DataPolicyOption)

Facultatif. Règles de données associées à ce champ, utilisées pour le contrôle des accès au niveau des champs.

maxLength

string (int64 format)

Facultatif. Longueur maximale des valeurs de ce champ pour les types STRING ou BYTES.

Si max_length n'est pas spécifié, aucune contrainte de longueur maximale n'est imposée à ce champ.

Si type = "STRING", max_length représente la longueur UTF-8 maximale des chaînes de ce champ.

Si type = "BYTES", max_length représente le nombre maximal d'octets dans ce champ.

Il n'est pas valide de définir ce champ si le type n'est pas "STRING" ni "BYTES".

precision

string (int64 format)

Facultatif. Contraintes de précision (nombre maximal de chiffres au total en base 10) et d'échelle (nombre maximal de chiffres dans la partie fractionnaire en base 10) pour les valeurs de ce champ pour NUMERIC ou BIGNUMERIC.

Il n'est pas valide de définir la précision ou l'échelle si le type est différent de "NUMERIC" et de "BIGNUMERIC".

Si la précision et l'échelle ne sont pas spécifiées, aucune contrainte de plage de valeurs n'est imposée à ce champ, dans la mesure où les valeurs sont autorisées par le type.

Les valeurs de ce champ NUMERIC ou BIGNUMERIC doivent être comprises dans cette plage lorsque :

  • La précision (P) et l'échelle (S) sont spécifiées : [-10P-S + 10-S, 10P-S - 10-S]
  • La précision (P) est spécifiée, mais pas l'échelle (qui est donc interprétée comme étant égale à zéro) : [-10P + 1, 10P - 1].

Valeurs acceptables pour la précision et l'échelle si les deux sont spécifiées :

  • Si type = "NUMERIC" : 1 ≤ précision - échelle ≤ 29 et 0 ≤ échelle ≤ 9.
  • Si type = "BIGNUMERIC" : 1 ≤ précision - échelle ≤ 38 et 0 ≤ échelle ≤ 38.

Valeurs acceptables pour la précision si seule la précision est spécifiée, mais pas l'échelle (qui est donc interprétée comme étant égale à zéro) :

  • Si type = "NUMERIC", 1 ≤ précision ≤ 29.
  • Si type = "BIGNUMERIC", la précision doit être comprise entre 1 et 38.

Si l'échelle est spécifiée, mais pas la précision, elle n'est pas valide.

scale

string (int64 format)

Facultatif. Pour en savoir plus sur la précision, consultez la documentation.

timestampPrecision

string (Int64Value format)

Facultatif. Précision (nombre maximal de chiffres au total en base 10) pour les secondes du type TIMESTAMP.

Les valeurs possibles sont les suivantes : * 6 (par défaut, pour le type TIMESTAMP avec une précision de l'ordre de la microseconde) * 12 (pour le type TIMESTAMP avec une précision de l'ordre de la picoseconde)

roundingMode

enum (RoundingMode)

Facultatif. Spécifie le mode d'arrondi à utiliser lors du stockage des valeurs de type NUMERIC et BIGNUMERIC.

collation

string

Facultatif. Le classement des champs ne peut être défini que lorsque le type de champ est STRING. Les valeurs suivantes sont acceptées :

  • 'und:ci' : paramètres régionaux non déterminés, non sensibles à la casse.
  • '' : chaîne vide. Comportement par défaut sensible à la casse.
defaultValueExpression

string

Facultatif. Expression SQL permettant de spécifier la valeur par défaut de ce champ.

rangeElementType

object (FieldElementType)

Facultatif. Sous-type de la plage, si le type de ce champ est "RANGE". Ce champ est obligatoire si le type est défini sur "RANGE" (PLAGE). Les valeurs du type d'élément de champ peuvent être les suivantes :

  • DATE
  • DATETIME
  • TIMESTAMP
foreignTypeDefinition

string

Facultatif. Définition du type de données étranger. Valable uniquement pour les champs de schéma de premier niveau (pas pour les champs imbriqués). Ce champ est obligatoire si le type est défini sur "FOREIGN" (ÉTRANGER).

generatedColumn

object (GeneratedColumn)

Facultatif. Définition de la façon dont les valeurs sont générées pour le champ. Valable uniquement pour les champs de schéma de premier niveau (pas pour les champs imbriqués).

StringValue

Représentation JSON
{
  "value": string
}
Champs
value

string

Valeur de la chaîne.

PolicyTagList

Représentation JSON
{
  "names": [
    string
  ]
}
Champs
names[]

string

Liste des noms de ressources de tags avec stratégie. Par exemple, "projects/1/locations/eu/taxonomies/2/policyTags/3". Vous ne pouvez pas utiliser plus d'un tag avec stratégie.

DataPolicyOption

Représentation JSON
{

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

Champ d'union _name.

_name ne peut être qu'un des éléments suivants :

name

string

Nom de ressource de la règle de données au format projects/project_id/locations/location_id/dataPolicies/data_policy_id.

Int64Value

Représentation JSON
{
  "value": string
}
Champs
value

string (int64 format)

Valeur int64.

FieldElementType

Représentation JSON
{
  "type": string
}
Champs
type

string

Obligatoire. Type d'un élément de champ. Pour en savoir plus, consultez TableFieldSchema.type

GeneratedColumn

Représentation JSON
{

  // Union field _generated_mode can be only one of the following:
  "generatedMode": enum (GeneratedMode)
  // End of list of possible types for union field _generated_mode.

  // Union field definition can be only one of the following:
  "generatedExpressionInfo": {
    object (GeneratedExpressionInfo)
  }
  // End of list of possible types for union field definition.
}
Champs

Champ d'union _generated_mode.

_generated_mode ne peut être qu'un des éléments suivants :

generatedMode

enum (GeneratedMode)

Facultatif. Indique quand les valeurs générées par le système sont utilisées pour remplir le champ.

Champ d'union definition.

definition ne peut être qu'un des éléments suivants :

generatedExpressionInfo

object (GeneratedExpressionInfo)

Définition de l'expression utilisée pour générer le champ.

GeneratedExpressionInfo

Représentation JSON
{

  // Union field _generation_expression can be only one of the following:
  "generationExpression": string
  // End of list of possible types for union field _generation_expression.

  // Union field _asynchronous can be only one of the following:
  "asynchronous": boolean
  // End of list of possible types for union field _asynchronous.

  // Union field _stored can be only one of the following:
  "stored": boolean
  // End of list of possible types for union field _stored.
}
Champs

Champ d'union _generation_expression.

_generation_expression ne peut être qu'un des éléments suivants :

generationExpression

string

Facultatif. Expression de génération (par exemple, AI.EMBED(...)) utilisée pour générer le champ.

Champ d'union _asynchronous.

_asynchronous ne peut être qu'un des éléments suivants :

asynchronous

boolean

Facultatif. Indique si la génération de colonnes est effectuée de manière asynchrone.

Champ d'union _stored.

_stored ne peut être qu'un des éléments suivants :

stored

boolean

Facultatif. Indique si la colonne générée est stockée dans la table.

ForeignTypeInfo

Représentation JSON
{
  "typeSystem": enum (TypeSystem)
}
Champs
typeSystem

enum (TypeSystem)

Obligatoire. Spécifie le système qui définit le type de données étranger.

Struct

Représentation JSON
{
  "fields": {
    string: value,
    ...
  }
}
Champs
fields

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

Carte non ordonnée de valeurs typées de manière dynamique.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Représentation JSON
{
  "key": string,
  "value": value
}
Champs
key

string

value

value (Value format)

Valeur

Représentation 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.
}
Champs
Champ d'union kind. Type de valeur. kind ne peut être qu'un des éléments suivants :
nullValue

null

Représente un null JSON.

numberValue

number

Représente un nombre JSON. Ne doit pas être NaN, Infinity ni -Infinity, car ces valeurs ne sont pas acceptées au format JSON. Il ne peut pas non plus représenter de grandes valeurs Int64, car le format JSON ne les accepte généralement pas dans son type numérique.

stringValue

string

Représente une chaîne JSON.

boolValue

boolean

Représente une valeur booléenne JSON (littéral true ou false en JSON).

structValue

object (Struct format)

Représente un objet JSON.

listValue

array (ListValue format)

Représente un tableau JSON.

ListValue

Représentation JSON
{
  "values": [
    value
  ]
}
Champs
values[]

value (Value format)

Champ répété de valeurs typées de manière dynamique.

BoolValue

Représentation JSON
{
  "value": boolean
}
Champs
value

boolean

Valeur booléenne.

ErrorProto

Représentation JSON
{
  "reason": string,
  "location": string,
  "debugInfo": string,
  "message": string
}
Champs
reason

string

Code d'erreur court résumant l'erreur.

location

string

Spécifie l'emplacement de l'erreur, le cas échéant.

debugInfo

string

Informations de débogage. Cette propriété est interne à Google et ne doit pas être utilisée.

message

string

Description de l'erreur lisible par l'utilisateur.

Annotations d'outils

Indication de destruction : ✅ | Indication d'idempotence : ❌ | Indication de lecture seule : ❌ | Indication de monde ouvert : ✅