שימוש ב-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 לסביבות פיתוח משולבות (IDE) ולכלי פיתוח אחרים שתומכים ב-MCP. ‫MCP Toolbox הוא שרת MCP בקוד פתוח שנועד לחבר סוכני AI לנתונים שלכם. הוא מטפל במשימות כמו אימות ואיגום חיבורים, ומאפשר לכם ליצור אינטראקציה עם הנתונים בשפה טבעית ישירות מסביבת הפיתוח המשולבת.

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

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

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

רשימה של כל המיומנויות הזמינות מופיעה במיומנויות Spanner ב-GitHub.

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

  1. בדף לבחירת הפרויקט במסוף 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 כקובץ בינארי. בוחרים את הקובץ הבינארי שמתאים למערכת ההפעלה ולארכיטקטורת המעבד. חובה להשתמש בגרסה 0.15.0 ואילך של MCP Toolbox:

    ‫linux/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/version/linux/amd64/toolbox

    darwin/arm64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/version/darwin/arm64/toolbox

    darwin/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/version/darwin/amd64/toolbox

    windows/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/version/windows/amd64/toolbox
  2. הופכים את קובץ ההפעלה הבינארי לקובץ הפעלה:

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

    ./toolbox --version
    

הגדרת לקוחות וחיבורים

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

Gemini CLI

  1. מתקינים את Gemini CLI.
  2. כדי להתקין את התוסף Spanner ל-Gemini CLI ממאגר GitHub, מריצים את הפקודה הבאה:
    gemini extensions install https://github.com/gemini-cli-extensions/spanner
  3. מגדירים את משתני הסביבה הבאים כדי להתחבר למופע 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: ניב ה-SQL של Spanner. אפשר להשתמש ב-googlesql או ב-postgresql. אם לא מוגדר ערך, ברירת המחדל היא googlesql.
  4. מפעילים את Gemini CLI במצב אינטראקטיבי:
    gemini

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

    ב-Gemini CLI, משתמשים בפקודה /extensions כדי לוודא שהתוסף מותקן.

Gemini Code Assist

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


1. מתקינים את התוסף Gemini Code Assist ב-VS Code.
‫2. מפעילים את מצב הסוכן ומחליפים את מודל הסוכן ל-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. מגדירים את משתני הסביבה כדי להתחבר למופע 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: ניב ה-SQL של Spanner. אפשר להשתמש ב-googlesql או ב-postgresql. אם לא מוגדר ערך, ברירת המחדל היא googlesql.
  3. מפעילים את הסוכן:
    claude
  4. מתקינים את הפלאגין:
    /plugin install spanner@claude-plugins-official

Codex

  1. מתקינים את Data Cloud Plugins Marketplace:
    codex plugin marketplace add GoogleCloudPlatform/data-cloud-plugins
  2. מתקינים את הפלאגין Spanner:
    codex plugin install spanner@data-cloud-plugins
  3. מגדירים את משתני הסביבה כדי להתחבר למופע 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: ניב ה-SQL של Spanner. אפשר להשתמש ב-googlesql או ב-postgresql. אם לא מוגדר ערך, ברירת המחדל היא googlesql.
  4. זה שינוי אופציונלי. עדכון ה-Marketplace:
    codex plugin marketplace upgrade data-cloud-plugins

‫Claude למחשב


1. פותחים את Claude for Desktop ועוברים אל Settings (הגדרות).
‫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 החדש.

קלינה


1. פותחים את התוסף Cline ב-VS Code ולוחצים על סמל השרתים של MCP.
‫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. פותחים את Cursor ועוברים אל Settings > Cursor Settings > MCP (הגדרות > הגדרות Cursor > MCP). כשמתבצע חיבור לשרת, מופיע סטטוס פעיל בצבע ירוק.

Visual Studio Code (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.

קישור ל-Spanner באמצעות Data Agent Kit

ערכת הכלים של Google Cloud Data Agent מאפשרת לכם לנהל את מסד הנתונים של Spanner ולהריץ שאילתות על הנתונים של Spanner בסביבת הפיתוח המשולבת (IDE) או בסוכן הקידוד המועדפים עליכם. התוסף Data Agent Kit פועל עם Visual Studio Code ועם סביבות פיתוח משולבות (IDE) שמבוססות על VS Code. הפלאגין Data Agent Kit פועל עם מספר סוכני תכנות פופולריים, כולל Claude Code ו-Codex CLI.

הערכה Data Agent Kit מספקת יכולות של גילוי נתונים וחיפוש נתונים, ומאפשרת לשאול שאלות לגבי הנתונים ב-Spanner בשפה טבעית. הוא עוזר למנוע מעבר הקשר בין כלי שורת הפקודה של Spanner לבין סביבת הפיתוח שלכם.

מידע נוסף זמין במאמר סקירה כללית של Data Agent Kit.