MCP Tools Reference: bigquery.googleapis.com

ツール: execute_sql

プロジェクトで SQL クエリを実行し、結果を返します。

このツールは SELECT ステートメントのみに制限されています。INSERTUPDATEDELETE のステートメントとストアド プロシージャは許可されていません。クエリに 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

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

クエリが完了したかどうかを示します。行または 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)
  • TIMESTAMP
  • 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 はこのフィールドの最大バイト数を表します。

type が「STRING」でも「BYTES」でもない場合、このフィールドを設定することは無効です。

precision

string (int64 format)

省略可。NUMERIC または BIGNUMERIC のこのフィールドの値の精度(10 進数の合計桁数の最大値)とスケール(10 進数の小数部の桁数の最大値)の制約。

type ≠ 「NUMERIC」かつ ≠ 「BIGNUMERIC」の場合、精度またはスケールを設定することは無効です。

精度とスケールが指定されていない場合、値が型で許可されている限り、このフィールドに値の範囲の制約は課されません。

この NUMERIC フィールドまたは BIGNUMERIC フィールドの値は、次の条件を満たす場合にこの範囲内である必要があります。

  • 精度(P)とスケール(S)が指定されている場合: [-10P-S + 10-S, 10P-S - 10-S]
  • 精度(P)は指定されているが、スケールは指定されていない(したがって、スケールは 0 と解釈される): [-10P + 1, 10P - 1]。

精度とスケールの両方が指定されている場合に許容される値は次のとおりです。

  • type = "NUMERIC" の場合: 1 ≤ 精度 - スケール ≤ 29、0 ≤ スケール ≤ 9。
  • type = 「BIGNUMERIC」の場合: 1 ≤ 精度 - スケール ≤ 38、0 ≤ スケール ≤ 38。

精度のみが指定され、スケールが指定されていない(したがって、スケールは 0 と解釈される)場合の精度の許容値:

  • type = "NUMERIC" の場合: 1 ≤ 精度 ≤ 29。
  • type = "BIGNUMERIC" の場合: 1 ≤ 精度 ≤ 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
  • TIMESTAMP
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

double 値を表します。

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

エラーの説明(人が読める形式)。

ツールのアノテーション

破壊的ヒント: ✅ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ✅