שימוש בשרת MCP של BigQuery Migration Service
במאמר הזה נסביר איך להשתמש בשרת Model Context Protocol (MCP) מרוחק של BigQuery כדי להתחבר לאפליקציות AI, כולל Gemini CLI, ChatGPT, Claude ואפליקציות מותאמות אישית שאתם מפתחים. אפשר להשתמש בשרת Model Context Protocol (MCP) של שירות ההעברה ל-BigQuery כדי לבצע משימות כמו תרגום שאילתות SQL לתחביר GoogleSQL, יצירת הצהרות DDL משאילתות קלט של SQL וקבלת הסברים על תרגומים של SQL. שרת ה-MCP המרוחק של BigQuery מופעל כשמפעילים את BigQuery API.Model Context Protocol (MCP) הוא תקן שקובע איך מודלים גדולים של שפה (LLM) ואפליקציות או סוכני AI מתחברים למקורות נתונים חיצוניים. שרתי MCP מאפשרים לכם להשתמש בכלים, במשאבים ובהנחיות שלהם כדי לבצע פעולות ולקבל נתונים מעודכנים משירות ה-Backend שלהם.
שרתי MCP מקומיים פועלים בדרך כלל במחשב המקומי ומשתמשים בזרמי הקלט והפלט הרגילים (stdio) לתקשורת בין שירותים באותו מכשיר. שרתי MCP פועלים בתשתית של השירות ומציעים נקודת קצה של HTTPS לאפליקציות AI לצורך תקשורת בין לקוח ה-AI MCP לבין שרת ה-MCP. מידע נוסף על ארכיטקטורת MCP זמין במאמר ארכיטקטורת MCP.
לשרתי Google ו-MCP יש את התכונות והיתרונות הבאים: Google Cloud
- גילוי פשוט ומרכזי
- נקודות קצה מנוהלות של HTTPS גלובליות או אזוריות
- הרשאות פרטניות
- אבטחת הנחיות ותשובות אופציונלית באמצעות הגנה מוגברת על המודל
- רישום מרכזי ביומן הביקורת
מידע על שרתי MCP אחרים ועל אמצעי אבטחה ובקרה שזמינים לשרתי MCP של Google Cloud מופיע במאמר סקירה כללית על שרתי MCP של Google Cloud.
לפני שמתחילים
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
מפעילים את BigQuery Migration Service API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להפעלת שרת ה-MCP של שירות ההעברה ל-BigQuery, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט שבו אתם רוצים להפעיל את שרת ה-MCP של שירות ההעברה ל-BigQuery:
-
ביצוע קריאות לכלי MCP:
משתמש בכלי MCP (
roles/mcp.toolUser) -
שימוש ב-BigQuery Migration Service:
Migration Workflow Editor (
roles/bigquerymigration.editor)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות להפעלת שרת ה-MCP של BigQuery Migration Service. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להפעיל את שרת ה-MCP של BigQuery Migration Service, נדרשות ההרשאות הבאות:
-
ביצוע קריאות לכלי ה-MCP:
mcp.tools.call -
שימוש ב-BigQuery Migration Service:
-
bigquerymigration.workflows.create -
bigquerymigration.workflows.get -
bigquerymigration.workflows.list -
bigquerymigration.workflows.delete -
bigquerymigration.subtasks.get -
bigquerymigration.subtasks.list
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יכול להיות שיידרשו הרשאות נוספות ל-BigQuery Migration Service, בהתאם למשימה. במאמר תפקידים והרשאות של BigQuery Migration Service יש מידע על תפקידים והרשאות של BigQuery Migration Service.
אימות והרשאה
שרתי MCP של BigQuery Migration Service משתמשים בפרוטוקול OAuth 2.0 עם ניהול זהויות והרשאות גישה (IAM) לאימות ולהרשאה. כל Google Cloud הזהויות נתמכות לצורך אימות לשרתי MCP.
שרת ה-MCP של BigQuery Migration Service לא מקבל מפתחות API.
היקפי הרשאות OAuth של BigQuery Migration Service MCP
ב-OAuth 2.0 משתמשים בהיקפי הרשאות ובפרטי כניסה כדי לקבוע אם לגורם מאומת מסוים יש הרשאה לבצע פעולה ספציפית במשאב. מידע נוסף על היקפי ההרשאות של OAuth 2.0 ב-Google זמין במאמר שימוש ב-OAuth 2.0 לגישה ל-Google APIs.
ל-BigQuery Migration Service יש את היקפי ההרשאות הבאים של OAuth בכלי MCP:
| URI של היקף ל-CLI של gcloud | תיאור |
|---|---|
https://www.googleapis.com/auth/bigquerymigration |
הצגה וניהול של תהליכי העבודה שלכם ב-BigQuery Migration Service והצגת כתובת האימייל של חשבון Google שלכם. |
https://www.googleapis.com/auth/devstorage.read_only |
ההיקף הזה נדרש לתרגומי שאילתות שקוראות נתונים מ-Cloud Storage. |
יכול להיות שיידרשו היקפי הרשאות נוספים כדי לגשת למשאבים במהלך הפעלת כלי.
הגדרת לקוח MCP לשימוש בשרת MCP של שירות ההעברה ל-BigQuery
אפליקציות וסוכנים מבוססי-AI, כמו Claude או Antigravity, יכולים ליצור מופע של לקוח MCP שמתחבר לשרת MCP יחיד. לאפליקציית AI יכולים להיות כמה לקוחות שמתחברים לשרתי MCP שונים. אם האפליקציה שלכם לא מופיעה בהנחיות הספציפיות ללקוח, תוכלו להשתמש במידע הבא כדי להתחבר מרוב האפליקציות.
רישום שרת ה-MCP באמצעות add-mcp
אתם יכולים לרשום אוטומטית את שרת ה-MCP של שירות ההעברה ל-BigQuery בלקוחות AI נתמכים באמצעות add-mcp בלי לאתר ידנית את נתיבי קובץ ההגדרות. הכלי מזהה אוטומטית את לקוחות ה-AI המותקנים. בדוגמה הבאה מוצג איך להשתמש ב-add-mcp כדי לרשום את שרת ה-MCP של BigQuery Migration Service:
npx add-mcp https://bigquerymigration.googleapis.com/mcp --name bqms --header "x-goog-user-project: <var>PROJECT_ID</var>" --scopes "https://www.googleapis.com/auth/bigquerymigration,https://www.googleapis.com/auth/devstorage.read_only" --timeout 30000
Google Cloud
באפליקציית ה-AI, מחפשים דרך להוסיף או להתחבר לשרת MCP מרוחק. בשרת MCP של שירות ההעברה ל-BigQuery, מזינים את הפרטים הבאים לפי הצורך:
- שם השרת: שרת MCP של BigQuery Migration Service
- כתובת ה-URL של השרת או נקודת הקצה: bigquerymigration.googleapis.com/mcp
- Transport: HTTP
פרטי אימות: Google Cloud פרטי הכניסה שלכם, מזהה הלקוח וסוד הלקוח ב-OAuth, או זהות ופרטי כניסה של סוכן
פרטי האימות שבוחרים תלויים בשיטת האימות שרוצים להשתמש בה. מידע נוסף זמין במאמר בנושא אימות לשרתי MCP.
הדוגמה הבאה היא הגדרה של Gemini CLI:
{
"name": "BQMS-MCP",
"version": "1.0.0",
"mcpServers": {
"BigQueryMigration": {
"httpUrl": "https://bigquerymigration.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/bigquerymigration",
"https://www.googleapis.com/auth/devstorage.read_only"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "PROJECT_ID"
}
}
}
}
URI של הפניה אוטומטית
באפליקציות מבוססות-אינטרנט ובחלק מהאפליקציות למחשב, צריך להוסיף לרשימת ההיתרים URI להפניה אוטומטית כשיוצרים מזהה לקוח וסוד לאימות. שרת ההרשאות משתמש בכתובות ה-URI להפניה אוטומטית כדי לשלוח טוקנים לאפליקציה שלכם. במסמכי התיעוד של האפליקציה צריך לציין את ה-URI להפניה אוטומטית שבו צריך להשתמש. אין תמיכה בכתובות URI מותאמות אישית להפניה אוטומטית.
הנחיות ספציפיות לאפליקציות לגבי הגדרה וחיבור לשרת MCP מפורטות במאמר הנחיות ספציפיות ללקוחות.
הנחיות כלליות נוספות זמינות במקורות המידע הבאים:
כלים זמינים
כדי לראות פרטים על כלי MCP זמינים ותיאורים שלהם עבור שרת ה-MCP של BigQuery Migration Service, אפשר לעיין בהפניה ל-MCP של BigQuery Migration Service.
כלים ליצירת רשימות
אפשר להשתמש בכלי הבדיקה של MCP כדי לראות רשימה של כלים, או לשלוח בקשת HTTP tools/list ישירות לשרת MCP של שירות ההעברה ל-BigQuery. בשיטה tools/list לא נדרש אימות.
POST /mcp HTTP/1.1
Host: bigquerymigration.googleapis.com
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
}
תרחישים לדוגמה
אלה כמה תרחישי שימוש לדוגמה בשרת BigQuery Migration Service MCP:
- באמצעות לקוח MCP עם IDE, מתרגמים קובץ שאילתות לתחביר של GoogleSQL.
- בעזרת לקוח MCP ללא IDE, מתרגמים שאילתה שצוינה לתחביר של GoogleSQL.
- הערכת איכות התרגום.
- לקבל הסברים על תרגומים של SQL.
- יצירת הצהרת DDL לשאילתה ספציפית.
הנחיות לדוגמה
אפשר להשתמש בהנחיות לדוגמה הבאות כדי ליצור ולנהל משאבים של BigQuery Migration Service:
תרגום השאילתה
DIALECTבבקשהFILENAME. משתמשים ב-PROJECT_IDוב-LOCATION. שומרים את הפלט ואת יומני התרגום בספריות נפרדות.כשמשתמשים בהנחיה הזו, לקוח ה-MCP קורא לכלי
translate_queryכדי לתרגם את השאילתה בקובץ שצוין. לקוח ה-MCP מתקשר מעת לעת לכליget_translationכדי לקבל את התוצאות. אחרי שהתרגום מסתיים, הלקוח כותב את הפלט לספריית הפלט ואת היומנים לספריית היומנים.תורגם מ-
DIALECT:QUERY. משתמשים ב-PROJECT_IDוב-LOCATION.כשמשתמשים בהנחיה הזו, לקוח ה-MCP קורא לכלי
translate_queryכדי לתרגם את השאילתה שצוינה ומציג את תוצאות התרגום.הערכת איכות התרגום.
כשמשתמשים בהנחיה הזו, לקוח ה-MCP קורא ובודק את יומני התרגום ומציג סיכום של בעיות התרגום עם הצעות לשלבים הבאים.
הסבר על התרגום.
כשמשתמשים בהנחיה הזו, לקוח ה-MCP קורא לכלי
explain_translationכדי לקבל הסבר על התרגום. אם יומני התרגום מכילים שגיאותRelationNotFoundאוAttributeNotFound, לקוח ה-MCP צריך להציע לכם ליצור חבילת מטא-נתונים. אם אתם לא יכולים ליצור את המטא-נתונים, אתם יכולים לשלוח הנחיה שמבקשת את הצהרת ה-DDL.דוגמה לתשובה:
The translated code converts Teradata-specific features into their BigQuery equivalents. Here's a breakdown of the key changes: * `MACRO` to `PROCEDURE`: The `YourMacroName` macro was converted into a BigQuery stored procedure because BigQuery doesn't support macros. * `SELECT INTO` to `SET`: * For setting multiple `OUT` parameters in `YourStoredProcedureName`, the `SELECT ... INTO` is changed to `SET (...) = (SELECT STRUCT(...))`. * For single variable assignment in `YourOtherProcedureName`, `SELECT ... INTO` is replaced by `SET variable = (SELECT ...)` which is the standard in BigQuery. * Atomic Operations to `MERGE: The BEGIN REQUEST ... END REQUEST` blocks in the `ProcedureA`, `ProcedureB`, and `ProcedureC` procedures, which perform atomic "update or insert" operations, are translated into standard SQL `MERGE` statements. This is the correct and modern way to handle this logic in BigQuery.יצירת DDL לשאילתת הקלט הזו.
לקוח ה-MCP קורא לכלי
generate_ddl_suggestionכדי להתחיל עבודת הצעה. הלקוח מקבל את תוצאות ההצעה על ידי קריאה לכליfetch_ddl_suggestion. כשההצעה זמינה, היא מוצגת בלקוח MCP.אם הצהרות ה-DDL נכונות, אפשר לשלוח הנחיה להוספת הצהרות ה-DDL שנוצרו לפני השאילתה כדי לשפר את איכות התרגום.
מוסיפים את הצהרות ה-DDL שנוצרו לפני שאילתת הקלט ומתרגמים מחדש.
כשמשתמשים בהנחיה הזו, לקוח ה-MCP מוסיף את הצהרות ה-DDL לפני שאילתת הקלט המקורית ומפעיל את הכלי
translate_query. הלקוח מתקשר לכליget_translationכדי לקבל את התרגום. התרגום החדש של השאילתה והיומנים נשמרים כשהם זמינים.אם משפטי ה-DDL שנוצרו נכונים, צריך לפתור את השגיאות
RelationNotFoundאוAttributeNotFound, וכתוצאה מכך איכות התרגום תשתפר.
בהנחיות, מחליפים את מה שכתוב בשדות הבאים:
-
DIALECT: הניב של שאילתת ה-SQL שמתרגמים. -
QUERY: השאילתה שאתם מתרגמים. -
FILENAME: הקובץ שמכיל את השאילתה שאתם מתרגמים. -
PROJECT_NUMBER: Google Cloud מספר הפרויקט. -
LOCATION: המיקום של כלי התרגום של SQL.
הגדרות אבטחה ובטיחות אופציונליות
השימוש ב-MCP מציג סיכוני אבטחה חדשים ושיקולים חדשים, בגלל המגוון הרחב של הפעולות שאפשר לבצע באמצעות כלי MCP. כדי למזער את הסיכונים האלה ולנהל אותם,Google Cloud מציע הגדרות ברירת מחדל ומדיניות שניתנת להתאמה אישית כדי לשלוט בשימוש בכלי MCP בארגון או בפרויקט שלכם ב- Google Cloud.
מידע נוסף על אבטחה וניהול של MCP זמין במאמר בנושא אבטחה ובטיחות של AI.
שימוש בהגנה מוגברת על המודל
Model Armor הואGoogle Cloud שירות שנועד לשפר את האבטחה והבטיחות של אפליקציות ה-AI שלכם. היא פועלת על ידי סינון יזום של הנחיות ותשובות של מודלים גדולים של שפה (LLM), הגנה מפני סיכונים שונים ותמיכה בשיטות עבודה אחראיות בתחום ה-AI. בין אם אתם פורסים AI בסביבת הענן שלכם או אצל ספקי שירותי ענן חיצוניים, הגנה מוגברת על המודל יכול לעזור לכם למנוע קלט זדוני, לאמת את בטיחות התוכן, להגן על מידע אישי רגיש, לשמור על תאימות ולאכוף את מדיניות הבטיחות והאבטחה של ה-AI באופן עקבי בסביבת ה-AI המגוונת שלכם.
כשמפעילים את Model Armor עם הפעלת רישום ביומן, המערכת רושמת ביומן את כל מטען הנתונים. הפעולה הזו עלולה לחשוף מידע רגיש ביומני הרישום.
הפעלת הגנה מוגברת על המודל
כדי להשתמש ב-Model Armor, צריך להפעיל את ממשקי ה-API של Model Armor.
המסוף
מפעילים את הגנה מוגברת על המודל API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםבוחרים את הפרויקט שבו רוצים להפעיל את הגנה מוגברת על המודל.
gcloud
לפני שמתחילים, מבצעים את השלבים הבאים באמצעות Google Cloud CLI עם Model Armor API:
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init-
מריצים את הפקודה הבאה כדי להגדיר את נקודת קצה ל-API לשירות הגנה מוגברת על המודל.
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
מחליפים את
LOCATIONבאזור שבו רוצים להשתמש בהגנה מוגברת על המודל.
הגדרת הגנה לשרתי MCP של Google ושרתי MCP מרוחקים Google Cloud
כדי להגן על השיחות והתגובות של כלי ה-MCP, אפשר להשתמש בהגדרות של Model Armor. הגדרת רמת בסיס מגדירה את מסנני האבטחה המינימליים שחלים על הפרויקט. ההגדרה הזו מחילה קבוצה עקבית של מסננים על כל הקריאות והתשובות של כלי MCP בפרויקט.
הגדרת סף תחתון של הגנה מוגברת על המודל עם הפעלת ניקוי של MCP. מידע נוסף זמין במאמר בנושא הגדרת ערכי סף ב-Model Armor.
דוגמה לפקודה:
gcloud model-armor floorsettings update \ --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \ --enable-floor-setting-enforcement=TRUE \ --add-integrated-services=GOOGLE_MCP_SERVER \ --google-mcp-server-enforcement-type=INSPECT_AND_BLOCK \ --enable-google-mcp-server-cloud-logging \ --malicious-uri-filter-settings-enforcement=ENABLED \ --add-rai-settings-filters='[{"confidenceLevel": "MEDIUM_AND_ABOVE", "filterType": "DANGEROUS"}]'
מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .
שימו לב להגדרות הבאות:
-
INSPECT_AND_BLOCK: סוג האכיפה שבודק את התוכן בשרת MCP של Google וחוסם הנחיות ותשובות שתואמות למסננים. -
ENABLED: ההגדרה שמפעילה מסנן או אכיפה. -
MEDIUM_AND_ABOVE: רמת הסמך של ההגדרות של המסנן 'אתיקה של בינה מלאכותית – מסוכן'. אפשר לשנות את ההגדרה הזו, אבל ערכים נמוכים יותר עלולים להוביל ליותר תוצאות חיוביות כוזבות. מידע נוסף זמין במאמר בנושא רמות הסמך של הגנה מוגברת על המודל.
השבתת סריקת תעבורת נתונים של MCP באמצעות הגנה מוגברת על המודל
כדי להפסיק את הסריקה האוטומטית של התנועה אל השרתים של Google MCP וממנה על ידי Model Armor על סמך הגדרות הרצפה של הפרויקט, מריצים את הפקודה הבאה:
gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--remove-integrated-services=GOOGLE_MCP_SERVER
מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud . התכונה הגנה מוגברת על המודל לא מחילה באופן אוטומטי את הכללים שמוגדרים בהגדרות אבטחה מינימליות של הפרויקט הזה על תעבורת נתונים של שרת MCP.
הגדרות הסף התחתון של Model Armor וההגדרה הכללית יכולות להשפיע על יותר דברים מאשר רק על MCP. Model Armor משולב עם שירותים כמו Vertex AI, ולכן כל שינוי שתבצעו בהגדרות של רמת הבסיס יכול להשפיע על סריקת התנועה ועל התנהגויות הבטיחות בכל השירותים המשולבים, ולא רק ב-MCP.
שליטה בשימוש ב-MCP באמצעות מדיניות IAM
כללי מדיניות הדחייה ומדיניות ההרשאות של ניהול הזהויות והרשאות הגישה (IAM) עוזרים לכם לאבטח Google Cloud שרתים של Google MCP.
אתם יכולים לשלב כמה קריטריונים כדי ליצור מדיניות אבטחה ומדיניות ניהול בהתאמה אישית, על ידי מתן או דחייה של גישה על סמך הקריטריונים הבאים:
- החשבון הראשי.
- מאפייני כלי כמו מאפיין הקריאה בלבד.
- שם השירות או שם הכלי.
- מזהה הלקוח ב-OAuth של האפליקציה.
מידע נוסף זמין במאמר שליטה בשימוש ב-MCP באמצעות ניהול זהויות וגישה.
מכסות ומגבלות
אתם עדיין כפופים למכסות שנאכפות על ידי ממשקי ה-API שנקראים על ידי כלי השרת של ה-MCP. השיטות הבאות ב-API מופעלות על ידי כלי שרת ה-MCP:
| כלי | שיטת ה-API | מכסות |
|---|---|---|
explain_translation |
GetMigrationWorkflow |
מכסות ומגבלות של BigQuery Migration API |
fetch_ddl_suggestion |
GetMigrationWorkflow |
מכסות ומגבלות של BigQuery Migration API |
get_translation |
GetMigrationWorkflow |
מכסות ומגבלות של BigQuery Migration API |
generate_ddl_suggestion |
CreateMigrationWorkflow |
מכסות ומגבלות של BigQuery Migration API |
translate_query |
CreateMigrationWorkflow |
מכסות ומגבלות של BigQuery Migration API |
מידע נוסף על מכסות ב-BigQuery זמין במאמר מכסות ומגבלות.
המאמרים הבאים
- אפשר לקרוא את מסמכי העיון של BigQuery Migration Service MCP.
- מידע נוסף על השרתים של Google Cloud MCP
- כאן אפשר לראות את המוצרים הנתמכים ב-MCP.