ツール: 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 |
エラーの説明(人が読める形式)。 |
ツールのアノテーション
破壊的ヒント: ✅ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ✅