工具:execute_sql
在项目中运行 SQL 查询并返回结果。
此工具仅限使用 SELECT 条语句。不允许使用 INSERT、UPDATE 和 DELETE 语句和存储过程。如果查询不包含 SELECT 语句,则会返回错误。如需了解如何创建查询,请参阅 GoogleSQL 文档。
如果查询调用远程函数或 Python UDF,execute_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 |
必需。将用于查询执行和结算的项目。 |
query |
必需。要执行的查询,以 GoogleSQL 查询的形式表示。 |
dryRun |
可选。如果设置为 true,BigQuery 不会运行作业。相反,如果查询有效,BigQuery 会返回有关该作业的统计信息,例如将要处理多少字节。如果查询无效,则会返回错误。默认值为 false。 |
输出架构
针对 BigQuery SQL 查询的响应。
| JSON 表示法 |
|---|
{ "schema": { object ( |
| 字段 | |
|---|---|
schema |
结果的架构。仅当查询成功完成时显示。 |
rows[] |
一个对象,其中包含的结果数量不超过允许的最大回复大小。如需获取任何其他行,您可以调用 GetQueryResults 并指定上面返回的 jobReference。 |
jobComplete |
查询是否已完成。如果存在 rows 或 totalRows,则此值始终为 true。如果此值为 false,则 totalRows 将不可用。 |
errors[] |
仅限输出。作业运行期间遇到的第一个错误或警告。最终消息包含导致进程停止的错误数量。此处的错误并不一定意味着作业已完成或未成功。如需详细了解错误消息,请参阅错误消息。 |
| JSON 表示法 |
|---|
{ "fields": [ { object ( |
| 字段 | |
|---|---|
fields[] |
描述表格中的字段。 |
foreignTypeInfo |
可选。指定字段架构 ( |
| JSON 表示法 |
|---|
{ "name": string, "type": string, "mode": string, "fields": [ { object ( |
| 字段 | |
|---|---|
name |
必需。字段名称。名称只能包含字母(a-z、A-Z)、数字 (0-9) 或下划线 (_),并且必须以字母或下划线开头。长度上限为 300 个字符。 |
type |
必需。字段数据类型。可能的值包括:
使用 RECORD/STRUCT 表示相应字段包含嵌套的架构。 |
mode |
可选。字段模式。可能的值包括 NULLABLE、REQUIRED 和 REPEATED。默认值为 NULLABLE。 |
fields[] |
可选。如果 type 属性设置为 RECORD,则描述嵌套的架构字段。 |
description |
可选。字段说明。最大长度为 1,024 个字符。 |
policyTags |
可选。附加到此字段的政策标记,用于字段级访问权限控制。如果未设置,则默认为空 policy_tags。 |
dataPolicies[] |
可选。附加到此字段的数据政策,用于字段级访问权限控制。 |
nameAlternative[] |
不应使用此字段。 |
maxLength |
可选。STRING 或 BYTES 的相应字段值的最大长度。 如果未指定 max_length,则此字段没有长度上限限制。 如果 type = "STRING",则 max_length 表示相应字段中字符串的最大 UTF-8 长度。 如果 type = "BYTES",则 max_length 表示相应字段中的最大字节数。 如果类型不为“STRING”且不为“BYTES”,则设置此字段无效。 |
precision |
可选。NUMERIC 或 BIGNUMERIC 的相应字段值的精度(以 10 为底的总位数上限)和比例(以 10 为底的小数部分位数上限)限制。 如果类型不为“NUMERIC”且不为“BIGNUMERIC”,则设置精度或小数位数无效。 如果未指定精度和比例,则不会对此字段施加任何值范围限制,只要值符合相应类型即可。 当出现以下情况时,相应 NUMERIC 或 BIGNUMERIC 字段的值必须在此范围内:
如果同时指定了精度和标度,则可接受的值如下:
如果仅指定了精度,而未指定小数位数(因此小数位数被解读为零),则可接受的精度值如下:
如果指定了小数位数,但未指定总位数,则无效。 |
scale |
可选。如需了解精度,请参阅文档。 |
timestampPrecision |
可选。TIMESTAMP 类型的秒的精度(以 10 为底的总位数上限)。 可能的值包括:* 6(默认值,适用于精确到微秒的 TIMESTAMP 类型)* 12(适用于精确到皮秒的 TIMESTAMP 类型) |
roundingMode |
可选。指定存储 NUMERIC 和 BIGNUMERIC 类型的值时要使用的舍入模式。 |
collation |
可选。只有当字段的类型为 STRING 时,才能设置字段排序规则。支持以下值:
|
defaultValueExpression |
可选。用于指定相应字段的默认值的 SQL 表达式。 |
rangeElementType |
可选。如果相应字段的类型为 RANGE,则为 RANGE 的子类型。如果类型为 RANGE,则此字段为必填字段。字段元素类型的值可以是以下任一值:
|
foreignTypeDefinition |
可选。外部数据类型的定义。仅对顶级架构字段(而非嵌套字段)有效。如果类型为 FOREIGN,则此字段为必填字段。 |
| JSON 表示法 |
|---|
{ "value": string } |
| 字段 | |
|---|---|
value |
字符串值。 |
| JSON 表示法 |
|---|
{ "names": [ string ] } |
| 字段 | |
|---|---|
names[] |
政策标记资源名称的列表。例如,“projects/1/locations/eu/taxonomies/2/policyTags/3”。目前最多允许添加 1 个政策标记。 |
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
name |
数据政策资源名称,格式为 projects/project_id/locations/location_id/dataPolicies/data_policy_id。 |
| JSON 表示法 |
|---|
{ "value": string } |
| 字段 | |
|---|---|
value |
int64 值。 |
| JSON 表示法 |
|---|
{ "type": string } |
| 字段 | |
|---|---|
type |
必需。字段元素的类型。如需了解详情,请参阅 |
| JSON 表示法 |
|---|
{
"typeSystem": enum ( |
| 字段 | |
|---|---|
typeSystem |
必需。指定定义外部数据类型的系统。 |
| JSON 表示法 |
|---|
{ "fields": { string: value, ... } } |
| 字段 | |
|---|---|
fields |
无序的动态类型值映射。 包含一系列 |
| JSON 表示法 |
|---|
{ "key": string, "value": value } |
| 字段 | |
|---|---|
key |
|
value |
|
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 kind。值的类型。kind 只能是下列其中一项: |
|
nullValue |
表示 null 值。 |
numberValue |
表示双精度值。 |
stringValue |
表示字符串值。 |
boolValue |
表示布尔值。 |
structValue |
表示结构化值。 |
listValue |
表示重复的 |
| JSON 表示法 |
|---|
{ "values": [ value ] } |
| 字段 | |
|---|---|
values[] |
动态类型值的重复字段。 |
| JSON 表示法 |
|---|
{ "value": boolean } |
| 字段 | |
|---|---|
value |
布尔值。 |
| JSON 表示法 |
|---|
{ "reason": string, "location": string, "debugInfo": string, "message": string } |
| 字段 | |
|---|---|
reason |
简要的错误代码,用于总结错误。 |
location |
指定发生错误的位置(如果有)。 |
debugInfo |
调试信息。此属性是 Google 内部属性,不应使用。 |
message |
人类可读的错误说明。 |
工具注释
破坏性提示:✅ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:✅