MCP Tools Reference: bigquery.googleapis.com

Tool: execute_sql

Führe eine SQL-Abfrage im Projekt aus und gib das Ergebnis zurück.

Dieses Tool ist auf SELECT-Erklärungen beschränkt. INSERT-, UPDATE- und DELETE-Anweisungen und gespeicherte Prozeduren sind nicht zulässig. Wenn die Abfrage keine SELECT-Anweisung enthält, wird ein Fehler zurückgegeben. Informationen zum Erstellen von Abfragen finden Sie in der GoogleSQL-Dokumentation.

Das execute_sql-Tool kann auch Nebeneffekte haben, wenn in der Abfrage Remote-Funktionen oder Python-UDFs aufgerufen werden.

Alle Abfragen, die mit dem Tool execute_sql ausgeführt werden, haben ein Label, das das Tool als Quelle identifiziert. Mit diesem Label können Sie die Anfragen mit dem Label- und Wertepaar goog-mcp-server: true filtern.

Abfragen werden dem Projekt in Rechnung gestellt, das im Feld project_id angegeben ist.

Im folgenden Beispiel wird gezeigt, wie Sie mit curl das MCP-Tool execute_sql aufrufen.

Curl-Anfrage
                  
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
}'
                

Eingabeschema

Führt eine BigQuery-SQL-Abfrage synchron aus und gibt Ergebnisse zurück, wenn die Abfrage innerhalb eines bestimmten Zeitlimits abgeschlossen wird.

JSON-Darstellung
{
  "projectId": string,
  "query": string,
  "dryRun": boolean
}
Felder
projectId

string

Erforderlich. Das Projekt, das für die Ausführung von Abfragen und die Abrechnung verwendet wird.

query

string

Erforderlich. Die auszuführende Abfrage in Form einer GoogleSQL-Abfrage.

dryRun

boolean

Optional. Wenn auf „true“ gesetzt, wird der Job nicht von BigQuery ausgeführt. Wenn die Abfrage gültig ist, gibt BigQuery stattdessen Statistiken zum Job zurück, z. B. die Anzahl der zu verarbeitenden Byte. Wenn die Abfrage ungültig ist, wird ein Fehler zurückgegeben. Der Standardwert ist „false“.

Ausgabeschema

Antwort für eine BigQuery-SQL-Abfrage.

JSON-Darstellung
{
  "schema": {
    object (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ]
}
Felder
schema

object (TableSchema)

Das Schema der Ergebnisse. Nur vorhanden, wenn die Abfrage erfolgreich abgeschlossen wurde.

rows[]

object (Struct format)

Ein Objekt mit so vielen Ergebnissen, wie in der maximal zulässigen Antwortgröße enthalten sein können. Wenn Sie zusätzliche Zeilen abrufen möchten, können Sie GetQueryResults aufrufen und die oben zurückgegebene jobReference angeben.

jobComplete

boolean

Gibt an, ob die Abfrage abgeschlossen wurde. Wenn „rows“ oder „totalRows“ vorhanden sind, ist dieser Wert immer „true“. Wenn dieser Wert „false“ ist, ist „totalRows“ nicht verfügbar.

errors[]

object (ErrorProto)

Nur Ausgabe. Die ersten Fehler oder Warnungen, die beim Ausführen des Jobs aufgetreten sind. Die endgültige Meldung enthält die Anzahl der Fehler, die zum Stoppen des Vorgangs geführt haben. Fehler hier bedeuten nicht unbedingt, dass der Job abgeschlossen wurde oder fehlgeschlagen ist. Weitere Informationen zu Fehlermeldungen finden Sie unter Fehlermeldungen.

JSON-Darstellung
{
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "foreignTypeInfo": {
    object (ForeignTypeInfo)
  }
}
Felder
fields[]

object (TableFieldSchema)

Beschreibt die Felder in einer Tabelle.

foreignTypeInfo

object (ForeignTypeInfo)

Optional. Gibt Metadaten der Definition des externen Datentyps im Feldschema (TableFieldSchema.foreign_type_definition) an.

JSON-Darstellung
{
  "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
}
Felder
name

string

Erforderlich. Der Feldname. Der Name darf nur Buchstaben (a–z, A–Z), Ziffern (0–9) und Unterstriche (_) enthalten und muss mit einem Buchstaben oder einem Unterstrich beginnen. Die maximale Länge beträgt 300 Zeichen.

type

string

Erforderlich. Der Datentyp des Felds. Mögliche Werte:

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

Die Verwendung von RECORD/STRUCT gibt an, dass das Feld ein verschachteltes Schema enthält.

mode

string

Optional. Der Feldmodus. Mögliche Werte sind NULLABLE, REQUIRED und REPEATED. Der Standardwert ist NULLABLE.

fields[]

object (TableFieldSchema)

Optional. Beschreibt die verschachtelten Schemafelder, wenn das Attribut „type“ auf „RECORD“ gesetzt ist.

description

string

Optional. Die Feldbeschreibung. Die maximale Länge beträgt 1.024 Zeichen.

policyTags

object (PolicyTagList)

Optional. Die Richtlinien-Tags, die an dieses Feld angehängt sind und für die Zugriffssteuerung auf Feldebene verwendet werden. Wenn nichts anderes festgelegt ist, wird standardmäßig „empty policy_tags“ verwendet.

dataPolicies[]

object (DataPolicyOption)

Optional. Datenrichtlinien, die diesem Feld zugeordnet sind und für die Zugriffssteuerung auf Feldebene verwendet werden.

nameAlternative[]

string

Dieses Feld sollte nicht verwendet werden.

maxLength

string (int64 format)

Optional. Maximale Länge der Werte dieses Felds für STRINGS oder BYTES.

Wenn „max_length“ nicht angegeben ist, wird für dieses Feld keine maximale Länge festgelegt.

Wenn type = „STRING“, dann steht max_length für die maximale UTF-8-Länge von Strings in diesem Feld.

Wenn type = „BYTES“, dann stellt max_length die maximale Anzahl von Byte in diesem Feld dar.

Dieses Feld darf nicht festgelegt werden, wenn type ≠ „STRING“ und ≠ „BYTES“.

precision

string (int64 format)

Optional. Einschränkungen für die Genauigkeit (maximale Anzahl der Ziffern insgesamt in Basis 10) und die Skalierung (maximale Anzahl der Ziffern im Bruchteil in Basis 10) für Werte dieses Felds für NUMERIC oder BIGNUMERIC.

Es ist ungültig, Genauigkeit oder Skalierung festzulegen, wenn type ≠ „NUMERIC“ und ≠ „BIGNUMERIC“.

Wenn keine Genauigkeit und Skalierung angegeben sind, wird für dieses Feld keine Einschränkung des Wertebereichs festgelegt, sofern Werte vom Typ zulässig sind.

Werte dieses NUMERIC- oder BIGNUMERIC-Felds müssen in diesem Bereich liegen, wenn:

  • Genauigkeit (P) und Skalierung (S) sind angegeben: [-10P-S + 10-S, 10P-S – 10-S]
  • Die Genauigkeit (P) wird angegeben, nicht aber die Skalierung (die daher als null interpretiert wird): [-10P + 1, 10P – 1].

Zulässige Werte für Genauigkeit und Skalierung, wenn beide angegeben sind:

  • Wenn type = „NUMERIC“: 1 ≤ precision – scale ≤ 29 und 0 ≤ scale ≤ 9.
  • Wenn type = „BIGNUMERIC“: 1 ≤ precision – scale ≤ 38 und 0 ≤ scale ≤ 38.

Zulässige Werte für die Genauigkeit, wenn nur die Genauigkeit, nicht aber die Skalierung angegeben wird (und die Skalierung daher als null interpretiert wird):

  • Wenn type = „NUMERIC“: 1 ≤ precision ≤ 29.
  • Wenn type = „BIGNUMERIC“: 1 ≤ precision ≤ 38.

Wenn die Skalierung, aber nicht die Genauigkeit angegeben wird, ist das ungültig.

scale

string (int64 format)

Optional. Weitere Informationen zur Genauigkeit finden Sie in der Dokumentation.

timestampPrecision

string (Int64Value format)

Optional. Genauigkeit (maximale Anzahl der Gesamtziffern in Basis 10) für Sekunden des TIMESTAMP-Typs.

Mögliche Werte sind: * 6 (Standard für den TIMESTAMP-Typ mit Mikrosekundengenauigkeit) * 12 (für den TIMESTAMP-Typ mit Pikosekundengenauigkeit)

roundingMode

enum (RoundingMode)

Optional. Gibt den Rundungsmodus an, der beim Speichern von Werten des Typs NUMERIC und BIGNUMERIC verwendet werden soll.

collation

string

Optional. Die Sortierung von Feldern kann nur festgelegt werden, wenn der Feldtyp STRING ist. Folgende Werte werden unterstützt:

  • 'und:ci': unbestimmtes Gebietsschema, Groß-/Kleinschreibung nicht berücksichtigend.
  • '': leerer String. Standardmäßig wird zwischen Groß- und Kleinschreibung unterschieden.
defaultValueExpression

string

Optional. Ein SQL-Ausdruck, mit dem der Standardwert für dieses Feld angegeben wird.

rangeElementType

object (FieldElementType)

Optional. Der Untertyp des Bereichs, wenn der Typ dieses Felds „RANGE“ ist. Wenn der Typ RANGE ist, ist dieses Feld erforderlich. Für den Feld-Elementtyp sind folgende Werte möglich:

  • DATE
  • DATETIME
  • TIMESTAMP
foreignTypeDefinition

string

Optional. Definition des fremden Datentyps. Gilt nur für Schemafelder der obersten Ebene (nicht für verschachtelte Felder). Wenn der Typ FOREIGN (ausländisch) ist, ist dieses Feld erforderlich.

JSON-Darstellung
{
  "value": string
}
Felder
value

string

Stringwert.

JSON-Darstellung
{
  "names": [
    string
  ]
}
Felder
names[]

string

Eine Liste mit Ressourcennamen von Richtlinien-Tags. Beispiel: „projects/1/locations/eu/taxonomies/2/policyTags/3“. Derzeit ist maximal ein Richtlinien-Tag zulässig.

JSON-Darstellung
{

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

Union-Feld _name.

Für _name ist nur einer der folgenden Werte zulässig:

name

string

Ressourcenname der Datenrichtlinie im Format „projects/project_id/locations/location_id/dataPolicies/data_policy_id“.

JSON-Darstellung
{
  "value": string
}
Felder
value

string (int64 format)

Der int64-Wert.

JSON-Darstellung
{
  "type": string
}
Felder
type

string

Erforderlich. Der Typ eines Feldelements. Weitere Informationen finden Sie unter TableFieldSchema.type.

JSON-Darstellung
{
  "typeSystem": enum (TypeSystem)
}
Felder
typeSystem

enum (TypeSystem)

Erforderlich. Gibt das System an, das den externen Datentyp definiert.

JSON-Darstellung
{
  "fields": {
    string: value,
    ...
  }
}
Felder
fields

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

Ungeordnete Zuordnung von dynamisch typisierten Werten.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

JSON-Darstellung
{
  "key": string,
  "value": value
}
Felder
key

string

value

value (Value format)

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld kind. Die Art des Werts. Für kind ist nur einer der folgenden Werte zulässig:
nullValue

null

Stellt einen Nullwert dar.

numberValue

number

Stellt einen Double-Wert dar.

stringValue

string

Stellt einen Stringwert dar.

boolValue

boolean

Stellt einen booleschen Wert dar.

structValue

object (Struct format)

Stellt einen strukturierten Wert dar.

listValue

array (ListValue format)

Stellt eine wiederholte Value dar.

JSON-Darstellung
{
  "values": [
    value
  ]
}
Felder
values[]

value (Value format)

Wiederholtes Feld mit dynamisch typisierten Werten.

JSON-Darstellung
{
  "value": boolean
}
Felder
value

boolean

Der boolesche Wert.

JSON-Darstellung
{
  "reason": string,
  "location": string,
  "debugInfo": string,
  "message": string
}
Felder
reason

string

Ein kurzer Fehlercode, der den Fehler zusammenfasst.

location

string

Gibt an, wo der Fehler aufgetreten ist, sofern vorhanden.

debugInfo

string

Informationen zur Fehlerbehebung. Diese Property ist intern bei Google und sollte nicht verwendet werden.

message

string

Eine für Menschen lesbare Beschreibung des Fehlers.

Tool-Annotationen

Destruktiver Hinweis: ✅ | Idempotenter Hinweis: ❌ | Nur-Lese-Hinweis: ❌ | Open-World-Hinweis: ✅