本文說明如何將 Spanner 執行個體連線至支援模型上下文協定 (MCP) 的 IDE。MCP 是一種開放通訊協定,可將大型語言模型 (LLM) 連線至 Spanner 等資料來源。連線後,LLM 代理程式就能查詢及與 Spanner 執行個體互動。
本文說明如何連線至下列 IDE:
- Claude Code
- Claude 電腦版
- Cline (VS Code 擴充功能)
- Cursor
- Visual Studio Code (Copilot)
- Windsurf (Codium)
- Gemini CLI
- Gemini Code Assist
事前準備
在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。
設定 Spanner 執行個體
設定完成這項工作所需的角色和權限。如要叫用 LLM 代理程式,使用者必須具備 Spanner 資料庫使用者角色 (
roles/spanner.databaseUser
) 或同等的身分與存取權管理權限,才能連線至執行個體。您必須具備資料庫層級的這項角色。為環境設定應用程式預設憑證 (ADC)。
安裝 MCP Toolbox
以二進位檔形式下載最新版 MCP Toolbox。選取與作業系統 (OS) 和 CPU 架構對應的二進位檔。您必須使用 MCP Toolbox 0.7.0 以上版本:
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
將二進位檔設為可執行檔:
chmod +x toolbox
驗證安裝:
./toolbox --version
設定 MCP IDE
Claude Code
1. 安裝 Claude Code。
2. 如果專案根目錄中沒有
.mcp.json
檔案,請建立該檔案。3. 根據 Spanner 方言新增下列其中一個設定,將環境變數替換為您的值,然後儲存檔案:
使用 GoogleSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
採用 PostgreSQL 方言的 Spanner:
{ "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. 在「開發人員」分頁中,按一下「編輯設定」開啟設定檔。
3. 根據 Spanner 方言新增下列其中一個設定,將環境變數替換為您的值,然後儲存檔案:
使用 GoogleSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
採用 PostgreSQL 方言的 Spanner:
{ "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. 在 VS Code 中開啟 Cline 擴充功能,然後按一下「MCP Servers」圖示。
2. 輕觸「設定 MCP 伺服器」開啟設定檔。
3. 根據 Spanner 方言新增下列其中一個設定,將環境變數替換為您的值,然後儲存檔案:
使用 GoogleSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
採用 PostgreSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner-postgres","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
伺服器連線成功後,會顯示綠色的「有效」狀態。
Cursor
1. 如果專案根目錄中沒有
.cursor
目錄,請建立該目錄。2. 如果
.cursor/mcp.json
檔案不存在,請建立並開啟該檔案。3. 根據 Spanner 方言新增下列其中一個設定,將環境變數替換為您的值,然後儲存檔案:
使用 GoogleSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
採用 PostgreSQL 方言的 Spanner:
{ "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 Code (Copilot)
1. 開啟 VS Code,並在專案根目錄中建立
.vscode
目錄 (如果不存在)。2. 如果
.vscode/mcp.json
檔案不存在,請建立並開啟該檔案。3. 根據 Spanner 方言新增下列其中一個設定,將環境變數替換為您的值,然後儲存檔案:
使用 GoogleSQL 方言的 Spanner:
{ "mcp": { "servers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } } }
採用 PostgreSQL 方言的 Spanner:
{ "mcp": { "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 助理。
2. 按一下 MCP 圖示,然後點選「設定」開啟設定檔。
3. 根據 Spanner 方言新增下列其中一個設定,將環境變數替換為您的值,然後儲存檔案:
使用 GoogleSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
採用 PostgreSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner-postgres","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
Gemini CLI
1. 安裝 Gemini CLI。
2. 在專案根目錄中,建立名為
.gemini
的資料夾,並在其中建立 settings.json
檔案。3. 根據
settings.json
檔案中的 Spanner 方言,新增下列其中一種設定。4. 將下列變數替換為您的值:
PROJECT_ID
:您的 Google Cloud 專案 ID。INSTANCE_NAME
:Spanner 執行個體名稱。DATABASE_NAME
:您的 Spanner 資料庫名稱。
使用 GoogleSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
採用 PostgreSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner-postgres","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
Gemini Code Assist
1. 在 VS Code 中安裝 Gemini Code Assist 擴充功能。
2. 啟用代理模式,並將代理模型切換為 Gemini。
3. 在專案根目錄中,建立名為
.gemini
的資料夾,並在其中建立 settings.json
檔案。4. 根據
settings.json
檔案中的 Spanner 方言,新增下列其中一種設定。5. 將下列變數替換為您的值:
PROJECT_ID
:您的 Google Cloud 專案 ID。INSTANCE_NAME
:Spanner 執行個體名稱。DATABASE_NAME
:您的 Spanner 資料庫名稱。
使用 GoogleSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
採用 PostgreSQL 方言的 Spanner:
{ "mcpServers": { "spanner": { "command": "./PATH/TO/toolbox", "args": ["--prebuilt","spanner-postgres","--stdio"], "env": { "SPANNER_PROJECT": "PROJECT_ID", "SPANNER_INSTANCE": "INSTANCE_NAME", "SPANNER_DATABASE": "DATABASE_NAME" } } } }
與 Spanner 執行個體互動
您的 IDE 現在已透過 MCP 連線至 Spanner。現在,LLM 代理程式可以列出資料表、建立資料表,或定義及執行其他 SQL 陳述式。
LLM 可使用下列工具:
- list_tables:列出資料表和說明
- execute_sql:執行任何 SQL 陳述式
- execute_sql_dql:執行 DQL SQL 陳述式