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 |
Obligatoire. Projet qui sera utilisé pour l'exécution des requêtes et la facturation. |
query |
Obligatoire. Requête à exécuter sous la forme d'une requête GoogleSQL. |
dryRun |
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 ( |
| Champs | |
|---|---|
schema |
Schéma des résultats. Présent uniquement lorsque la requête aboutit. |
rows[] |
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 |
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[] |
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 ( |
| Champs | |
|---|---|
fields[] |
Décrit les champs d'un tableau. |
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 ( |
| Représentation JSON |
|---|
{ "name": string, "type": string, "mode": string, "fields": [ { object ( |
| Champs | |
|---|---|
name |
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 |
Obligatoire. Type de données du champ. Les valeurs possibles sont les suivantes :
L'utilisation de RECORD/STRUCT indique que le champ contient un schéma imbriqué. |
mode |
Facultatif. Mode du champ. Les valeurs possibles sont NULLABLE, REQUIRED et REPEATED. La valeur par défaut est NULLABLE. |
fields[] |
Facultatif. Décrit les champs de schéma imbriqués si la propriété de type est définie sur RECORD. |
description |
Facultatif. Description du champ. La longueur ne doit pas dépasser 1 024 caractères. |
policyTags |
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[] |
Facultatif. Règles de données associées à ce champ, utilisées pour le contrôle des accès au niveau des champs. |
nameAlternative[] |
Ce champ ne doit pas être utilisé. |
maxLength |
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 |
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 :
Valeurs acceptables pour la précision et l'échelle si les deux sont spécifiées :
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 l'échelle est spécifiée, mais pas la précision, elle n'est pas valide. |
scale |
Facultatif. Pour en savoir plus sur la précision, consultez la documentation. |
timestampPrecision |
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 |
Facultatif. Spécifie le mode d'arrondi à utiliser lors du stockage des valeurs de type NUMERIC et BIGNUMERIC. |
collation |
Facultatif. Le classement des champs ne peut être défini que lorsque le type de champ est STRING. Les valeurs suivantes sont acceptées :
|
defaultValueExpression |
Facultatif. Expression SQL permettant de spécifier la valeur par défaut de ce champ. |
rangeElementType |
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 :
|
foreignTypeDefinition |
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 |
Valeur de la chaîne. |
| Représentation JSON |
|---|
{ "names": [ string ] } |
| Champs | |
|---|---|
names[] |
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 |
| Champs | |
|---|---|
Champ d'union
|
|
name |
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 |
Valeur int64. |
| Représentation JSON |
|---|
{ "type": string } |
| Champs | |
|---|---|
type |
Obligatoire. Type d'un élément de champ. Pour en savoir plus, consultez |
| Représentation JSON |
|---|
{
"typeSystem": enum ( |
| Champs | |
|---|---|
typeSystem |
Obligatoire. Spécifie le système qui définit le type de données étranger. |
| Représentation JSON |
|---|
{ "fields": { string: value, ... } } |
| Champs | |
|---|---|
fields |
Carte non ordonnée de valeurs typées de manière dynamique. Objet contenant une liste de paires |
| Représentation JSON |
|---|
{ "key": string, "value": value } |
| Champs | |
|---|---|
key |
|
value |
|
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union kind. Type de valeur. kind ne peut être qu'un des éléments suivants : |
|
nullValue |
Représente une valeur nulle. |
numberValue |
Représente une valeur double. |
stringValue |
Représente une valeur de chaîne. |
boolValue |
Représente une valeur booléenne. |
structValue |
Représente une valeur structurée. |
listValue |
Représente un |
| Représentation JSON |
|---|
{ "values": [ value ] } |
| Champs | |
|---|---|
values[] |
Champ répété de valeurs typées de manière dynamique. |
| Représentation JSON |
|---|
{ "value": boolean } |
| Champs | |
|---|---|
value |
Valeur booléenne. |
| Représentation JSON |
|---|
{ "reason": string, "location": string, "debugInfo": string, "message": string } |
| Champs | |
|---|---|
reason |
Code d'erreur court résumant l'erreur. |
location |
Spécifie l'emplacement de l'erreur, le cas échéant. |
debugInfo |
Informations de débogage. Cette propriété est interne à Google et ne doit pas être utilisée. |
message |
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 : ✅