MCP Toolbox for Databases Server
ทางการเซิร์ฟเวอร์ MCP โอเพนซอร์สที่เชี่ยวชาญด้านเครื่องมือที่ง่าย รวดเร็ว และปลอดภัยสำหรับฐานข้อมูล
เอกสาร
MCP Toolbox สำหรับฐานข้อมูล เป็นเซิร์ฟเวอร์ Model Context Protocol (MCP) แบบโอเพนซอร์สที่เชื่อมต่อเอเจนต์ AI, IDE และแอปพลิเคชันของคุณเข้ากับฐานข้อมูลองค์กรของคุณโดยตรง
มันมี วัตถุประสงค์สองประการ:
- เซิร์ฟเวอร์ MCP ที่พร้อมใช้งาน (Build-Time): เชื่อมต่อ Gemini CLI, Google Antigravity, Claude Code, Codex หรือไคลเอนต์ MCP อื่นๆ เข้ากับฐานข้อมูลของคุณได้ทันทีโดยใช้ เครื่องมือทั่วไปที่สร้างไว้ล่วงหน้า ของเรา พูดคุยกับข้อมูลของคุณ สำรวจสคีมา และสร้างโค้ดโดยไม่ต้องเขียนโค้ดสำเร็จรูป
- เฟรมเวิร์กเครื่องมือที่กำหนดเอง (Run-Time): เฟรมเวิร์กที่แข็งแกร่งสำหรับการสร้างเครื่องมือ AI เฉพาะทางที่มีความปลอดภัยสูงสำหรับเอเจนต์ที่ใช้งานจริงของคุณ กำหนดคิวรีที่มีโครงสร้าง การค้นหาเชิงความหมาย และความสามารถ NL2SQL ได้อย่างปลอดภัยและง่ายดาย
README นี้ให้ภาพรวมโดยย่อ สำหรับรายละเอียดที่ครอบคลุม โปรดดู เอกสารฉบับเต็ม
[!IMPORTANT]
การอัปเดตชื่อ Repository:genai-toolboxrepository ได้ถูกเปลี่ยนชื่ออย่างเป็นทางการเป็นmcp-toolboxเพื่อให้แน่ใจว่าสภาพแวดล้อมภายในของคุณสะท้อนถึงชื่อใหม่ คุณอาจอัปเดตรีโมตของคุณ:git remote set-url origin https://github.com/googleapis/mcp-toolbox.git
[!NOTE] โซลูชันนี้เดิมมีชื่อว่า “Gen AI Toolbox for Databases” (github.com/googleapis/genai-toolbox) เนื่องจากการพัฒนาเริ่มต้นเกิดขึ้นก่อน MCP แต่ถูกเปลี่ยนชื่อเพื่อให้สอดคล้องกับความเข้ากันได้ของ MCP
สารบัญ
- ทำไมต้อง MCP Toolbox?
- เริ่มต้นอย่างรวดเร็ว: เครื่องมือที่สร้างไว้ล่วงหน้า
- เริ่มต้นอย่างรวดเร็ว: เครื่องมือที่กำหนดเอง
- ติดตั้งและรันเซิร์ฟเวอร์ Toolbox
- เชื่อมต่อกับ Toolbox
- คุณสมบัติเพิ่มเติม
- การกำหนดเวอร์ชัน
- การมีส่วนร่วม
- ชุมชน
ทำไมต้อง MCP Toolbox?
- การเข้าถึงฐานข้อมูลทันที: เครื่องมือทั่วไปที่สร้างไว้ล่วงหน้าสำหรับการสำรวจข้อมูลทันที (เช่น
list_tables,execute_sql) โดยตรงจาก IDE หรือ CLI ของคุณ - เฟรมเวิร์กเครื่องมือที่กำหนดเอง: สร้างเครื่องมือที่พร้อมใช้งานจริงด้วยตรรกะที่กำหนดไว้ล่วงหน้าของคุณเอง รับประกันความปลอดภัยผ่านการเข้าถึงที่จำกัด คิวรีที่มีโครงสร้าง และการค้นหาเชิงความหมาย
- การพัฒนาที่ง่ายขึ้น: ผสานรวมเครื่องมือเข้ากับ Agent Development Kit (ADK), LangChain, LlamaIndex หรือเอเจนต์ที่กำหนดเองของคุณด้วยโค้ดน้อยกว่า 10 บรรทัด
- ประสิทธิภาพที่ดีขึ้น: จัดการการรวมการเชื่อมต่อ (connection pooling), การตรวจสอบสิทธิ์แบบรวม (IAM) และการสังเกตการณ์แบบ end-to-end (OpenTelemetry) ในตัว
- ความปลอดภัยที่เพิ่มขึ้น: การตรวจสอบสิทธิ์แบบรวมเพื่อการเข้าถึงข้อมูลของคุณที่ปลอดภัยยิ่งขึ้น
- การสังเกตการณ์แบบ End-to-end: เมตริกและการติดตามในตัวพร้อมการสนับสนุน OpenTelemetry ในตัว
เริ่มต้นอย่างรวดเร็ว: เครื่องมือที่สร้างไว้ล่วงหน้า
หยุดการสลับบริบทและให้ผู้ช่วย AI ของคุณกลายเป็นผู้ร่วมพัฒนาที่แท้จริง ด้วยการเชื่อมต่อ IDE ของคุณกับฐานข้อมูลของคุณด้วย MCP Toolbox คุณสามารถคิวรีข้อมูลของคุณเป็นภาษาอังกฤษแบบธรรมดา ทำให้การค้นพบและการจัดการสคีมาเป็นไปโดยอัตโนมัติ และสร้างโค้ดที่รับรู้ฐานข้อมูล
คุณสามารถใช้ Toolbox ใน IDE หรือไคลเอนต์ที่เข้ากันได้กับ MCP ใดๆ (เช่น Gemini CLI, Google Antigravity, Claude Code, Codex เป็นต้น) โดยการกำหนดค่าเซิร์ฟเวอร์ MCP
เครื่องมือที่สร้างไว้ล่วงหน้ายังมีให้ใช้งานได้อย่างสะดวกผ่าน Google Antigravity MCP Store ด้วยประสบการณ์การติดตั้งแบบคลิกเดียว
-
เพิ่มสิ่งต่อไปนี้ลงในไฟล์การกำหนดค่า MCP ของไคลเอนต์ของคุณ (โดยปกติคือ
mcp.jsonหรือclaude_desktop_config.json):{ "mcpServers": { "toolbox-postgres": { "command": "npx", "args": [ "-y", "@toolbox-sdk/server", "--prebuilt=postgres", "--stdio" ] } } } -
ตั้งค่าตัวแปรสภาพแวดล้อมที่เหมาะสมเพื่อเชื่อมต่อ ดู เอกสารอ้างอิงเครื่องมือที่สร้างไว้ล่วงหน้า
เมื่อคุณรัน Toolbox ด้วยแฟล็ก --prebuilt=<database> คุณจะสามารถเข้าถึงเครื่องมือมาตรฐานเพื่อโต้ตอบกับฐานข้อมูลนั้นได้ทันที คุณยังสามารถระบุชุดเครื่องมือเฉพาะโดยใช้ไวยากรณ์ --prebuilt=<database>/<toolset> (เช่น --prebuilt=postgres/data เพื่อโหลดเฉพาะเครื่องมือ SQL)
ฐานข้อมูลที่รองรับในปัจจุบันรวมถึง:
- Google Cloud: AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (เดิมชื่อ Dataplex)
- ฐานข้อมูลอื่นๆ: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino และอื่นๆ
สำหรับรายการเครื่องมือที่มีอยู่ทั้งหมดและความสามารถของมันในฐานข้อมูลที่รองรับทั้งหมด ดู เอกสารอ้างอิงเครื่องมือที่สร้างไว้ล่วงหน้า
ดูส่วน ติดตั้งและรันเซิร์ฟเวอร์ Toolbox สำหรับวิธีการดำเนินการต่างๆ เช่น Docker หรือไบนารี
[!TIP] สำหรับผู้ใช้ที่กำลังมองหาโซลูชันที่มีการจัดการ Google Cloud MCP Servers มอบประสบการณ์ MCP ที่มีการจัดการพร้อมเครื่องมือที่สร้างไว้ล่วงหน้า คุณสามารถ เรียนรู้เพิ่มเติมเกี่ยวกับความแตกต่างได้ที่นี่
เริ่มต้นอย่างรวดเร็ว: เครื่องมือที่กำหนดเอง
Toolbox ยังสามารถใช้เป็นเฟรมเวิร์กสำหรับเครื่องมือที่กำหนดเองได้
วิธีหลักในการกำหนดค่า Toolbox คือผ่านไฟล์ tools.yaml หากคุณ
มีหลายไฟล์ คุณสามารถบอก Toolbox ว่าจะโหลดไฟล์ใดด้วยแฟล็ก --config tools.yaml
คุณสามารถค้นหาเอกสารอ้างอิงโดยละเอียดสำหรับประเภททรัพยากรทั้งหมดได้ใน Resources
Sources
ส่วน sources ของ tools.yaml ของคุณกำหนดว่าแหล่งข้อมูลใดที่
Toolbox ของคุณควรเข้าถึงได้ เครื่องมือส่วนใหญ่จะมีอย่างน้อยหนึ่งแหล่งเพื่อ
ดำเนินการ
kind: source
name: my-pg-source
type: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่าแหล่งข้อมูลประเภทต่างๆ ดู Sources
Tools
ส่วน tools ของ tools.yaml กำหนดการกระทำที่เอเจนต์สามารถทำได้: ประเภท
ของเครื่องมือคืออะไร มีผลต่อแหล่งข้อมูลใด ใช้พารามิเตอร์อะไร เป็นต้น
kind: tool
name: search-hotels-by-name
type: postgres-sql
source: my-pg-source
description: Search for hotels based on name.
parameters:
- name: name
type: string
description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่าเครื่องมือประเภทต่างๆ ดู Tools
Toolsets
ส่วน toolsets ของ tools.yaml ของคุณอนุญาตให้คุณกำหนดกลุ่มของเครื่องมือ
ที่คุณต้องการให้สามารถโหลดร่วมกันได้ สิ่งนี้มีประโยชน์สำหรับการกำหนด
กลุ่มต่างๆ ตามเอเจนต์หรือแอปพลิเคชัน
kind: toolset
name: my_first_toolset
tools:
- my_first_tool
- my_second_tool
---
kind: toolset
name: my_second_toolset
tools:
- my_second_tool
- my_third_tool
Prompts
ส่วน prompts ของ tools.yaml กำหนดพรอมต์ที่สามารถใช้สำหรับ
การโต้ตอบกับ LLMs
kind: prompt
name: code_review
description: "Asks the LLM to analyze code quality and suggest improvements."
messages:
- content: >
Please review the following code for quality, correctness,
and potential improvements: \n\n{{.code}}
arguments:
- name: "code"
description: "The code to review"
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่าพรอมต์ ดู Prompts
ติดตั้งและรันเซิร์ฟเวอร์ Toolbox
คุณสามารถรัน Toolbox ได้โดยตรงด้วย ไฟล์การกำหนดค่า:
npx @toolbox-sdk/server --config tools.yaml
สิ่งนี้จะรันเซิร์ฟเวอร์ Toolbox เวอร์ชันล่าสุดด้วยไฟล์การกำหนดค่าของคุณ
[!NOTE] วิธีนี้ถูกปรับให้เหมาะสมเพื่อความสะดวกมากกว่าประสิทธิภาพ สำหรับการติดตั้งที่เป็นมาตรฐานและเชื่อถือได้มากขึ้น โปรดใช้ไบนารี หรืออิมเมจคอนเทนเนอร์ตามที่อธิบายไว้ใน ติดตั้งและรันเซิร์ฟเวอร์ Toolbox
ติดตั้ง Toolbox
สำหรับเวอร์ชันล่าสุด ตรวจสอบ หน้า releases และใช้ คำแนะนำต่อไปนี้สำหรับระบบปฏิบัติการและสถาปัตยกรรม CPU ของคุณ
ไบนารี
ในการติดตั้ง Toolbox เป็นไบนารี:
Linux (AMD64)
ในการติดตั้ง Toolbox เป็นไบนารีบน Linux (AMD64):
# ดูหน้า releases สำหรับเวอร์ชันอื่นๆ export VERSION=1.5.0 curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox chmod +x toolboxmacOS (Apple Silicon)
ในการติดตั้ง Toolbox เป็นไบนารีบน macOS (Apple Silicon):
# ดูหน้า releases สำหรับเวอร์ชันอื่นๆ export VERSION=1.5.0 curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox chmod +x toolboxmacOS (Intel)
ในการติดตั้ง Toolbox เป็นไบนารีบน macOS (Intel):
# ดูหน้า releases สำหรับเวอร์ชันอื่นๆ export VERSION=1.5.0 curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox chmod +x toolboxWindows (Command Prompt)
ในการติดตั้ง Toolbox เป็นไบนารีบน Windows (Command Prompt):
:: ดูหน้า releases สำหรับเวอร์ชันอื่นๆ set VERSION=1.5.0 curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"Windows (PowerShell)
ในการติดตั้ง Toolbox เป็นไบนารีบน Windows (PowerShell):
# ดูหน้า releases สำหรับเวอร์ชันอื่นๆ $VERSION = "1.5.0" curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"Windows ARM64 (Command Prompt)
ในการติดตั้ง Toolbox เป็นไบนารีบน Windows ARM64 (Command Prompt):
:: ดูหน้า releases สำหรับเวอร์ชันอื่นๆ set VERSION=1.5.0 curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"Windows ARM64 (PowerShell)
ในการติดตั้ง Toolbox เป็นไบนารีบน Windows ARM64 (PowerShell):
# ดูหน้า releases สำหรับเวอร์ชันอื่นๆ $VERSION = "1.5.0" curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
อิมเมจคอนเทนเนอร์
คุณยังสามารถติดตั้ง Toolbox เป็นคอนเทนเนอร์ได้:# see releases page for other versions
export VERSION=1.5.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew
ในการติดตั้ง Toolbox โดยใช้ Homebrew บน macOS หรือ Linux:
brew install mcp-toolbox
คอมไพล์จากซอร์ส
ในการติดตั้งจากซอร์ส ตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดของ Go ติดตั้งอยู่ จากนั้นรันคำสั่งต่อไปนี้:
go install github.com/googleapis/[email protected]
Gemini CLI
ตรวจสอบ [ส่วนขยาย Gemini CLI](https://geminicli.com/extensions/) เพื่อติดตั้งเครื่องมือที่สร้างไว้ล่วงหน้าสำหรับฐานข้อมูลเฉพาะเช่น AlloyDB, BigQuery และ Cloud SQL ลงใน Gemini CLI โดยตรง# Install Gemini CLI
npm install -g @google/gemini-cli
# Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgres
# Run Gemini CLI
gemini
โต้ตอบกับเครื่องมือที่กำหนดเองของคุณโดยใช้ภาษาธรรมชาติผ่าน Gemini CLI
# Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox
รัน Toolbox
กำหนดค่า tools.yaml เพื่อกำหนดเครื่องมือของคุณ จากนั้น
ดำเนินการ toolbox เพื่อเริ่มเซิร์ฟเวอร์:
ไบนารี
ในการรัน Toolbox จากไบนารี:
./toolbox --config "tools.yaml"
ⓘ หมายเหตุ
Toolbox เปิดใช้งานการโหลดซ้ำแบบไดนามิกตามค่าเริ่มต้น หากต้องการปิดใช้งาน ให้ใช้ แฟล็ก--disable-reload
อิมเมจคอนเทนเนอร์
ในการรันเซิร์ฟเวอร์หลังจากดึง อิมเมจคอนเทนเนอร์:
export VERSION=0.24.0 # Use the version you pulled
docker run -p 5000:5000 \
-v $(pwd)/tools.yaml:/app/tools.yaml \
us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \
--config "/app/tools.yaml"
ⓘ หมายเหตุ
แฟล็ก-vเมาต์tools.yamlในเครื่องของคุณลงในคอนเทนเนอร์ และ-pจับคู่ พอร์ต5000ของคอนเทนเนอร์กับพอร์ต5000ของโฮสต์ของคุณ
ซอร์ส
ในการรันเซิร์ฟเวอร์โดยตรงจากซอร์ส ให้นำทางไปยังไดเรกทอรีรากของโปรเจกต์ และรัน:
go run .
ⓘ หมายเหตุ
คำสั่งนี้รันโปรเจกต์จากซอร์ส และเหมาะสำหรับการพัฒนา และการทดสอบมากกว่า มัน ไม่ คอมไพล์ไบนารีลงใน$GOPATHของคุณ หากคุณต้องการ คอมไพล์ไบนารีแทน โปรดดู เอกสารสำหรับนักพัฒนา
Homebrew
หากคุณติดตั้ง Toolbox โดยใช้ Homebrew ไบนารี toolbox
จะพร้อมใช้งานในพาธระบบของคุณ คุณสามารถเริ่มเซิร์ฟเวอร์ด้วยคำสั่ง
เดียวกัน:
toolbox --config "tools.yaml"
NPM
เพื่อรัน Toolbox โดยตรงโดยไม่ต้องดาวน์โหลดไบนารีด้วยตนเอง (ต้องใช้ Node.js):
npx @toolbox-sdk/server --config tools.yaml
Gemini CLI
หลังจากติดตั้ง [ส่วนขยาย Gemini CLI](https://geminicli.com/extensions/) แล้ว เครื่องมือที่สร้างไว้ล่วงหน้าจะพร้อมใช้งานระหว่างการใช้งาน# Run Gemini CLI
gemini
# List extensions
/extensions list
# List MCP servers
/mcp list
คุณสามารถใช้ toolbox help เพื่อดูรายการแฟล็กทั้งหมด! หากต้องการหยุดเซิร์ฟเวอร์ ให้ส่ง
สัญญาณยุติ (ctrl+c บนแพลตฟอร์มส่วนใหญ่)
สำหรับเอกสารรายละเอียดเพิ่มเติมเกี่ยวกับการปรับใช้กับสภาพแวดล้อมต่างๆ โปรดดู แหล่งข้อมูลใน https://mcp-toolbox.dev/documentation/deploy-to/
เชื่อมต่อกับ Toolbox
เมื่อเซิร์ฟเวอร์ Toolbox ของคุณทำงานแล้ว คุณสามารถโหลดเครื่องมือลงในไคลเอนต์หรือแอปพลิเคชันที่เข้ากันได้กับ MCP
ไคลเอนต์ MCP
เพิ่มการกำหนดค่าต่อไปนี้ลงในการกำหนดค่าไคลเอนต์ MCP ของคุณ:
{
"mcpServers": {
"toolbox": {
"type": "http",
"url": "http://127.0.0.1:5000/mcp",
}
}
}
หากคุณต้องการเชื่อมต่อกับชุดเครื่องมือเฉพาะ ให้แทนที่ url ด้วย "http://127.0.0.1:5000/mcp/{toolset_name}"
Toolbox SDKs: ผสานรวมกับแอปพลิเคชันของคุณ
Toolbox Client SDKs มอบบล็อกการสร้างที่ใช้งานง่ายและคุณสมบัติขั้นสูงสำหรับการเชื่อมต่อแอปพลิเคชันที่กำหนดเองของคุณกับเซิร์ฟเวอร์ MCP Toolbox ดูรายการ Client SDKs สำหรับการใช้เฟรมเวิร์กต่างๆ ด้านล่าง:
Python (Github)
Core
ติดตั้ง Toolbox Core SDK:
pip install toolbox-coreโหลดเครื่องมือ:
from toolbox_core import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = await client.load_toolset("toolset_name")สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ Toolbox Core SDK โปรดดู README ของโปรเจกต์
LangChain / LangGraph
ติดตั้ง Toolbox LangChain SDK:
pip install toolbox-langchainโหลดเครื่องมือ:
from toolbox_langchain import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = client.load_toolset()สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ Toolbox LangChain SDK โปรดดู README ของโปรเจกต์
LlamaIndex
ติดตั้ง Toolbox Llamaindex SDK:
pip install toolbox-llamaindexโหลดเครื่องมือ:
from toolbox_llamaindex import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = client.load_toolset()สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ Toolbox Llamaindex SDK โปรดดู README ของโปรเจกต์
Javascript/Typescript (Github)
Core
ติดตั้ง Toolbox Core SDK:
npm install @toolbox-sdk/coreโหลดเครื่องมือ:
import { ToolboxClient } from '@toolbox-sdk/core'; // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const tools = await client.loadToolset('toolsetName');สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ Toolbox Core SDK โปรดดู README ของโปรเจกต์
LangChain / LangGraph
ติดตั้ง Toolbox Core SDK:
npm install @toolbox-sdk/coreโหลดเครื่องมือ:
import { ToolboxClient } from '@toolbox-sdk/core'; // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const toolboxTools = await client.loadToolset('toolsetName'); // Define the basics of the tool: name, description, schema and core logic const getTool = (toolboxTool) => tool(currTool, { name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }); // Use these tools in your Langchain/Langraph applications const tools = toolboxTools.map(getTool);Genkit
ติดตั้ง Toolbox Core SDK:
npm install @toolbox-sdk/coreโหลดเครื่องมือ:
import { ToolboxClient } from '@toolbox-sdk/core'; import { genkit } from 'genkit'; // Initialise genkit const ai = genkit({ plugins: [ googleAI({ apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY }) ], model: googleAI.model('gemini-2.0-flash'), }); // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const toolboxTools = await client.loadToolset('toolsetName'); // Define the basics of the tool: name, description, schema and core logic const getTool = (toolboxTool) => ai.defineTool({ name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }, toolboxTool) // Use these tools in your Genkit applications const tools = toolboxTools.map(getTool);ADK
ติดตั้ง Toolbox ADK SDK:
npm install @toolbox-sdk/adkโหลดเครื่องมือ:
import { ToolboxClient } from '@toolbox-sdk/adk'; // update the url to point to your server const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // these tools can be passed to your application! const tools = await client.loadToolset('toolsetName');สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ Toolbox ADK SDK โปรดดู README ของโปรเจกต์
Go (Github)
Core
ติดตั้ง Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goโหลดเครื่องมือ:
package main import ( "github.com/googleapis/mcp-toolbox-sdk-go/core" "context" ) func main() { // Make sure to add the error checks // update the url to point to your server URL := "http://127.0.0.1:5000"; ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tools tools, err := client.LoadToolset("toolsetName", ctx) }สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ Toolbox Go SDK โปรดดู README ของโปรเจกต์
LangChain Go
ติดตั้ง Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goโหลดเครื่องมือ:
package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" "github.com/tmc/langchaingo/llms" ) func main() { // Make sure to add the error checks // update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Fetch the tool's input schema inputschema, err := tool.InputSchema() var paramsSchema map[string]any _ = json.Unmarshal(inputschema, ¶msSchema) // Use this tool with LangChainGo langChainTool := llms.Tool{ Type: "function", Function: &llms.FunctionDefinition{ Name: tool.Name(), Description: tool.Description(), Parameters: paramsSchema, }, } }Genkit
ติดตั้ง Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goโหลดเครื่องมือ:
package main import ( "context" "log" "github.com/firebase/genkit/go/genkit" "github.com/googleapis/mcp-toolbox-sdk-go/core" "github.com/googleapis/mcp-toolbox-sdk-go/tbgenkit" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() g := genkit.Init(ctx) client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Convert the tool using the tbgenkit package // Use this tool with Genkit Go genkitTool, err := tbgenkit.ToGenkitTool(tool, g) if err != nil { log.Fatalf("Failed to convert tool: %v\n", err) } log.Printf("Successfully converted tool: %s", genkitTool.Name()) }Go GenAI
ติดตั้ง Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goโหลดเครื่องมือ:
package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" "google.golang.org/genai" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Fetch the tool's input schema inputschema, err := tool.InputSchema() var schema *genai.Schema _ = json.Unmarshal(inputschema, &schema) funcDeclaration := &genai.FunctionDeclaration{ Name: tool.Name(), Description: tool.Description(), Parameters: schema, } // Use this tool with Go GenAI genAITool := &genai.Tool{ FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration}, } }OpenAI Go
ติดตั้ง Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goโหลดเครื่องมือ:
package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" openai "github.com/openai/openai-go" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // Framework agnostic tool tool, err := client.LoadTool("toolName", ctx) // Fetch the tool's input schema inputschema, err := tool.InputSchema() var paramsSchema openai.FunctionParameters _ = json.Unmarshal(inputschema, ¶msSchema) // Use this tool with OpenAI Go openAITool := openai.ChatCompletionToolParam{ Function: openai.FunctionDefinitionParam{ Name: tool.Name(), Description: openai.String(tool.Description()), Parameters: paramsSchema, }, } }ADK Go
ติดตั้ง Toolbox Go SDK:
go get github.com/googleapis/mcp-toolbox-sdk-goโหลดเครื่องมือ:
package main import ( "github.com/googleapis/mcp-toolbox-sdk-go/tbadk" "context" ) func main() { // Make sure to add the error checks // Update the url to point to your server URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := tbadk.NewToolboxClient(URL) if err != nil { return fmt.Sprintln("Could not start Toolbox Client", err) } // Use this tool with ADK Go tool, err := client.LoadTool("toolName", ctx) if err != nil { return fmt.Sprintln("Could not load Toolbox Tool", err) } }สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ Toolbox Go SDK โปรดดู README ของโปรเจกต์
คุณสมบัติเพิ่มเติม
ทดสอบเครื่องมือด้วย Toolbox UI
ในการเปิด UI แบบโต้ตอบของ Toolbox ให้ใช้แฟล็ก --ui ซึ่งช่วยให้คุณทดสอบ
เครื่องมือและชุดเครื่องมือด้วยคุณสมบัติต่างๆ เช่น พารามิเตอร์ที่ได้รับอนุญาต หากต้องการเรียนรู้เพิ่มเติม
โปรดไปที่ Toolbox UI
./toolbox --ui
การตรวจวัดทางไกล
Toolbox ส่ง traces และ metrics ผ่าน OpenTelemetry ใช้ --telemetry-otlp=<endpoint>
เพื่อส่งออกไปยังแบ็กเอนด์ที่เข้ากันได้กับ OTLP เช่น Google Cloud Monitoring, Agnost AI หรือ
อื่นๆ ดู เอกสารการตรวจวัดทางไกล สำหรับรายละเอียด
สร้าง Agent Skills
คำสั่ง skills-generate ช่วยให้คุณแปลง ชุดเครื่องมือ เป็น Agent Skill ที่เข้ากันได้กับ ข้อกำหนด Agent Skill ซึ่งมีประโยชน์สำหรับการแจกจ่ายเครื่องมือเป็นแพ็คเกจสกิลแบบพกพา
toolbox --config tools.yaml skills-generate \
--name "my-skill" \
--toolset "my_toolset" \
--description "A skill containing multiple tools"
เมื่อสร้างแล้ว คุณสามารถติดตั้งสกิลลงใน Gemini CLI:
gemini skills install ./skills/my-skill
สำหรับรายละเอียดเพิ่มเติม โปรดดู คู่มือการสร้าง Agent Skills
การกำหนดเวอร์ชัน
MCP Toolbox for Databases ปฏิบัติตาม Semantic Versioning
Public API ประกอบด้วย Toolbox Server (CLI, configuration manifests และชุดเครื่องมือที่สร้างไว้ล่วงหน้า) และ Client SDKs
- เวอร์ชันหลัก จะเพิ่มขึ้นสำหรับการเปลี่ยนแปลงที่เข้ากันไม่ได้ เช่น การเปลี่ยนแปลง CLI หรือ manifest ที่เข้ากันไม่ได้
- เวอร์ชันรอง จะเพิ่มขึ้นสำหรับคุณสมบัติใหม่ รวมถึงการปรับเปลี่ยนชุดเครื่องมือที่สร้างไว้ล่วงหน้าหรือคุณสมบัติเบต้า
- เวอร์ชันแพตช์ จะเพิ่มขึ้นสำหรับการแก้ไขข้อบกพร่องที่เข้ากันได้แบบย้อนหลัง
สำหรับรายละเอียดเพิ่มเติม โปรดดู นโยบายการกำหนดเวอร์ชันฉบับเต็ม ของเรา
การมีส่วนร่วม
ยินดีต้อนรับการมีส่วนร่วม โปรดดูคู่มือ CONTRIBUTING เพื่อเริ่มต้น
สำหรับรายละเอียดทางเทคนิคเกี่ยวกับการตั้งค่าสภาพแวดล้อมสำหรับการพัฒนา Toolbox เอง โปรดดูคู่มือ DEVELOPER
โปรดทราบว่าโปรเจกต์นี้เผยแพร่พร้อมกับจรรยาบรรณของผู้มีส่วนร่วม การเข้าร่วมในโปรเจกต์นี้แสดงว่าคุณตกลงที่จะปฏิบัติตามข้อกำหนด ดู จรรยาบรรณของผู้มีส่วนร่วม สำหรับข้อมูลเพิ่มเติม
ชุมชน
เข้าร่วม ชุมชน Discord ของเราเพื่อเชื่อมต่อกับนักพัฒนาของเรา!
