MCP Tools Reference: bigquery.googleapis.com

工具:execute_sql

在项目中运行 SQL 查询并返回结果。

此工具仅限使用 SELECT 条语句。不允许使用 INSERTUPDATEDELETE 语句和存储过程。如果查询不包含 SELECT 语句,则会返回错误。如需了解如何创建查询,请参阅 GoogleSQL 文档

如果查询调用远程函数Python UDFexecute_sql 工具也可能会产生副作用。

使用 execute_sql 工具运行的所有查询都有一个标签,用于将该工具标识为来源。您可以使用此标签通过标签值对 goog-mcp-server: true 过滤查询。

查询费用将记入 project_id 字段中指定的项目。

以下示例演示了如何使用 curl 调用 execute_sql MCP 工具。

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

输入架构

同步运行 BigQuery SQL 查询,并在该查询于指定的超时时限内完成的情况下返回查询结果。

JSON 表示法
{
  "projectId": string,
  "query": string,
  "dryRun": boolean
}
字段
projectId

string

必需。将用于查询执行和结算的项目。

query

string

必需。要执行的查询,以 GoogleSQL 查询的形式表示。

dryRun

boolean

可选。如果设置为 true,BigQuery 不会运行作业。相反,如果查询有效,BigQuery 会返回有关该作业的统计信息,例如将要处理多少字节。如果查询无效,则会返回错误。默认值为 false。

输出架构

针对 BigQuery SQL 查询的响应。

JSON 表示法
{
  "schema": {
    object (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ]
}
字段
schema

object (TableSchema)

结果的架构。仅当查询成功完成时显示。

rows[]

object (Struct format)

一个对象,其中包含的结果数量不超过允许的最大回复大小。如需获取任何其他行,您可以调用 GetQueryResults 并指定上面返回的 jobReference。

jobComplete

boolean

查询是否已完成。如果存在 rows 或 totalRows,则此值始终为 true。如果此值为 false,则 totalRows 将不可用。

errors[]

object (ErrorProto)

仅限输出。作业运行期间遇到的第一个错误或警告。最终消息包含导致进程停止的错误数量。此处的错误并不一定意味着作业已完成或未成功。如需详细了解错误消息,请参阅错误消息

JSON 表示法
{
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "foreignTypeInfo": {
    object (ForeignTypeInfo)
  }
}
字段
fields[]

object (TableFieldSchema)

描述表格中的字段。

foreignTypeInfo

object (ForeignTypeInfo)

可选。指定字段架构 (TableFieldSchema.foreign_type_definition) 中外部数据类型定义的元数据。

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
}
字段
name

string

必需。字段名称。名称只能包含字母(a-z、A-Z)、数字 (0-9) 或下划线 (_),并且必须以字母或下划线开头。长度上限为 300 个字符。

type

string

必需。字段数据类型。可能的值包括:

  • STRING
  • BYTES
  • INTEGER(或 INT64)
  • FLOAT(或 FLOAT64)
  • BOOLEAN(或 BOOL)
  • 时间戳
  • DATE
  • 时间
  • DATETIME
  • GEOGRAPHY
  • NUMERIC
  • BIGNUMERIC
  • JSON
  • RECORD(或 STRUCT)
  • RANGE

使用 RECORD/STRUCT 表示相应字段包含嵌套的架构。

mode

string

可选。字段模式。可能的值包括 NULLABLE、REQUIRED 和 REPEATED。默认值为 NULLABLE。

fields[]

object (TableFieldSchema)

可选。如果 type 属性设置为 RECORD,则描述嵌套的架构字段。

description

string

可选。字段说明。最大长度为 1,024 个字符。

policyTags

object (PolicyTagList)

可选。附加到此字段的政策标记,用于字段级访问权限控制。如果未设置,则默认为空 policy_tags。

dataPolicies[]

object (DataPolicyOption)

可选。附加到此字段的数据政策,用于字段级访问权限控制。

nameAlternative[]

string

不应使用此字段。

maxLength

string (int64 format)

可选。STRING 或 BYTES 的相应字段值的最大长度。

如果未指定 max_length,则此字段没有长度上限限制。

如果 type = "STRING",则 max_length 表示相应字段中字符串的最大 UTF-8 长度。

如果 type = "BYTES",则 max_length 表示相应字段中的最大字节数。

如果类型不为“STRING”且不为“BYTES”,则设置此字段无效。

precision

string (int64 format)

可选。NUMERIC 或 BIGNUMERIC 的相应字段值的精度(以 10 为底的总位数上限)和比例(以 10 为底的小数部分位数上限)限制。

如果类型不为“NUMERIC”且不为“BIGNUMERIC”,则设置精度或小数位数无效。

如果未指定精度和比例,则不会对此字段施加任何值范围限制,只要值符合相应类型即可。

当出现以下情况时,相应 NUMERIC 或 BIGNUMERIC 字段的值必须在此范围内:

  • 指定了精确度 (P) 和缩放比例 (S):[-10P-S + 10-S, 10P-S - 10-S]
  • 指定了精度 (P),但未指定标度(因此标度被解读为等于零):[-10P + 1, 10P - 1]。

如果同时指定了精度和标度,则可接受的值如下:

  • 如果 type = "NUMERIC":1 ≤ precision - scale ≤ 29 且 0 ≤ scale ≤ 9。
  • 如果 type = "BIGNUMERIC":1 ≤ 精度 - 标度 ≤ 38 且 0 ≤ 标度 ≤ 38。

如果仅指定了精度,而未指定小数位数(因此小数位数被解读为零),则可接受的精度值如下:

  • 如果 type = "NUMERIC":1 ≤ precision ≤ 29。
  • 如果 type = "BIGNUMERIC",则 1 ≤ precision ≤ 38。

如果指定了小数位数,但未指定总位数,则无效。

scale

string (int64 format)

可选。如需了解精度,请参阅文档。

timestampPrecision

string (Int64Value format)

可选。TIMESTAMP 类型的秒的精度(以 10 为底的总位数上限)。

可能的值包括:* 6(默认值,适用于精确到微秒的 TIMESTAMP 类型)* 12(适用于精确到皮秒的 TIMESTAMP 类型)

roundingMode

enum (RoundingMode)

可选。指定存储 NUMERIC 和 BIGNUMERIC 类型的值时要使用的舍入模式。

collation

string

可选。只有当字段的类型为 STRING 时,才能设置字段排序规则。支持以下值:

  • 'und:ci':未确定的语言区域,不区分大小写。
  • '':空字符串。默认区分大小写。
defaultValueExpression

string

可选。用于指定相应字段的默认值的 SQL 表达式。

rangeElementType

object (FieldElementType)

可选。如果相应字段的类型为 RANGE,则为 RANGE 的子类型。如果类型为 RANGE,则此字段为必填字段。字段元素类型的值可以是以下任一值:

  • DATE
  • DATETIME
  • 时间戳
foreignTypeDefinition

string

可选。外部数据类型的定义。仅对顶级架构字段(而非嵌套字段)有效。如果类型为 FOREIGN,则此字段为必填字段。

JSON 表示法
{
  "value": string
}
字段
value

string

字符串值。

JSON 表示法
{
  "names": [
    string
  ]
}
字段
names[]

string

政策标记资源名称的列表。例如,“projects/1/locations/eu/taxonomies/2/policyTags/3”。目前最多允许添加 1 个政策标记。

JSON 表示法
{

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

联合字段 _name

_name 只能是下列其中一项:

name

string

数据政策资源名称,格式为 projects/project_id/locations/location_id/dataPolicies/data_policy_id。

JSON 表示法
{
  "value": string
}
字段
value

string (int64 format)

int64 值。

JSON 表示法
{
  "type": string
}
字段
type

string

必需。字段元素的类型。如需了解详情,请参阅TableFieldSchema.type

JSON 表示法
{
  "typeSystem": enum (TypeSystem)
}
字段
typeSystem

enum (TypeSystem)

必需。指定定义外部数据类型的系统。

JSON 表示法
{
  "fields": {
    string: value,
    ...
  }
}
字段
fields

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

无序的动态类型值映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

JSON 表示法
{
  "key": string,
  "value": value
}
字段
key

string

value

value (Value format)

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.
}
字段
联合字段 kind。值的类型。kind 只能是下列其中一项:
nullValue

null

表示 null 值。

numberValue

number

表示双精度值。

stringValue

string

表示字符串值。

boolValue

boolean

表示布尔值。

structValue

object (Struct format)

表示结构化值。

listValue

array (ListValue format)

表示重复的 Value

JSON 表示法
{
  "values": [
    value
  ]
}
字段
values[]

value (Value format)

动态类型值的重复字段。

JSON 表示法
{
  "value": boolean
}
字段
value

boolean

布尔值。

JSON 表示法
{
  "reason": string,
  "location": string,
  "debugInfo": string,
  "message": string
}
字段
reason

string

简要的错误代码,用于总结错误。

location

string

指定发生错误的位置(如果有)。

debugInfo

string

调试信息。此属性是 Google 内部属性,不应使用。

message

string

人类可读的错误说明。

工具注释

破坏性提示:✅ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:✅