1. บทนำ
หากต้องการให้ AI Agent เช่น Antigravity CLI เข้าถึงฐานข้อมูลได้อย่างปลอดภัยและเป็นระบบ คุณสามารถผสานรวม AlloyDB Omni กับ MCP Toolbox สำหรับฐานข้อมูลได้
AlloyDB Omni เป็น AlloyDB สำหรับ PostgreSQL รุ่นที่ดาวน์โหลดได้และอยู่ในรูปแบบคอนเทนเนอร์ ซึ่งออกแบบมาให้ทำงานได้ทุกที่ ไม่ว่าจะเป็นในองค์กร, บนเวิร์กสเตชันของนักพัฒนาซอฟต์แวร์, ที่ Edge หรือในระบบคลาวด์ พร้อมทั้งมอบประสิทธิภาพและความเข้ากันได้กับ PostgreSQL ระดับองค์กร
MCP Toolbox สำหรับฐานข้อมูลเป็นเซิร์ฟเวอร์โอเพนซอร์สจาก Google ที่ใช้ Model Context Protocol (MCP) เพื่อช่วยให้สร้างเครื่องมือ Generative AI ที่โต้ตอบกับฐานข้อมูลได้ง่ายขึ้น เร็วขึ้น และปลอดภัยยิ่งขึ้น โดยจะอยู่ระหว่างเฟรมเวิร์กการจัดการของ Agent กับฐานข้อมูล และมีความสามารถต่อไปนี้
- การพัฒนาที่ง่ายขึ้น: เครื่องมือฐานข้อมูลที่สร้างไว้ล่วงหน้าหรือที่กำหนดเองซึ่งเชื่อมต่อกับ Agent โดยมีการกำหนดค่าน้อยที่สุด และสามารถนำกลับมาใช้ซ้ำใน Agent หรือเฟรมเวิร์กหลายรายการได้
- ประสิทธิภาพที่ดีขึ้น: แนวทางปฏิบัติแนะนำในตัว เช่น การรวมการเชื่อมต่อและการจัดการวงจร
- ความปลอดภัยที่เพิ่มขึ้น: การจัดการข้อมูลเข้าสู่ระบบและการตรวจสอบสิทธิ์แบบรวมศูนย์ เพื่อให้ Agent ไม่จำเป็นต้องใช้ข้อมูลเข้าสู่ระบบฐานข้อมูลดิบ
- ความสามารถในการสังเกตแบบครบวงจร: เมตริกและการติดตามที่พร้อมใช้งานทันทีพร้อมการรองรับ OpenTelemetry ในตัว
เมื่อจบ Codelab นี้ คุณจะมีคอนเทนเนอร์ AlloyDB Omni ที่ทำงานอยู่ซึ่งมีข้อมูลอีคอมเมิร์ซตัวอย่าง, เซิร์ฟเวอร์ MCP Toolbox ที่แสดงเครื่องมือ Query การดูแลระบบและการค้นหา AlloyDB Omni ที่สร้างไว้ล่วงหน้า 31 รายการ และตัวแทน Antigravity CLI (agy) ที่กำหนดค่าไว้ซึ่งสามารถตรวจสอบสคีมา, เรียกใช้การค้นหา SQL, วิเคราะห์แผนการค้นหา และวินิจฉัยประสิทธิภาพของฐานข้อมูลโดยใช้พรอมต์ภาษาธรรมชาติ

ข้อกำหนดเบื้องต้น
- สิทธิ์เข้าถึงโปรเจ็กต์ Google Cloud และ Cloud Shell จากคอนโซล Google Cloud หรือเวิร์กสเตชัน Linux
- ติดตั้งและเรียกใช้ Docker แล้ว
- ติดตั้งไคลเอ็นต์ PostgreSQL
psqlแล้ว - ติดตั้ง
curlและjqเพื่อตั้งค่า Antigravity CLI และ MCP Toolbox
สิ่งที่คุณจะได้เรียนรู้
- วิธีติดตั้งใช้งานและเรียกใช้คอนเทนเนอร์เซิร์ฟเวอร์ฐานข้อมูล AlloyDB Omni โดยใช้ Docker
- วิธีสร้างตาราง ข้อมูล และดัชนีตัวอย่างใน AlloyDB Omni
- วิธีดาวน์โหลด กำหนดค่า และเริ่มต้น MCP Toolbox สำหรับฐานข้อมูลด้วยชุดเครื่องมือ
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 ในเครื่องบนแล็ปท็อปได้ แต่ใน Codelab นี้ คุณสามารถใช้ 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" - เริ่มคอนเทนเนอร์ AlloyDB Omni ในโหมดแยกโดยใช้ Docker ดังนี้
docker run --name alloydbomni \ -e POSTGRES_PASSWORD=$ALLOYDB_OMNI_PASSWORD \ -p $ALLOYDB_OMNI_PORT:$ALLOYDB_OMNI_PORT \ -d google/alloydbomni:latest - ตรวจสอบว่าคอนเทนเนอร์ทำงานอยู่และคุณเชื่อมต่อกับเซิร์ฟเวอร์ AlloyDB Omni ได้โดยใช้
psql: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 ตัวอย่าง แทรกระเบียนทดสอบ และสร้างดัชนีเพื่อให้คุณทดสอบการตรวจสอบสคีมา, การค้นหา SQL และแผนการดำเนินการค้นหาผ่าน MCP Toolbox ได้โดยทำดังนี้
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
- สร้างไดเรกทอรีสำหรับ 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ที่สร้างไว้ล่วงหน้า แล้วเริ่มเซิร์ฟเวอร์ MCP Toolbox บนพอร์ต5000(โดยใช้ตัวแปรสภาพแวดล้อม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 รายการ รวมถึงเครื่องมือสำคัญที่สาธิตใน Codelab นี้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ใน GitHub - ในแท็บเทอร์มินัลใหม่ ให้ตรวจสอบว่าเซิร์ฟเวอร์ MCP Toolbox ทำงานอยู่และแสดงเครื่องมือของคุณผ่านปลายทาง JSON-RPC
/mcpcurl -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 ของไคลเอ็นต์ (เช่น ~/.gemini/config/mcp_config.json สำหรับ Antigravity CLI, .cursor/mcp.json, .vscode/mcp.json, claude_desktop_config.json หรือ .mcp.json สำหรับ Claude Code)
- หากต้องการเชื่อมต่อ Antigravity CLI กับเซิร์ฟเวอร์ HTTP ของ MCP Toolbox ที่ทำงานอยู่บนพอร์ต
5000ให้เรียกใช้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) แล้วเลือกใช่ ฉันเชื่อถือโฟลเดอร์นี้เมื่อระบบถามว่าจะเชื่อถือไดเรกทอรีปัจจุบันหรือไม่ - ในพรอมต์ 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 เชื่อมต่อกับอินสแตนซ์ AlloyDB Omni ผ่าน MCP Toolbox แล้ว คุณจะโต้ตอบกับฐานข้อมูลได้โดยใช้พรอมต์ภาษาธรรมชาติ
เรียกใช้การค้นหาภาพรวมฐานข้อมูล
- ที่พรอมต์ 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 ด้วยคำขอภาษาธรรมชาติที่ระบุไว้ด้านล่าง Agent จะแมปคำขอแต่ละรายการกับเครื่องมือที่เกี่ยวข้องในชุดเครื่องมือ AlloyDB Omni MCP โดยอัตโนมัติ ดังนี้
1. ภาพรวมและประสิทธิภาพของฐานข้อมูล
เป้าหมายการทดสอบ | พรอมต์ภาษาธรรมชาติ | มีการเรียกใช้เครื่องมือ |
การตรวจสอบระบบ |
|
|
การเชื่อมต่อที่ใช้งานอยู่ |
|
|
ส่วนขยายที่ติดตั้ง |
|
|
ส่วนขยายที่พร้อมใช้งาน |
|
|
2. การสำรวจสคีมาและแคตตาล็อก
เป้าหมายการทดสอบ | พรอมต์ภาษาธรรมชาติ | มีการเรียกใช้เครื่องมือ |
แสดงตาราง |
|
|
ตรวจสอบดัชนี |
|
|
สำรวจมุมมอง |
|
|
ตรวจสอบทริกเกอร์ของตาราง |
|
|
3. การค้นหาและการกรองข้อมูล (execute_sql)
เป้าหมายการทดสอบ | พรอมต์ภาษาธรรมชาติ | มีการเรียกใช้เครื่องมือ |
การค้นหาแบบรวม |
|
|
การค้นหาการรวม |
|
|
ระเบียนที่ไม่ตรงกัน |
|
|
4. ประสิทธิภาพการค้นหาและแผนการอธิบาย (get_query_plan)
เป้าหมายการทดสอบ | พรอมต์ภาษาธรรมชาติ | มีการเรียกใช้เครื่องมือ |
อธิบายแผน |
|
|
การยืนยันดัชนี |
|
|
5. การบำรุงรักษาและการวินิจฉัยฐานข้อมูล
เป้าหมายการทดสอบ | พรอมต์ภาษาธรรมชาติ | มีการเรียกใช้เครื่องมือ |
Table bloat |
|
|
การช่วงชิงล็อก |
|
|
การตั้งค่า Autovacuum |
|
|
ดัชนีไม่ถูกต้อง |
|
|
7. ล้างข้อมูล
หลังจากทำ Codelab เสร็จแล้ว ให้ล้างคอนเทนเนอร์และกระบวนการในเครื่องที่คุณเริ่มไว้
- ออกจาก Antigravity CLI โดยพิมพ์
/quit(หรือกดCtrl+D2 ครั้ง) - สลับไปที่แท็บเทอร์มินัลที่เรียกใช้เซิร์ฟเวอร์ MCP Toolbox แล้วกด
Ctrl+Cเพื่อหยุด - หยุดและนำคอนเทนเนอร์ AlloyDB Omni Docker ออกโดยทำดังนี้
docker stop alloydbomni docker rm alloydbomni
8. ขอแสดงความยินดี
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์ คุณติดตั้งใช้งาน AlloyDB Omni ในคอนเทนเนอร์ กำหนดค่า MCP Toolbox สำหรับฐานข้อมูลด้วยชุดเครื่องมือ AlloyDB Omni ที่สร้างไว้ล่วงหน้า และผสานรวมกับ Antigravity CLI เพื่อค้นหาและจัดการฐานข้อมูลโดยใช้ภาษาธรรมชาติเรียบร้อยแล้ว
สิ่งที่คุณได้พูดถึงไปแล้ว
- วิธีติดตั้งใช้งานและยืนยันคอนเทนเนอร์ AlloyDB Omni โดยใช้ Docker
- วิธีสร้างตารางและดัชนีตัวอย่างเพื่อทดสอบเวิร์กโฟลว์ของ Agent
- วิธีกำหนดค่าและเรียกใช้ MCP Toolbox สำหรับฐานข้อมูลด้วยการกำหนดค่าเครื่องมือ
alloydb-omniที่สร้างไว้ล่วงหน้า - วิธีเชื่อมต่อ Antigravity CLI กับ MCP Toolbox และเรียกใช้พรอมต์ภาษาธรรมชาติสำหรับการค้นพบสคีมา, การค้นหา SQL, การวิเคราะห์แผนการค้นหา และการวินิจฉัยฐานข้อมูล
ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลต่อไปนี้