ツール: 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 |
クエリが完了したかどうか。行または 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 はこのフィールドの最大バイト数を表します。 type が "STRING" でも "BYTES" でもない場合、このフィールドの設定は無効になります。 |
precision |
省略可。このフィールドの NUMERIC または BIGNUMERIC の値の精度(10 進数の合計桁数の最大値)とスケール(10 進数の小数部の桁数の最大値)の制約。 type が "NUMERIC" でも "BIGNUMERIC" でもない場合、精度やスケールの設定は無効になります。 精度とスケールが指定されていない場合、値が型で許可されている限り、このフィールドに値の範囲の制約は課されません。 この NUMERIC フィールドまたは BIGNUMERIC フィールドの値が満たす必要がある範囲は次のとおりです。
精度とスケールの両方を指定する場合の有効な値は次のとおりです。
精度のみを指定してスケールは指定しない(スケールは 0 と解釈される)場合の精度の有効な値は次のとおりです。
スケールが指定されていて精度が指定されていない場合は無効になります。 |
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 |
double 値を表します。 |
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 |
エラーの説明(人が読める形式)。 |
ツールのアノテーション
破壊的ヒント: ✅ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ✅