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
  • TIME
  • 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

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

ツールのアノテーション

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