שימוש ב-Spanner עם MCP Toolbox for Databases,‏ Gemini CLI וסוכנים אחרים

במאמר הזה מוסבר איך לחבר את מופע Spanner לכלי פיתוח שונים שתומכים בModel Context Protocol‏ (MCP).

מומלץ להשתמש בתוסף Spanner הייעודי ל-Gemini CLI. התוסף הזה מסתיר את הצורך להגדיר חיבור נפרד לשרת. אתם יכולים להגדיר את Gemini Code Assist כך שישתמש ב-Gemini CLI, וליהנות מיתרונות דומים בהגדרה בסביבת הפיתוח המשולבת (IDE). מידע נוסף זמין במאמר תוסף ל-Gemini CLI - Spanner.

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

שימוש בתוסף ל-Gemini CLI ב-Spanner

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

התוסף spanner כולל כלים לרישום טבלאות ולהרצת הצהרות SQL ו-SQL DQL.

כלים דוגמה להנחיה בשפה טבעית
list_tables אילו טבלאות יש במופע Spanner שלי?
execute_sql מכניסים נתונים לבדיקה לטבלת המוצרים.
execute_sql_dql אילו מוצרים בקטגוריית האלקטרוניקה נמכרים באמריקה?

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

  1. בדף project selector במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

  2. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

הגדרת מכונת Spanner

  1. מפעילים את Spanner API ב Google Cloud פרויקט.

  2. יוצרים או בוחרים מסד נתונים ומופע Spanner.

  3. מגדירים את התפקידים וההרשאות הנדרשים כדי לבצע את המשימה הזו. למשתמש שמפעיל את סוכני ה-LLM צריכות להיות ההרשאות הבאות ברמת מסד הנתונים:

    • קורא מסדי נתונים ב-Cloud Spanner‏ (roles/spanner.databaseReader) כדי להריץ שאילתות DQL ולרשום טבלאות.

    • משתמש במסד נתונים של Cloud Spanner‏ (roles/spanner.databaseUser) כדי להריץ שאילתות DML.

  4. מגדירים Application Default Credentials (ADC) לסביבה.

התקנת MCP Toolbox

  1. מורידים את הגרסה האחרונה של MCP Toolbox כקובץ בינארי. בוחרים את הקובץ הבינארי שמתאים למערכת ההפעלה ולארכיטקטורת ה-CPU. צריך להשתמש בגרסה 0.15.0 ואילך של MCP Toolbox:

    linux/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/version/linux/amd64/toolbox

    darwin/arm64

    curl -O https://storage.googleapis.com/genai-toolbox/version/darwin/arm64/toolbox

    darwin/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/version/darwin/amd64/toolbox

    windows/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/version/windows/amd64/toolbox

  2. הופכים את הקובץ הבינארי לקובץ הפעלה:

    chmod +x toolbox
    
  3. מאמתים את ההתקנה:

    ./toolbox --version
    

הגדרת כלי הסוכן

בקטע הזה מוסבר איך להגדיר כלי פיתוח שונים כדי להתחבר למופע Spanner. בוחרים את כלי הסוכן מבין האפשרויות הבאות:

Gemini CLI

  1. מתקינים את Gemini CLI.
  2. כדי להתקין את התוסף Spanner ל-Gemini CLI ממאגר GitHub, משתמשים בפקודה הבאה:
  3.   gemini extensions install https://github.com/gemini-cli-extensions/spanner
      
  4. מגדירים את משתני הסביבה הבאים כדי להתחבר למופע Spanner:
        export SPANNER_PROJECT="PROJECT_ID"
        export SPANNER_INSTANCE="INSTANCE_NAME"
        export SPANNER_DATABASE="DATABASE_NAME"
        export SPANNER_DIALECT="DIALECT_NAME"
        
    מחליפים את מה שכתוב בשדות הבאים:
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • INSTANCE_NAME: השם של מכונת Spanner.
    • DATABASE_NAME: השם של מסד הנתונים של Spanner.
    • DIALECT_NAME: הניב של Spanner SQL. מקבלים googlesql או postgresql. אם לא מוגדר ערך, ברירת המחדל היא googlesql.
  5. מפעילים את Gemini CLI במצב אינטראקטיבי:
        gemini
        
    ממשק ה-CLI טוען אוטומטית את התוסף Spanner ל-Gemini CLI ולכלים שלו, שבעזרתם אפשר ליצור אינטראקציה עם מסד הנתונים.

Gemini Code Assist

מומלץ מאוד להגדיר את Gemini Code Assist לשימוש ב-Gemini CLI, כי בגישה הזו לא צריך להגדיר שרת MCP באופן ידני. עם זאת, ההוראות להגדרת שרת MCP באופן ידני עדיין זמינות בקטע הבא:


1. מתקינים את התוסף Gemini Code Assist ב-VS Code.
2. מפעילים את מצב Agent ומעבירים את מודל הסוכן ל-Gemini.
‫3. בתיקיית השורש של הפרויקט, יוצרים תיקייה בשם .gemini ובתוכה קובץ settings.json.
4. מוסיפים לקובץ settings.json אחת מההגדרות הבאות, בהתאם לדיאלקט Spanner שבו אתם משתמשים.
‫5. מחליפים את המשתנים הבאים בערכים שלכם:
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • INSTANCE_NAME: השם של מכונת Spanner.
  • DATABASE_NAME: השם של מסד הנתונים של Spanner.
‫6. שומרים את הקובץ.‫

Spanner עם ניב השפה GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner עם ניב PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Claude Code


1. מתקינים את Claude Code.
2. יוצרים קובץ .mcp.json בתיקיית הבסיס של הפרויקט, אם הוא לא קיים.
‫3. מוסיפים אחת מההגדרות הבאות בהתאם לניב של Spanner, מחליפים את משתני הסביבה בערכים שלכם ושומרים את הקובץ:

‫Spanner עם ניב GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner עם ניב PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

‫Claude למחשב


1. פותחים את Claude למחשב ועוברים אל הגדרות.
2. בכרטיסייה Developer (מפתח), לוחצים על Edit Config (עריכת ההגדרות) כדי לפתוח את קובץ התצורה.
‫3. מוסיפים אחת מההגדרות הבאות בהתאם לניב של Spanner, מחליפים את משתני הסביבה בערכים שלכם ושומרים את הקובץ:

‫Spanner עם ניב GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner עם ניב PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

4. מפעילים מחדש את Claude לשולחן העבודה.
‫5. במסך הצ'אט החדש מוצג סמל פטיש (MCP) עם שרת ה-MCP החדש.

Cline


1. פותחים את התוסף Cline ב-VS Code ולוחצים על סמל MCP Servers.
2. מקישים על Configure MCP Servers (הגדרת שרתי MCP) כדי לפתוח את קובץ התצורה.
‫3. מוסיפים אחת מההגדרות הבאות בהתאם לניב של Spanner, מחליפים את משתני הסביבה בערכים שלכם ושומרים את הקובץ:

‫Spanner עם ניב GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner עם ניב PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

אחרי שהשרת מתחבר בהצלחה, מופיע סטטוס פעיל בצבע ירוק.

סמן


1. אם הספרייה .cursor לא קיימת, יוצרים אותה בתיקיית הבסיס של הפרויקט.
2. יוצרים את הקובץ .cursor/mcp.json אם הוא לא קיים ופותחים אותו.
‫3. מוסיפים אחת מההגדרות הבאות בהתאם לניב של Spanner, מחליפים את משתני הסביבה בערכים שלכם ושומרים את הקובץ:

‫Spanner עם ניב GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner עם ניב PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

4. פותחים את הסמן ועוברים אל הגדרות > הגדרות הסמן > MCP. כשמתבצע חיבור לשרת, מופיע סטטוס פעיל בצבע ירוק.

קוד Visual Studio ‏ (Copilot)


1. פותחים את VS Code ויוצרים את הספרייה .vscode בתיקיית הבסיס של הפרויקט, אם היא לא קיימת.
2. יוצרים את הקובץ .vscode/mcp.json אם הוא לא קיים, ופותחים אותו.
‫3. מוסיפים אחת מההגדרות הבאות בהתאם לניב של Spanner, מחליפים את משתני הסביבה בערכים שלכם ושומרים את הקובץ:

‫Spanner עם ניב GoogleSQL:

{
  "servers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
        "SPANNER_PROJECT": "PROJECT_ID",
        "SPANNER_INSTANCE": "INSTANCE_NAME",
        "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner עם ניב PostgreSQL:

{
  "servers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
        "SPANNER_PROJECT": "PROJECT_ID",
        "SPANNER_INSTANCE": "INSTANCE_NAME",
        "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

גלישת רוח


1. פותחים את Windsurf ועוברים אל Cascade assistant.
2. לוחצים על סמל ה-MCP ואז על Configure כדי לפתוח את קובץ התצורה.
‫3. מוסיפים אחת מההגדרות הבאות בהתאם לניב של Spanner, מחליפים את משתני הסביבה בערכים שלכם ושומרים את הקובץ:

‫Spanner עם ניב GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner עם ניב PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

איך מתחברים ל-Antigravity

אפשר לחבר את Spanner ל-Antigravity בדרכים הבאות:

  • שימוש ב-MCP Store
  • שימוש בהגדרה מותאמת אישית

MCP Store

הדרך המומלצת ביותר להתחבר ל-Antigravity היא באמצעות חנות ה-MCP המובנית.

  1. פותחים את Antigravity ואת חלונית הסוכן של הכלי לעריכה.
  2. לוחצים על סמל התפריט בחלק העליון של החלונית ובוחרים באפשרות MCP Servers (שרתי MCP).
  3. ברשימת השרתים הזמינים, מאתרים את Spanner ולוחצים על Install (התקנה).
  4. פועלים לפי ההוראות במסך כדי לתת ל-Antigravity הרשאה לגשת לפרויקט Google Cloud. כך Antigravity יכול לגשת למופע Spanner בפרויקט שלכם.

אחרי שמתקינים את שרת Spanner בחנות ה-MCP, המשאבים והכלים מהשרת זמינים בכלי העריכה.

הגדרות אישיות

כדי להתחבר לשרת MCP בהתאמה אישית, מבצעים את השלבים הבאים:

  1. פותחים את Antigravity ואת חלונית הסוכן של הכלי לעריכה.
  2. לוחצים על סמל התפריט בחלק העליון של החלונית ובוחרים באפשרות MCP Servers (שרתי MCP).
  3. לוחצים על Manage MCP Servers > View raw config (ניהול שרתי MCP > הצגת הגדרות גולמיות) כדי לפתוח את הקובץ mcp_config.json.
  4. מוסיפים את ההגדרה הבאה, מחליפים את משתני הסביבה בערכים שלכם ושומרים.
{
  "mcpServers": {
    "spanner": {
      "command": "npx",
      "args": ["-y","@toolbox-sdk/server","--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME",
          "SPANNER_DIALECT": "DIALECT_NAME"
      }
    }
  }
}

אחרי שמגדירים את שרת ה-MCP המותאם אישית, המשאבים והכלים משרת Spanner זמינים לעורך.

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • INSTANCE_NAME: השם של מכונת Spanner.
  • DATABASE_NAME: השם של מסד הנתונים של Spanner.
  • DIALECT_NAME: הניב של Spanner SQL. מקבלים googlesql או postgresql. אם לא מציינים ניב, ברירת המחדל היא googlesql.