MCP Tools Reference: bigquery.googleapis.com

Outil : execute_sql

Exécute une requête SQL dans le projet et renvoie le résultat.

Cet outil est limité aux relevés SELECT. Les instructions et les procédures stockées INSERT, UPDATE et DELETE ne sont pas autorisées. Si la requête n'inclut pas d'instruction SELECT, une erreur est renvoyée. Pour en savoir plus sur la création de requêtes, consultez la documentation GoogleSQL.

L'outil execute_sql peut également avoir des effets secondaires si la requête appelle des fonctions distantes ou des UDF Python.

Toutes les requêtes exécutées à l'aide de l'outil execute_sql comportent un libellé qui identifie l'outil comme source. Vous pouvez utiliser ce libellé pour filtrer les requêtes à l'aide de la paire libellé/valeur goog-mcp-server: true.

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é.

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.

Représentation JSON
{
  "schema": {
    object (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ]
}
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.

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).

Représentation 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
}
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.

nameAlternative[]

string

Ce champ ne doit pas être utilisé.

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 RANGE. 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).

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

string

Valeur de la chaîne.

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 actuellement ajouter qu'un seul tag avec stratégie.

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.

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

string (int64 format)

Valeur int64.

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

string

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

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.

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" }.

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

string

value

value (Value format)

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 une valeur nulle.

numberValue

number

Représente une valeur double.

stringValue

string

Représente une valeur de chaîne.

boolValue

boolean

Représente une valeur booléenne.

structValue

object (Struct format)

Représente une valeur structurée.

listValue

array (ListValue format)

Représente un Value répété.

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

value (Value format)

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

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

boolean

Valeur booléenne.

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 : ✅