ארגז הכלים של MCP למסדי נתונים: הפיכת מערכי נתונים של BigQuery לזמינים ללקוחות MCP

1. מבוא

בקודלאב הזה נשתמש ב-MCP Toolbox for Databases כדי להפוך את מערכי הנתונים ב-BigQuery לזמינים.

במהלך הקודלאב, נשתמש בגישה הדרגתית לפי השלבים הבאים:

  1. מאתרים מערך נתונים ספציפי ב-BigQuery ('הערות המוצר של Google Cloud') מהתוכנית הציבורית של מערכי הנתונים ב-BigQuery.
  2. מגדירים את MCP Toolbox for Databases שמתחבר למערך הנתונים ב-BigQuery.
  3. בודקים לקוחות MCP שונים ומאמתים שהם יכולים לגשת לממשק ה-MCP של מערך הנתונים ב-BigQuery.

81c33b0f8af54b0c.png

מה עליכם לעשות

  • הגדרת MCP Toolbox למסדי נתונים כדי לחשוף את הערות המוצר של Google Cloud, מערך נתונים ציבורי ב-BigQuery, כממשק MCP ללקוחות MCP אחרים (סביבות פיתוח משולבות, כלים וכו').

מה תלמדו

  • בודקים את מערכי הנתונים הציבוריים של BigQuery ובוחרים מערך נתונים ספציפי.
  • מגדירים את MCP Toolbox for Databases למערך הנתונים הציבורי ב-BigQuery שרוצים להפוך לזמין ללקוחות MCP.
  • בודקים את ההגדרות של MCP Toolbox למסדי נתונים בסביבה המקומית.

מה צריך להכין

  • דפדפן האינטרנט Chrome.
  • סביבת פיתוח מקומית של Python.
  • סביבה מקומית של Node.js עם npm בגרסה 5.2.0 ואילך.

2. לפני שמתחילים

יצירת פרויקט

  1. בדף לבחירת הפרויקט במסוף Google Cloud, בוחרים פרויקט קיים או יוצרים פרויקט חדש ב-Google Cloud.
  2. הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט
  3. נשתמש ב-Cloud Shell, סביבת שורת פקודה שפועלת ב-Google Cloud ומגיעה עם bq טעון מראש. לוחצים על Activate Cloud Shell בחלק העליון של מסוף Google Cloud.

תמונה של הלחצן להפעלת Cloud Shell

  1. אחרי שמתחברים ל-Cloud Shell, בודקים שכבר בוצע אימות ושהמזהה של הפרויקט מוגדר כפרויקט באמצעות הפקודה הבאה:
gcloud auth list
  1. מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שהפקודה gcloud מכירה את הפרויקט.
gcloud config list project
  1. אם הפרויקט לא מוגדר, משתמשים בפקודה הבאה כדי להגדיר אותו:
gcloud config set project <YOUR_PROJECT_ID>

במסמכי העזרה מפורטות הפקודות של gcloud והשימוש בהן.

3. מערך הנתונים של הערות המוצר של Google ולקוחות MCP

קודם נבחן את הערות המוצר של Google Cloud, שמתעדכנות באופן קבוע בדף האינטרנט הרשמי של הערות המוצר של Google Cloud. צילום המסך של הדף מופיע בהמשך:

37a7d9e124296c55.png

אפשר להירשם לכתובת ה-URL של הפיד, אבל מה אם נוכל פשוט לשאול את הנציג בצ'אט שלנו לגבי הערות המוצר האלה? אולי שאילתת חיפוש פשוטה כמו "עדכון על הערות המוצר של Google Cloud".

זהו צילום מסך של Visual Studio Code שבו פועל CoPilot ואני נמצא במצב Agent, ואני שואל על הערות המוצר של Google Cloud:

1ded42a37f128fa3.png

עכשיו נלמד איך ליצור את הפתרון הזה, ובדרך נלמד איך לחשוף את מערכי הנתונים של BigQuery בלקוחות MCP שונים לבחירתכם.

4. Toolbox של MCP למסדי נתונים

MCP Toolbox for Databases הוא שרת MCP בקוד פתוח למסדי נתונים. הוא תוכנן תוך התמקדות ברמת הארגון ובאיכות ייצור. הוא מאפשר לפתח כלים בקלות, במהירות ובאופן מאובטח יותר, על ידי טיפול בבעיות מורכבות כמו מאגר חיבורים, אימות ועוד.

Toolbox עוזר לכם ליצור כלים של AI גנרטיבי שמאפשרים לנציגי התמיכה לגשת לנתונים במסד הנתונים שלכם. ארגז הכלים מספק:

  • פיתוח פשוט יותר: שילוב כלים בסוכנות בפחות מ-10 שורות קוד, שימוש חוזר בכלים בין כמה סוכני או מסגרות ופיתוח גרסאות חדשות של כלים בקלות רבה יותר.
  • ביצועים משופרים: שיטות מומלצות כמו מאגר חיבורים, אימות ועוד.
  • אבטחה משופרת: אימות משולב לגישה מאובטחת יותר לנתונים
  • ניראות מקצה לקצה: מדדים ומעקב אחרי נתונים מובנים עם תמיכה מובנית ב-OpenTelemetry.
  • בעזרת Toolbox תוכלו לחבר בקלות מסדי נתונים לכל עוזרי AI שתומכים ב-MCP, גם אלה שנמצאים בסביבת הפיתוח המשולבת (IDE).

Toolbox נמצא בין מסגרת התזמור של האפליקציה לבין מסד הנתונים, ומספק מישור בקרה שמשמש לשינוי, להפצה או להפעלה של כלים. הכלי הזה מפשט את ניהול הכלים על ידי מתן מיקום מרכזי לאחסון ולעדכון של כלים, ומאפשר לכם לשתף כלים בין סוכנים ואפליקציות ולעדכן את הכלים האלה בלי שתצטרכו לפרוס מחדש את האפליקציה.

e316aed02b9861a6.png

לסיכום, בקצרה:

  1. MCP Toolbox זמין כקובץ אימג' בקונטיינר או כקובץ אימג' בינארי, או שאפשר ליצור אותו מקוד מקור.
  2. הוא חושף קבוצה של כלים שמגדירים באמצעות קובץ tools.yaml. אפשר לחשוב על הכלים כמקשרים למקורות הנתונים שלכם. אפשר לראות את מקורות הנתונים השונים שבהם יש תמיכה : AlloyDB,‏ BigQuery וכו'.
  3. מכיוון שערכת הכלים הזו תומכת עכשיו ב-MCP, יש לכם באופן אוטומטי נקודת קצה של שרת MCP שאפשר להשתמש בה לאחר מכן בסוכנים (IDEs), או שאפשר להשתמש בהם במהלך הפיתוח של אפליקציות הסוכנים באמצעות מסגרות שונות כמו Agent Development Kit‏ (ADK).

במאמר הזה נתמקד בתחומים הבאים:

f3f3cb495d8a288b.png

לסיכום, אנחנו הולכים ליצור הגדרה ב-MCP Toolbox for Databases שתדע להתחבר למערך הנתונים שלנו ב-BigQuery. לאחר מכן נשתמש בסביבת פיתוח משולבת (IDE) או בכל סביבת פיתוח משולבת אחרת של סוכן (ללקוחות MCP), שתתקשר לנקודת הקצה של MCP Toolbox ותאפשר לנו לשלוח שאילתות טבעיות כדי לשאול על מערך הנתונים שלנו. אפשר לחשוב עליו ככלי שאתם מגדירים, שיודע איך לדבר עם מערך הנתונים שלכם ב-BigQuery ומריץ כמה שאילתות.

5. מערך נתונים ב-BigQuery של הערות המוצר של Google Cloud

תוכנית מערכי הנתונים הציבוריים של Google Cloud היא תוכנית שמספקת מגוון של מערכי נתונים לאפליקציות שלכם. מערך נתונים כזה הוא מסד הנתונים של הערות המוצר של Google Cloud. מערך הנתונים הזה מכיל את אותו מידע שמופיע בדף האינטרנט הרשמי של הערות המוצר של Google Cloud, והוא זמין כמערך נתונים שאפשר לשלוח אליו שאילתות באופן ציבורי.

2104010c05c87d0d.png

כבדיקה, פשוט מאמתים את מערך הנתונים על ידי הרצת שאילתה פשוטה שמופיעה בהמשך:

SELECT
       product_name,description,published_at
     FROM
       `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
     WHERE
       DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
     GROUP BY product_name,description,published_at
     ORDER BY published_at DESC

הפקודה הזו מחזירה לי רשימה של רשומות ממערך הנתונים של הערות המוצר שפורסמו ב-7 הימים האחרונים.

מחליפים את הקוד הזה בקבוצת נתונים אחרת לבחירתכם, בשאילתות ובפרמטרים הרצויים. עכשיו כל מה שצריך לעשות הוא להגדיר את הכלי הזה כמקור נתונים וככלי ב-MCP Toolbox for Databases. עכשיו נראה איך עושים את זה.

6. התקנת MCP Toolbox למסדי נתונים

פותחים טרמינל במחשב המקומי ויוצרים תיקייה בשם mcp-toolbox.

mkdir mcp-toolbox

עוברים לתיקייה mcp-toolbox באמצעות הפקודה הבאה:

cd mcp-toolbox

מתקינים את הגרסה הבינארית של MCP Toolbox for Databases באמצעות הסקריפט שמופיע בהמשך. הפקודה הבאה מיועדת ל-Linux, אבל אם אתם משתמשים ב-Mac או ב-Windows, חשוב לוודא שאתם מורידים את הקובץ הבינארי הנכון. בודקים את דף הגרסאות של מערכת ההפעלה והארכיטקטורה ומורידים את הקובץ הבינארי הנכון.

export VERSION=0.6.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

עכשיו יש לנו את הגרסה הבינארית של ערכת הכלים, ומוכנה לשימוש. בשלב הבא מגדירים את ערכת הכלים עם מקורות הנתונים שלנו והגדרות אחרות.

7. הגדרת Toolbox של MCP למסדי נתונים

עכשיו צריך להגדיר את הכלים ואת מערך הנתונים ב-BigQuery בקובץ tools.yaml שנחוץ ל-MCP Toolbox for Database. הקובץ tools.yaml הוא הדרך העיקרית להגדרת Toolbox.

יוצרים קובץ בשם tools.yaml באותה תיקייה, כלומר mcp-toolbox, והתוכן שלו מוצג בהמשך.

אפשר להשתמש בעורך nano שזמין ב-Cloud Shell. הפקודה של nano היא: 'nano tools.yaml'.

חשוב לזכור להחליף את הערך YOUR_PROJECT_ID במזהה הפרויקט ב-Google Cloud.

sources:
 my-bq-source:
   kind: bigquery
   project: YOUR_PROJECT_ID

tools:
 search_release_notes_bq:
   kind: bigquery-sql
   source: my-bq-source
   statement: |
    SELECT
     product_name,description,published_at
    FROM
      `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
    WHERE
     DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
    GROUP BY product_name,description,published_at
    ORDER BY published_at DESC
   description: |
    Use this tool to get information on Google Cloud Release Notes.

toolsets:
 my_bq_toolset:
   - search_release_notes_bq

נסביר בקצרה מהו הקובץ:

  1. מקורות מייצגים את מקורות הנתונים השונים שכלי יכול לקיים איתם אינטראקציה. מקור מייצג מקור נתונים שכלי יכול ליצור איתו אינטראקציה. אפשר להגדיר את המקורות כמפה בקטע sources בקובץ tools.yaml. בדרך כלל, הגדרת מקור תכלול את כל המידע הנדרש כדי להתחבר למסד הנתונים ולבצע בו פעולות. במקרה שלנו, הגדרנו מקור BigQuery‏ my-bq-source וצריך לספק את מזהה הפרויקט ב-Google Cloud. מידע נוסף זמין במאמר העזרה בנושא מקורות.
  2. כלים מגדירים את הפעולות שסוכן יכול לבצע – כמו קריאה וכתיבה למקור. כלי מייצג פעולה שהסוכן יכול לבצע, כמו הפעלת משפט SQL. אפשר להגדיר את הכלים כמפה בקטע tools בקובץ tools.yaml. בדרך כלל, כלי מחייב מקור שבו הוא יפעל. במקרה שלנו, אנחנו מגדירים כלי אחד search_release_notes_bq. ההפניה הזו מתייחסת למקור ב-BigQuery‏ my-bq-source שהגדרנו בשלב הראשון. הוא מכיל גם את ההצהרה וההוראה שבהן ישתמשו לקוחות הסוכן של AI. מידע נוסף זמין במאמר העזרה בנושא כלים.
  3. לבסוף, יש לנו את ערכת הכלים, שמאפשרת לכם להגדיר קבוצות של כלים שתרצו לטעון יחד. אפשר להשתמש באפשרות הזו כדי להגדיר קבוצות שונות על סמך סוכן או אפליקציה. במקרה שלנו, יש לנו הגדרה של ערכת כלים שבה הגדרנו כרגע רק כלי קיים אחד search_release_notes_bq. אפשר ליצור כמה ערכות כלים, שכוללות שילוב של כלים שונים.

לכן, בשלב הזה הגדרנו רק כלי אחד שמקבל את הערות המוצר מ-7 הימים האחרונים בהתאם לשאילתה. אבל אפשר גם ליצור שילובים שונים עם פרמטרים.

פרטים נוספים על ההגדרות ( מקור, כלים) זמינים בהגדרת מקור הנתונים של BigQuery ב-MCP Toolbox for Databases.

8. בדיקת ארגז הכלים של MCP למסדי נתונים

הורדנו והגדרתנו את Toolbox באמצעות הקובץ tools.yaml בתיקייה mcp-toolbox. קודם נריץ אותו באופן מקומי.

מריצים את הפקודה הבאה:

$ ./toolbox --tools-file="tools.yaml" --port 7000

שרת MCP Toolbox פועל כברירת מחדל ביציאה 5000, אבל במקרה הזה ציננו שהוא יפעל ביציאה 7000.

אם הפעולה בוצעה בהצלחה, אמורה להופיע הפעלה של שרת עם פלט לדוגמה שדומה לזה שבהמשך:

2025-04-25T16:05:45.603871+05:30 INFO "Initialized 1 sources."
2025-04-25T16:05:45.603943+05:30 INFO "Initialized 0 authServices."
2025-04-25T16:05:45.604092+05:30 INFO "Initialized 1 tools."
2025-04-25T16:05:45.604105+05:30 INFO "Initialized 2 toolsets."
2025-04-25T16:05:45.604706+05:30 INFO "Server ready to serve!"

פשוט מפעילים את הדפדפן ונכנסים לכתובת ה-URL הבאה:

http://127.0.0.1:7000

הפלט אמור להיות:

2fdcdac326034d41.png

בכתובת ה-URL בדפדפן, מוסיפים את הטקסט הבא בסוף כתובת ה-URL:

http://127.0.0.1:7000/api/toolset

הפעולה הזו אמורה להציג את הכלים שמוגדרים כרגע. דוגמה לפלט:

53d9c9a3bb1c8494.png

שרת ה-MCP, בהתאם למסמכים, זמין עכשיו בכתובת ה-URL הבאה:

http://127.0.0.1:7000/mcp/sse

הפלט מוצג בהמשך:

event: endpoint
data: https://<some-url-pattern>/mcp?sessionId=bf6bfb66-36fe-48a4-8340-ac68008ee873

בקטע הבא נבדוק את שרת ה-MCP שלנו עם לקוחות MCP.

9. בדיקת שרת ה-MCP עם לקוחות MCP שונים

נבדוק את שרת ה-MCP החדש שלנו עם כמה לקוחות MCP.

MCP Inspector עם Toolbox

הכלי הראשון שבו צריך להשתמש הוא MCP Inspector with Toolbox. כדי לעשות זאת, צריך להתקין את npx. תופיע בקשה ב-Cloud Shell להתקנת החבילה. אפשר להתקין אותו.

צריך להריץ את הפקודה הבאה:

npx @modelcontextprotocol/inspector

הפקודה הזו תפעיל את השרת, והפלט אמור להיראות כך:

Starting MCP inspector...
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀

נכנסים לדף MCP Inspector כפי שצוין, והדבר הראשון שצריך לעשות הוא להגדיר את הלקוח הזה כך שידבר עם שרת ה-MCP.

a819e93705367076.png

בוחרים את סוג התחבורה כ-SSE ומזינים את URL כפי שציינו קודם, כלומר http://127.0.0.1:7000/mcp/sse. לוחצים על Connect. אם הכל יתבצע כמו שצריך, הסטטוס יופיע כמחובר, כפי שמוצג בהמשך:

e19278a9ea58dda1.png

בצד שמאל, לוחצים על List Tools כדי להציג את רשימת הכלים.

faacf3e6d7ac2ebe.png

לאחר מכן לוחצים על הכלי search_release_notes_bq. מכיוון שאין לנו פרמטרים להעביר, פשוט לוחצים על הלחצן Run tool. אמורה להופיע קריאה ל-Toolbox, שמתחבר למקור הנתונים של BigQuery ומאחזר את הנתונים, כפי שמוצג בהמשך:

3db3e057763ecbef.png

VS Code במצב Agent עם CoPilot

במסמכי התיעוד הרשמי מוסבר איך להתחבר ל-Toolbox למקורות נתונים שונים ולסביבות פיתוח משולבות (IDE) שונות. אפשר למצוא את המסמכים כאן.

בקטע הזה נסביר איך להגדיר שרתים של MCP ולהשתמש בהם ב-VS Code. לתשומת ליבכם: התכונה זמינה בגרסת Preview, והמסמכי העזרה הרשמיים מפורטים ומופיעים כאן.

נניח שפתיתם את VS Code, פותחים את Command Palette ומזינים את הפקודה הבאה:

4df742e8ef74b52.png

לאחר מכן בוחרים באפשרות HTTP sse כי יש לנו את כתובת ה-URL של SSE.

1423ab084bfa2b79.png

תתבקשו לספק את SSE endpoint, ואנחנו נספק את אותו ערך:

b155684784fb15b0.png

לאחר מכן, תתבצע בדיקה של כמה פרטים נוספים. בחרתי להוסיף אותו להגדרות המשתמש שלי, כך שייפתח הקובץ settings.json שבו אפשר לראות את ההגדרה:

901cd7c7d9850ea3.png

פשוט לוחצים על Start שמופיע למעלה, או על הפקודה Palette (לוח צבעים).

אפשר לראות שהסטטוס משתנה ל-Running.

b62eb21d1fd01cc1.png

עכשיו אפשר להפעיל את מצב הצ'אט של CoPilot, ואז במצב Agent, להקיש על #search_release_notes_bq כדי לציין שאנחנו רוצים להשתמש בכלי הזה, ואז להקליד טקסט של שאילתה לדוגמה, כפי שמוצג בהמשך:

b6bbc7ec044887ce.png

10. מזל טוב

סיימת להגדיר את Toolbox של MCP למסדי נתונים והגדרת מערך נתונים ב-BigQuery לצורך גישה בלקוחות MCP.

מסמכי עזר