1. 簡介
如要讓 AI 代理 (例如 Antigravity CLI) 安全、有條理地存取資料庫,您可以將 AlloyDB Omni 與 MCP Toolbox for Databases 整合。
AlloyDB Omni 是 AlloyDB for PostgreSQL 的可下載容器化版本,可在任何位置執行 (包括地端部署、開發人員工作站、邊緣或雲端),同時提供企業級 PostgreSQL 效能和相容性。
MCP Toolbox for Databases 是 Google 的開放原始碼伺服器,可實作 Model Context Protocol (MCP),讓您更輕鬆、快速、安全地建構與資料庫互動的生成式 AI 工具。這項服務介於代理的自動化調度管理架構和資料庫之間,提供下列功能:
- 簡化開發作業:預先建構或自訂的資料庫工具,只需進行最少設定即可連結至代理,並可在多個代理或框架中重複使用。
- 效能更佳:內建連線集區和生命週期管理等最佳做法。
- 強化安全性:集中管理憑證和驗證,代理不需原始資料庫憑證。
- 端對端觀測能力:立即可用的指標和追蹤功能,內建 OpenTelemetry 支援。
完成本程式碼實驗室後,您將擁有一個執行中的 AlloyDB Omni 容器,其中填入範例電子商務資料、一個 MCP Toolbox 伺服器,其中公開 31 個預先建構的 AlloyDB Omni 管理和查詢工具,以及一個設定好的 Antigravity CLI (agy) 代理,能使用自然語言提示詞檢查結構定義、執行 SQL 查詢、分析查詢計畫,以及診斷資料庫健康狀態。

必要條件
- 可透過 Google Cloud 控制台或 Linux 工作站,存取 Google Cloud 專案和 Cloud Shell。
- 已安裝並執行 Docker。
- 已安裝
psqlPostgreSQL 用戶端。 - 已安裝
curl和jq,可設定 Antigravity CLI 和 MCP Toolbox。
課程內容
- 如何使用 Docker 部署及執行 AlloyDB Omni 資料庫伺服器容器。
- 如何在 AlloyDB Omni 建立範例資料表、資料和索引。
- 如何下載、設定及啟動 MCP Toolbox for Databases,並使用預先建構的
alloydb-omni工具集。 - 如何將 Antigravity CLI 設為 MCP 用戶端,連線至 MCP Toolbox 伺服器。
- 如何在 Antigravity CLI 中使用自然語言提示詞,檢查資料庫健康狀態、探索結構定義、執行 SQL 查詢、分析查詢計畫,以及執行維護診斷。
軟硬體需求
- 具備 Docker、
psql、curl和jq的運作中終端機環境。您可以使用 Google Cloud Shell,該環境已預先安裝這些工具。
2. 設定和需求
專案設定
建立 Google Cloud 專案
- 在 Google Cloud 控制台的專案選取器頁面,選取或建立 Google Cloud 專案。
- 確認 Google Cloud 專案已啟用計費功能。瞭解如何確認專案是否已啟用計費功能。
啟動 Cloud Shell
雖然您可以在筆電本機執行 AlloyDB Omni 和 MCP Toolbox,但在本程式碼實驗室中,您可以使用 Google Cloud Shell,這是在雲端執行的指令列環境,已預先安裝 Docker、psql、curl 和 jq。

- 開啟 Google Cloud 控制台,然後點選右上角工具列中的「啟用 Cloud Shell」。您也可以透過下列任一方式開啟 Cloud Shell:
- 如果使用 Google Cloud 控制台,請依序按下
G和S。 - 直接開啟 Cloud Shell。
- 如果使用 Google Cloud 控制台,請依序按下
佈建並連至環境預計只需要幾分鐘,這項作業完成後,您會看到類似下方的內容:

3. 準備及執行 AlloyDB Omni 資料庫伺服器
在本節中,您會提取並執行 AlloyDB Omni Docker 容器,並填入範例電子商務資料,以便測試。
啟動 AlloyDB Omni 資料庫伺服器
- 定義 AlloyDB Omni 主機、通訊埠、資料庫、使用者和生成密碼的環境變數:
export ALLOYDB_OMNI_HOST="127.0.0.1" export ALLOYDB_OMNI_PORT="5432" export ALLOYDB_OMNI_DATABASE="postgres" export ALLOYDB_OMNI_USER="postgres" export ALLOYDB_OMNI_PASSWORD="$(openssl rand -hex 8)@1aA" echo "Your generated AlloyDB Omni postgres password is: $ALLOYDB_OMNI_PASSWORD" - 使用 Docker,以分離模式啟動 AlloyDB Omni 容器:
docker run --name alloydbomni \ -e POSTGRES_PASSWORD=$ALLOYDB_OMNI_PASSWORD \ -p $ALLOYDB_OMNI_PORT:$ALLOYDB_OMNI_PORT \ -d google/alloydbomni:latest - 確認容器正在運作,且您可以使用
psql連線至 AlloyDB Omni 伺服器:docker ps -a until docker exec alloydbomni pg_isready -U "$ALLOYDB_OMNI_USER" -d "$ALLOYDB_OMNI_DATABASE"; do sleep 2; done PGPASSWORD=$ALLOYDB_OMNI_PASSWORD psql -h $ALLOYDB_OMNI_HOST -p $ALLOYDB_OMNI_PORT -U $ALLOYDB_OMNI_USER -d $ALLOYDB_OMNI_DATABASE -c "SELECT 1;"
建立測試用的範例資料
建立 categories、products、customers 和 orders 範例資料表、插入測試記錄,並建立索引,以便透過 MCP Toolbox 測試結構定義檢查、SQL 查詢和查詢執行計畫:
PGPASSWORD="$ALLOYDB_OMNI_PASSWORD" psql -h $ALLOYDB_OMNI_HOST -p $ALLOYDB_OMNI_PORT -U $ALLOYDB_OMNI_USER -d $ALLOYDB_OMNI_DATABASE << 'EOF'
CREATE TABLE IF NOT EXISTS categories (
category_id SERIAL PRIMARY KEY,
name VARCHAR(50) UNIQUE NOT NULL
);
CREATE TABLE IF NOT EXISTS products (
product_id SERIAL PRIMARY KEY,
product_name VARCHAR(100) UNIQUE NOT NULL,
category VARCHAR(50) NOT NULL,
price NUMERIC(10, 2) NOT NULL,
stock INT DEFAULT 0
);
CREATE TABLE IF NOT EXISTS customers (
customer_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS orders (
order_id SERIAL PRIMARY KEY,
customer_id INT REFERENCES customers(customer_id),
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
total_amount NUMERIC(10, 2)
);
-- Insert sample rows
INSERT INTO categories (name) VALUES
('Smartphones'),
('Laptops'),
('Audio')
ON CONFLICT DO NOTHING;
INSERT INTO products (product_name, category, price, stock) VALUES
('Pixel 9 Pro', 'Smartphones', 999.00, 50),
('MacBook Pro M3', 'Laptops', 1999.00, 20),
('ThinkPad X1 Carbon', 'Laptops', 1450.00, 35),
('Dell XPS 15', 'Laptops', 1700.00, 15),
('Bose QuietComfort', 'Audio', 349.00, 100)
ON CONFLICT DO NOTHING;
INSERT INTO customers (first_name, last_name, email) VALUES
('Ada', 'Lovelace', 'ada@example.com'),
('Alan', 'Turing', 'alan@example.com'),
('Grace', 'Hopper', 'grace@example.com')
ON CONFLICT DO NOTHING;
INSERT INTO orders (order_id, customer_id, total_amount, order_date) VALUES
(1, 1, 999.00, pg_catalog.now() - INTERVAL '7 months'),
(2, 2, 349.00, pg_catalog.now() - INTERVAL '1 month')
ON CONFLICT DO NOTHING;
CREATE INDEX IF NOT EXISTS idx_products_category ON products(category);
CREATE INDEX IF NOT EXISTS idx_orders_customer ON orders(customer_id);
EOF
4. 啟動 MCP Toolbox 伺服器
在本節中,您將下載 MCP Toolbox 二進位檔、設定預先建構的 AlloyDB Omni 工具定義,並啟動 MCP Toolbox 伺服器。
下載 MCP Toolbox
- 為 MCP Toolbox 建立目錄,並下載
toolbox二進位檔:mkdir -p ~/mcp/tools cd ~/mcp curl -L -O https://storage.googleapis.com/genai-toolbox/v0.31.0/linux/amd64/toolbox chmod +x toolbox ./toolbox --version
設定及啟動 MCP Toolbox 伺服器
- 下載預先建構的
alloydb-omni.yaml工具設定,並在通訊埠5000啟動 MCP Toolbox 伺服器 (使用先前匯出的ALLOYDB_OMNI_*環境變數):curl -sL --create-dirs -o "tools/alloydb-omni.yaml" "https://raw.githubusercontent.com/googleapis/mcp-toolbox/v0.31.0/internal/prebuiltconfigs/tools/alloydb-omni.yaml" # Remove the trailing group definition block and YAML document separator for --config-folder compatibility sed -i '/^kind: group/,$d' tools/alloydb-omni.yaml sed -i '${/---/d;}' tools/alloydb-omni.yaml ./toolbox --config-folder ./tools/ --port 5000 --address 127.0.0.1alloydb-omni.yaml設定提供 31 項預先建構的工具,包括本程式碼實驗室示範的重要工具:execute_sqlget_query_plandatabase_overviewlist_active_querieslist_tables、list_indexes、list_views、list_triggerslist_top_bloated_tables、list_locks、list_autovacuum_configurations、list_invalid_indexes
alloydb-omni.yaml。 - 在新的終端機分頁中,確認 MCP Toolbox 伺服器正在執行,並透過 JSON-RPC
/mcp端點公開工具:curl -X POST http://localhost:5000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'
5. 設定 MCP 用戶端 (Antigravity CLI)
在本節中,您將安裝 Antigravity CLI (agy),並設定連線至 MCP Toolbox 伺服器。
安裝 Antigravity CLI
- 如果尚未安裝,請下載並執行 Antigravity CLI (
agy) 安裝程式,然後驗證版本:curl -fsSL https://antigravity.google/cli/install.sh -o /tmp/install.sh bash /tmp/install.sh rm -f /tmp/install.sh # If prompted by the installer, add ~/.local/bin to your PATH: export PATH="$HOME/.local/bin:$PATH" # Verify the installation agy --version
設定 Antigravity CLI
將 MCP Toolbox 伺服器項目新增至用戶端的 MCP 設定檔 (例如 Antigravity CLI 的 ~/.gemini/config/mcp_config.json、.cursor/mcp.json、.vscode/mcp.json、claude_desktop_config.json 或 Claude Code 的 .mcp.json)。
- 如要將 Antigravity CLI 連至在通訊埠
5000執行的 MCP Toolbox HTTP 伺服器,請執行agy mcp add,並使用agy mcp list驗證項目: 這會將export MCP_SERVER="127.0.0.1" export MCP_PORT="5000" agy mcp add alloydb-omni "http://${MCP_SERVER}:${MCP_PORT}/mcp" agy mcp listalloydb-omni伺服器設定寫入~/.gemini/config/mcp_config.json:{ "mcpServers": { "alloydb-omni": { "url": "http://127.0.0.1:5000/mcp" } } }
驗證設定
- 啟動 Antigravity CLI:
如果這是您第一次啟動agyagy,請按照畫面上的指示登入 (使用 Google OAuth 或 Google Cloud 雲端專案),並在系統詢問是否信任目前目錄時,選取「Yes, I trust this folder」。 - 在 Antigravity CLI 提示中輸入
/mcp,開啟「MCP 伺服器」面板,並確認alloydb-omni已連線: 輸出內容大致如下:/mcpMCP Servers Configured (~/.gemini/config/mcp_config.json) > ✓ alloydb-omni Tools: database_overview, execute_sql, get_column_cardinality, get_query_plan, list_active_queries, +26 more Keyboard: ↑/↓ Navigate enter Actions
- 按下
Esc鍵關閉「MCP 伺服器」面板,返回 Antigravity CLI 提示。
6. 使用 AlloyDB Omni 查詢進行測試
Antigravity CLI 已透過 MCP Toolbox 連結至 AlloyDB Omni 執行個體,現在您可以使用自然語言提示詞與資料庫互動。
執行資料庫總覽查詢
- 在 Antigravity CLI 提示詞中,要求提供目前資料庫的總覽:
系統提示是否允許呼叫工具時,請選取「是」(或「是,一律允許」,即可在這個對話中一律允許)。輸出結果會與下列內容相似:Give me an overview of the current database.> Give me an overview of the current database. ● alloydb-omni/database_overview(Database overview check) (ctrl+o to expand) Here is an overview of the current AlloyDB Omni database instance: ### Database Overview • Instance / Engine: PostgreSQL 17.9 (AlloyDB Omni) • Role: Primary (is_replica: false) • Uptime: ~7 hours, 57 minutes • Connected Database: postgres • Connected User: postgres • Connections: 11 current / 100 max (1 active, 11% used) ### Databases in Instance • postgres • alloydbadmin (~15.74 MB) • alloydbmetadata (~14.82 MB)
依類別測試範例
請使用下列自然語言要求,向 Antigravity CLI 輸入提示。代理會自動將每項要求對應至 AlloyDB Omni MCP 工具組中的相應工具:
1. 資料庫總覽和健康狀態
測試目標 | 自然語言提示詞 | 叫用工具 |
系統檢查 |
|
|
有效連線數 |
|
|
已安裝的擴充功能 |
|
|
可用的擴充功能 |
|
|
2. 結構定義和目錄探索
測試目標 | 自然語言提示詞 | 叫用工具 |
列出資料表 |
|
|
檢查索引 |
|
|
探索檢視畫面 |
|
|
檢查資料表觸發條件 |
|
|
3. 資料查詢和篩選 (execute_sql)
測試目標 | 自然語言提示詞 | 叫用工具 |
匯總查詢 |
|
|
JOIN 查詢 |
|
|
不相符的記錄 |
|
|
4. 查詢效能和說明計畫 (get_query_plan)
測試目標 | 自然語言提示詞 | 叫用工具 |
說明計畫 |
|
|
索引驗證 |
|
|
5. 資料庫維護和診斷
測試目標 | 自然語言提示詞 | 叫用工具 |
資料表膨脹 |
|
|
鎖定爭用 |
|
|
Autovacuum 設定 |
|
|
無效索引 |
|
|
7. 清除
完成程式碼實驗室後,請清除本機容器和您啟動的程序。
- 輸入
/quit(或連按兩次Ctrl+D),即可退出 Antigravity CLI。 - 切換至執行 MCP Toolbox 伺服器的終端機分頁,然後按下
Ctrl+C停止伺服器。 - 停止並移除 AlloyDB Omni Docker 容器:
docker stop alloydbomni docker rm alloydbomni
8. 恭喜
恭喜您完成程式碼實驗室!您已成功在容器中部署 AlloyDB Omni、使用預先建構的 AlloyDB Omni 工具組設定 MCP Toolbox for Databases,並與 Antigravity CLI 整合,以便使用自然語言查詢及管理資料庫。
涵蓋內容
- 如何使用 Docker 部署及驗證 AlloyDB Omni 容器。
- 如何填入範例資料表和索引,以便測試 Agentic Workflows。
- 如何使用預先建構的
alloydb-omni工具設定,設定及執行 MCP Toolbox for Databases。 - 如何將 Antigravity CLI 連結至 MCP Toolbox,並執行自然語言提示詞,探索結構定義、SQL 查詢、分析查詢計畫,以及診斷資料庫。
詳情請參閱下列資源: