כלי: execute_sql
מריצים שאילתת SQL בפרויקט ומחזירים את התוצאה.
הכלי הזה מוגבל ל-SELECT דוחות בלבד. אסור להשתמש בהצהרות INSERT, UPDATE ו-DELETE ובפרוצדורות מאוחסנות. אם השאילתה לא כוללת הצהרת SELECT, מוחזרת שגיאה. מידע על יצירת שאילתות מופיע במאמרי העזרה בנושא GoogleSQL.
לכלי execute_sql יכולות להיות גם תופעות לוואי אם השאילתה מפעילה פונקציות מרחוק או פונקציות מוגדרות על ידי המשתמש (UDF) ב-Python.
לכל השאילתות שמופעלות באמצעות הכלי execute_sql יש תווית שמזהה את הכלי כמקור. אפשר להשתמש בתווית הזו כדי לסנן את השאילתות באמצעות זוג התווית והערך goog-mcp-server: true.
החיוב על השאילתות מתבצע בפרויקט שצוין בשדה project_id.
בדוגמה הבאה אפשר לראות איך משתמשים ב-curl כדי להפעיל את כלי ה-MCP execute_sql.
| בקשת 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 }' |
סכימת הקלט
מריץ שאילתת SQL ב-BigQuery באופן סינכרוני ומחזיר את תוצאות השאילתה אם השאילתה מסתיימת לפני תפוגת הזמן שצוין.
QueryRequest
| ייצוג ב-JSON |
|---|
{ "projectId": string, "query": string, "dryRun": boolean } |
| שדות | |
|---|---|
projectId |
חובה. פרויקט שישמש להרצת שאילתות ולחיוב. |
query |
חובה. השאילתה להרצה, בצורה של שאילתת GoogleSQL. |
dryRun |
זה שינוי אופציונלי. אם המאפיין מוגדר כ-true, המשימה לא מורצת ב-BigQuery. במקום זאת, אם השאילתה תקינה, BigQuery מחזיר נתונים סטטיסטיים על העבודה, כמו מספר הבייטים שיעברו עיבוד. אם השאילתה לא תקינה, ה-API מחזיר שגיאה. ערך ברירת המחדל הוא false. |
סכימת פלט
תגובה לשאילתת SQL ב-BigQuery.
QueryResponse
| ייצוג ב-JSON |
|---|
{ "schema": { object ( |
| שדות | |
|---|---|
schema |
הסכימה של התוצאות. התג הזה מוצג רק אם השאילתה הושלמה בהצלחה. |
rows[] |
אובייקט עם מספר התוצאות המקסימלי שאפשר לכלול בגודל התשובה המקסימלי המותר. כדי לקבל שורות נוספות, אפשר לקרוא ל-GetQueryResults ולציין את jobReference שהוחזר למעלה. |
jobComplete |
האם השאילתה הסתיימה או לא. אם יש שורות או totalRows, הערך הזה תמיד יהיה true. אם הערך הוא False, המאפיין totalRows לא יהיה זמין. |
errors[] |
פלט בלבד. השגיאות או האזהרות הראשונות שנתקלו בהן במהלך הפעלת העבודה. ההודעה הסופית כוללת את מספר השגיאות שגרמו להפסקת התהליך. שגיאות שמופיעות כאן לא בהכרח אומרות שהעבודה הסתיימה או שהיא נכשלה. מידע נוסף על הודעות שגיאה זמין במאמר הודעות שגיאה. |
TableSchema
| ייצוג ב-JSON |
|---|
{ "fields": [ { object ( |
| שדות | |
|---|---|
fields[] |
תיאור השדות בטבלה. |
foreignTypeInfo |
זה שינוי אופציונלי. מציין מטא-נתונים של הגדרת סוג הנתונים החיצוני בסכימת השדה ( |
TableFieldSchema
| ייצוג ב-JSON |
|---|
{ "name": string, "type": string, "mode": string, "fields": [ { object ( |
| שדות | |
|---|---|
name |
חובה. שם השדה. השם חייב להכיל רק אותיות (a-z, A-Z), מספרים (0-9) או קווים תחתונים (_), והוא חייב להתחיל באות או בקו תחתון. האורך המקסימלי הוא 300 תווים. |
type |
חובה. סוג הנתונים של השדה. הערכים האפשריים כוללים:
השימוש ב-RECORD/STRUCT מציין שהשדה מכיל סכימה מקוננת. |
mode |
זה שינוי אופציונלי. השדה mode. הערכים האפשריים הם NULLABLE, REQUIRED ו-REPEATED. ערך ברירת המחדל הוא NULLABLE. |
fields[] |
זה שינוי אופציונלי. מתאר את השדות של הסכימה המקוננת אם מאפיין הסוג מוגדר כ-RECORD. |
description |
זה שינוי אופציונלי. תיאור השדה. האורך המקסימלי הוא 1,024 תווים. |
policyTags |
זה שינוי אופציונלי. תגי המדיניות שמצורפים לשדה הזה, שמשמשים לבקרת גישה ברמת השדה. אם לא מוגדר, ברירת המחדל היא policy_tags ריקים. |
dataPolicies[] |
זה שינוי אופציונלי. כללי מדיניות לגבי נתונים שמצורפים לשדה הזה, ומשמשים לבקרת גישה ברמת השדה. |
maxLength |
זה שינוי אופציונלי. האורך המקסימלי של הערכים בשדה הזה עבור מחרוזות או בייטים. אם לא מציינים את max_length, לא מוטלת על השדה הזה מגבלת אורך מקסימלית. אם type = "STRING", max_length מייצג את האורך המקסימלי של מחרוזות בקידוד UTF-8 בשדה הזה. אם type = "BYTES", max_length מייצג את מספר הבייטים המקסימלי בשדה הזה. אסור להגדיר את השדה הזה אם הערך של type הוא לא STRING ולא BYTES. |
precision |
זה שינוי אופציונלי. אילוצים של דיוק (מספר הספרות המקסימלי הכולל בבסיס 10) וקנה מידה (מספר הספרות המקסימלי בחלק השברי בבסיס 10) לערכים של השדה הזה עבור NUMERIC או BIGNUMERIC. אי אפשר להגדיר דיוק או קנה מידה אם type ≠ "NUMERIC" ו-≠ "BIGNUMERIC". אם לא מציינים את הדיוק והקנה מידה, לא מוטל על השדה הזה אילוץ של טווח ערכים, כל עוד הערכים מותרים לפי הסוג. הערכים בשדה NUMERIC או BIGNUMERIC חייבים להיות בטווח הזה כאשר:
ערכים קבילים לדיוק ולסולם אם שניהם מצוינים:
ערכים קבילים לדיוק אם מציינים רק דיוק ולא קנה מידה (ולכן קנה המידה מפורש כשווי ערך לאפס):
אם מציינים את קנה המידה אבל לא את הדיוק, הערך לא תקין. |
scale |
זה שינוי אופציונלי. לקבלת פרטים, אפשר לעיין במסמכי התיעוד. |
timestampPrecision |
זה שינוי אופציונלי. הדיוק (מספר הספרות הכולל המקסימלי בבסיס 10) של שניות מסוג TIMESTAMP. הערכים האפשריים כוללים: * 6 (ברירת מחדל, לסוג TIMESTAMP עם דיוק של מיקרו-שנייה) * 12 (לסוג TIMESTAMP עם דיוק של פיקו-שנייה) |
roundingMode |
זה שינוי אופציונלי. מציין את אופן העיגול שיש להשתמש בו כשמאחסנים ערכים מסוג NUMERIC ו-BIGNUMERIC. |
collation |
זה שינוי אופציונלי. אפשר להגדיר איסוף שדות רק אם סוג השדה הוא STRING. יש תמיכה בערכים הבאים:
|
defaultValueExpression |
זה שינוי אופציונלי. ביטוי SQL שמציין את ערך ברירת המחדל של השדה הזה. |
rangeElementType |
זה שינוי אופציונלי. סוג המשנה של הטווח, אם הסוג של השדה הזה הוא RANGE. אם הסוג הוא RANGE, חובה למלא את השדה הזה. הערכים של סוג רכיב השדה יכולים להיות:
|
foreignTypeDefinition |
זה שינוי אופציונלי. ההגדרה של סוג הנתונים החיצוני. ההגדרה הזו תקפה רק לשדות סכימה ברמה העליונה (לא לשדות מוטמעים). אם הסוג הוא FOREIGN (זר), חובה למלא את השדה הזה. |
StringValue
| ייצוג ב-JSON |
|---|
{ "value": string } |
| שדות | |
|---|---|
value |
ערך המחרוזת. |
PolicyTagList
| ייצוג ב-JSON |
|---|
{ "names": [ string ] } |
| שדות | |
|---|---|
names[] |
רשימה של שמות משאבים של תגי מדיניות. לדוגמה, "projects/1/locations/eu/taxonomies/2/policyTags/3". נכון לעכשיו, מותר להשתמש בתג מדיניות אחד לכל היותר. |
DataPolicyOption
| ייצוג ב-JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד הערך |
|
name |
שם המשאב של מדיניות הנתונים בפורמט projects/project_id/locations/location_id/dataPolicies/data_policy_id. |
Int64Value
| ייצוג ב-JSON |
|---|
{ "value": string } |
| שדות | |
|---|---|
value |
הערך int64. |
FieldElementType
| ייצוג ב-JSON |
|---|
{ "type": string } |
| שדות | |
|---|---|
type |
חובה. הסוג של רכיב שדה. מידע נוסף זמין במאמר |
ForeignTypeInfo
| ייצוג ב-JSON |
|---|
{
"typeSystem": enum ( |
| שדות | |
|---|---|
typeSystem |
חובה. מציין את המערכת שמגדירה את סוג הנתונים החיצוני. |
Struct
| ייצוג ב-JSON |
|---|
{ "fields": { string: value, ... } } |
| שדות | |
|---|---|
fields |
מפה לא מסודרת של ערכים עם הקלדה דינמית. אובייקט שמכיל רשימה של |
FieldsEntry
| ייצוג ב-JSON |
|---|
{ "key": string, "value": value } |
| שדות | |
|---|---|
key |
|
value |
|
ערך
| ייצוג ב-JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד kind. סוג הערך. הערך kind יכול להיות רק אחד מהבאים: |
|
nullValue |
מייצג ערך null. |
numberValue |
מייצג ערך כפול. |
stringValue |
מייצג ערך מחרוזת. |
boolValue |
מייצג ערך בוליאני. |
structValue |
מייצג ערך מובנה. |
listValue |
מייצג |
ListValue
| ייצוג ב-JSON |
|---|
{ "values": [ value ] } |
| שדות | |
|---|---|
values[] |
שדה חוזר של ערכים עם הקלדה דינמית. |
BoolValue
| ייצוג ב-JSON |
|---|
{ "value": boolean } |
| שדות | |
|---|---|
value |
הערך הבוליאני. |
ErrorProto
| ייצוג ב-JSON |
|---|
{ "reason": string, "location": string, "debugInfo": string, "message": string } |
| שדות | |
|---|---|
reason |
קוד שגיאה קצר שמסכם את השגיאה. |
location |
מציין איפה השגיאה התרחשה, אם יש כזו. |
debugInfo |
מידע על תוצאות ניפוי הבאגים. המאפיין הזה הוא פנימי ל-Google ואין להשתמש בו. |
message |
תיאור השגיאה שכתוב בצורה שקריאה לאנשים. |
הערות על כלי
רמז הרסני: ✅ | רמז אידמפוטנטי: ❌ | רמז לקריאה בלבד: ❌ | רמז לעולם פתוח: ✅