MCP Toolbox for Databases Server

chính thức

Máy chủ MCP mã nguồn mở chuyên cung cấp các công cụ dễ dàng, nhanh chóng và an toàn cho Cơ sở dữ liệu.

Tài liệu

logo

MCP Toolbox cho Cơ sở dữ liệu

googleapis%2Fmcp-toolbox | Trendshift

Go Report Card Giấy phép: Apache
2.0 Docs Discord Medium

Python SDK JS/TS SDK Go SDK Java SDK

MCP Toolbox cho Cơ sở dữ liệu là một máy chủ Giao thức Ngữ cảnh Mô hình (MCP) mã nguồn mở, kết nối trực tiếp các tác nhân AI, IDE và ứng dụng của bạn với cơ sở dữ liệu doanh nghiệp.

architecture

Nó phục vụ mục đích kép:

  1. Máy chủ MCP sẵn sàng sử dụng (Thời điểm xây dựng): Kết nối ngay lập tức Gemini CLI, Google Antigravity, Claude Code, Codex hoặc các máy khách MCP khác với cơ sở dữ liệu của bạn bằng công cụ dựng sẵn chung của chúng tôi. Trò chuyện với dữ liệu, khám phá lược đồ và tạo mã mà không cần viết mã khung.
  2. Khung công cụ tùy chỉnh (Thời gian chạy): Một khung mạnh mẽ để xây dựng các công cụ AI chuyên biệt, có tính bảo mật cao cho các tác nhân sản xuất của bạn. Định nghĩa truy vấn có cấu trúc, tìm kiếm ngữ nghĩa và khả năng NL2SQL một cách an toàn và dễ dàng.

README này cung cấp tổng quan ngắn gọn. Để biết chi tiết đầy đủ, hãy xem tài liệu đầy đủ.

[!QUAN TRỌNG]
Cập nhật tên kho lưu trữ: Kho lưu trữ genai-toolbox đã chính thức được đổi tên thành mcp-toolbox. Để đảm bảo môi trường cục bộ của bạn phản ánh tên mới, bạn có thể cập nhật remote của mình: git remote set-url origin https://github.com/googleapis/mcp-toolbox.git

[!LƯU Ý] Giải pháp này ban đầu được đặt tên là “Gen AI Toolbox cho Cơ sở dữ liệu” (github.com/googleapis/genai-toolbox) vì quá trình phát triển ban đầu của nó có trước MCP, nhưng đã được đổi tên để phù hợp với khả năng tương thích MCP.

Mục lục


Tại sao chọn MCP Toolbox?

  • Truy cập cơ sở dữ liệu sẵn sàng: Các công cụ dựng sẵn chung để khám phá dữ liệu tức thì (ví dụ: list_tables, execute_sql) trực tiếp từ IDE hoặc CLI của bạn.
  • Khung công cụ tùy chỉnh: Xây dựng các công cụ sẵn sàng cho sản xuất với logic được định nghĩa trước của riêng bạn, đảm bảo an toàn thông qua Truy cập hạn chế, Truy vấn có cấu trúc và Tìm kiếm ngữ nghĩa.
  • Phát triển đơn giản hóa: Tích hợp công cụ vào Bộ công cụ phát triển tác nhân (ADK), LangChain, LlamaIndex hoặc các tác nhân tùy chỉnh của bạn chỉ với dưới 10 dòng mã.
  • Hiệu suất tốt hơn: Xử lý gộp kết nối, xác thực tích hợp (IAM) và khả năng quan sát đầu cuối (OpenTelemetry) một cách sẵn sàng.
  • Bảo mật nâng cao: Xác thực tích hợp để truy cập dữ liệu an toàn hơn.
  • Khả năng quan sát đầu cuối: Số liệu và truy vết sẵn sàng với hỗ trợ tích hợp cho OpenTelemetry.

Bắt đầu nhanh: Công cụ dựng sẵn

Ngừng chuyển đổi ngữ cảnh và để trợ lý AI của bạn trở thành một đồng phát triển thực sự. Bằng cách kết nối IDE của bạn với cơ sở dữ liệu bằng MCP Toolbox, bạn có thể truy vấn dữ liệu bằng tiếng Anh đơn giản, tự động hóa việc khám phá và quản lý lược đồ, và tạo mã nhận biết cơ sở dữ liệu.

Bạn có thể sử dụng Toolbox trong bất kỳ IDE hoặc máy khách tương thích MCP nào (ví dụ: Gemini CLI, Google Antigravity, Claude Code, Codex, v.v.) bằng cách cấu hình máy chủ MCP.

Các công cụ dựng sẵn cũng có sẵn một cách thuận tiện thông qua Cửa hàng MCP Google Antigravity với trải nghiệm cài đặt chỉ bằng một cú nhấp chuột.

  1. Thêm phần sau vào tệp cấu hình MCP của máy khách của bạn (thường là mcp.json hoặc claude_desktop_config.json):

    {
      "mcpServers": {
        "toolbox-postgres": {
          "command": "npx",
          "args": [
            "-y",
            "@toolbox-sdk/server",
            "--prebuilt=postgres",
            "--stdio"
          ]
        }
      }
    }
    
  2. Đặt các biến môi trường thích hợp để kết nối, xem Tham khảo Công cụ dựng sẵn.

Khi bạn chạy Toolbox với cờ --prebuilt=<database>, bạn ngay lập tức có quyền truy cập vào các công cụ tiêu chuẩn để tương tác với cơ sở dữ liệu đó. Bạn cũng có thể chỉ định một bộ công cụ cụ thể bằng cú pháp --prebuilt=<database>/<toolset> (ví dụ: --prebuilt=postgres/data để chỉ tải các công cụ SQL).

Các cơ sở dữ liệu được hỗ trợ hiện bao gồm:

  • Google Cloud: AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (trước đây gọi là Dataplex).
  • Cơ sở dữ liệu khác: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino, và nhiều hơn nữa.

Để biết danh sách đầy đủ các công cụ có sẵn và khả năng của chúng trên tất cả các cơ sở dữ liệu được hỗ trợ, hãy xem Tham khảo Công cụ dựng sẵn.

Xem phần Cài đặt & Chạy máy chủ Toolbox để biết các phương thức thực thi khác nhau như Docker hoặc tệp nhị phân.

[!MẸO] Đối với người dùng đang tìm kiếm giải pháp được quản lý, Máy chủ MCP Google Cloud cung cấp trải nghiệm MCP được quản lý với các công cụ dựng sẵn; bạn có thể tìm hiểu thêm về sự khác biệt tại đây.


Bắt đầu nhanh: Công cụ tùy chỉnh

Toolbox cũng có thể được sử dụng như một khung cho các công cụ tùy chỉnh. Cách chính để cấu hình Toolbox là thông qua tệp tools.yaml. Nếu bạn có nhiều tệp, bạn có thể cho Toolbox biết tệp nào cần tải bằng cờ --config tools.yaml.

Bạn có thể tìm thấy tài liệu tham khảo chi tiết hơn cho tất cả các loại tài nguyên trong phần Tài nguyên.

Nguồn

Phần sources của tools.yaml của bạn xác định những nguồn dữ liệu nào mà Toolbox của bạn sẽ có quyền truy cập. Hầu hết các công cụ sẽ có ít nhất một nguồn để thực thi.

kind: source
name: my-pg-source
type: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password

Để biết thêm chi tiết về cấu hình các loại nguồn khác nhau, hãy xem phần Nguồn.

Công cụ

Phần tools của tools.yaml xác định các hành động mà một tác nhân có thể thực hiện: loại công cụ, (các) nguồn mà nó ảnh hưởng, các tham số nó sử dụng, v.v.

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 || '%';

Để biết thêm chi tiết về cấu hình các loại công cụ khác nhau, hãy xem phần Công cụ.

Bộ công cụ

Phần toolsets của tools.yaml của bạn cho phép bạn định nghĩa các nhóm công cụ mà bạn muốn có thể tải cùng nhau. Điều này có thể hữu ích để định nghĩa các nhóm khác nhau dựa trên tác nhân hoặc ứng dụng.

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

Lời nhắc

Phần prompts của tools.yaml định nghĩa các lời nhắc có thể được sử dụng cho các tương tác với LLM.

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"

Để biết thêm chi tiết về cấu hình lời nhắc, hãy xem phần Lời nhắc.


Cài đặt & Chạy máy chủ Toolbox

Bạn có thể chạy Toolbox trực tiếp với một tệp cấu hình:

npx @toolbox-sdk/server --config tools.yaml

Lệnh này chạy phiên bản mới nhất của máy chủ Toolbox với tệp cấu hình của bạn.

[!LƯU Ý] Phương pháp này được tối ưu hóa cho sự thuận tiện hơn là hiệu suất. Để cài đặt tiêu chuẩn và đáng tin cậy hơn, vui lòng sử dụng tệp nhị phân hoặc ảnh container như được mô tả trong Cài đặt & Chạy máy chủ Toolbox.

Cài đặt Toolbox

Đối với phiên bản mới nhất, hãy kiểm tra trang phát hành và sử dụng các hướng dẫn sau cho hệ điều hành và kiến trúc CPU của bạn.

Tệp nhị phân

Để cài đặt Toolbox dưới dạng tệp nhị phân:

Linux (AMD64)

Để cài đặt Toolbox dưới dạng tệp nhị phân trên Linux (AMD64):

# xem trang phát hành để biết các phiên bản khác
export VERSION=1.4.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
macOS (Apple Silicon)

Để cài đặt Toolbox dưới dạng tệp nhị phân trên macOS (Apple Silicon):

# xem trang phát hành để biết các phiên bản khác
export VERSION=1.4.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox
chmod +x toolbox
macOS (Intel)

Để cài đặt Toolbox dưới dạng tệp nhị phân trên macOS (Intel):

# xem trang phát hành để biết các phiên bản khác
export VERSION=1.4.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
Windows (Command Prompt)

Để cài đặt Toolbox dưới dạng tệp nhị phân trên Windows (Command Prompt):

:: xem trang phát hành để biết các phiên bản khác
set VERSION=1.4.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"
Windows (PowerShell)

Để cài đặt Toolbox dưới dạng tệp nhị phân trên Windows (PowerShell):

# xem trang phát hành để biết các phiên bản khác
$VERSION = "1.4.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"
Windows ARM64 (Command Prompt)

Để cài đặt Toolbox dưới dạng tệp nhị phân trên Windows ARM64 (Command Prompt):

:: xem trang phát hành để biết các phiên bản khác
set VERSION=1.4.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"
Windows ARM64 (PowerShell)

Để cài đặt Toolbox dưới dạng tệp nhị phân trên Windows ARM64 (PowerShell):

# xem trang phát hành để biết các phiên bản khác
$VERSION = "1.4.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
Ảnh container Bạn cũng có thể cài đặt Toolbox dưới dạng container:
# see releases page for other versions
export VERSION=1.4.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew

Để cài đặt Toolbox bằng Homebrew trên macOS hoặc Linux:

brew install mcp-toolbox
Biên dịch từ mã nguồn

Để cài đặt từ mã nguồn, hãy đảm bảo bạn có phiên bản mới nhất của Go đã cài đặt, và sau đó chạy lệnh sau:

go install github.com/googleapis/[email protected]
Gemini CLI Xem [tiện ích mở rộng Gemini CLI](https://geminicli.com/extensions/) để cài đặt các công cụ dựng sẵn cho các cơ sở dữ liệu cụ thể như AlloyDB, BigQuery và Cloud SQL trực tiếp vào 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

Tương tác với các công cụ tùy chỉnh của bạn bằng ngôn ngữ tự nhiên thông qua Gemini CLI.

# Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox

Chạy Toolbox

Cấu hình một tools.yaml để định nghĩa các công cụ của bạn, và sau đó thực thi toolbox để khởi động máy chủ:

Tệp nhị phân

Để chạy Toolbox từ tệp nhị phân:

./toolbox --config "tools.yaml"

ⓘ Lưu ý
Toolbox kích hoạt tải lại động theo mặc định. Để tắt, hãy sử dụng cờ --disable-reload.

Ảnh container

Để chạy máy chủ sau khi tải ảnh container:

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"

ⓘ Lưu ý
Cờ -v gắn kết tools.yaml cục bộ của bạn vào container, và -p ánh xạ cổng 5000 của container tới cổng 5000 của máy chủ của bạn.

Mã nguồn

Để chạy máy chủ trực tiếp từ mã nguồn, điều hướng đến thư mục gốc của dự án và chạy:

go run .

ⓘ Lưu ý
Lệnh này chạy dự án từ mã nguồn, và phù hợp hơn cho phát triển và thử nghiệm. Nó không biên dịch tệp nhị phân vào $GOPATH của bạn. Nếu bạn muốn biên dịch tệp nhị phân thay thế, hãy tham khảo Tài liệu Nhà phát triển.

Homebrew

Nếu bạn đã cài đặt Toolbox bằng Homebrew, tệp nhị phân toolbox có sẵn trong đường dẫn hệ thống của bạn. Bạn có thể khởi động máy chủ với cùng một lệnh:

toolbox --config "tools.yaml"
NPM

Để chạy Toolbox trực tiếp mà không cần tải xuống tệp nhị phân thủ công (yêu cầu Node.js):

npx @toolbox-sdk/server --config tools.yaml
Gemini CLI Sau khi cài đặt [tiện ích mở rộng Gemini CLI](https://geminicli.com/extensions/), các công cụ dựng sẵn sẽ có sẵn trong quá trình sử dụng.
# Run Gemini CLI
gemini

# List extensions
/extensions list
# List MCP servers
/mcp list

Bạn có thể sử dụng toolbox help để xem danh sách đầy đủ các cờ! Để dừng máy chủ, hãy gửi tín hiệu kết thúc (ctrl+c trên hầu hết các nền tảng).

Để biết tài liệu chi tiết hơn về triển khai cho các môi trường khác nhau, hãy xem các tài nguyên trong phần Triển khai Toolbox


Kết nối với Toolbox

Khi máy chủ Toolbox của bạn đã hoạt động, bạn có thể tải các công cụ vào máy khách hoặc ứng dụng tương thích MCP của mình.

Máy khách MCP

Thêm cấu hình sau vào cấu hình máy khách MCP của bạn:

{
  "mcpServers": {
    "toolbox": {
      "type": "http",
      "url": "http://127.0.0.1:5000/mcp",
    }
  }
}

Nếu bạn muốn kết nối với một bộ công cụ cụ thể, hãy thay thế url bằng "http://127.0.0.1:5000/mcp/{toolset_name}".

SDK Toolbox: Tích hợp với Ứng dụng của bạn

SDK Máy khách Toolbox cung cấp các khối xây dựng dễ sử dụng và các tính năng nâng cao để kết nối các ứng dụng tùy chỉnh của bạn với máy chủ MCP Toolbox. Xem danh sách SDK Máy khách dưới đây để sử dụng các khung khác nhau:

Python (Github)
Cốt lõi
  1. Cài đặt SDK Cốt lõi Toolbox:

    pip install toolbox-core
    
  2. Tải công cụ:

    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")
    

Để biết hướng dẫn chi tiết hơn về cách sử dụng SDK Cốt lõi Toolbox, hãy xem README của dự án.

LangChain / LangGraph
  1. Cài đặt SDK LangChain Toolbox:

    pip install toolbox-langchain
    
  2. Tải công cụ:

    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()
    

    Để biết hướng dẫn chi tiết hơn về cách sử dụng SDK LangChain Toolbox, hãy xem README của dự án.

LlamaIndex
  1. Cài đặt SDK Llamaindex Toolbox:

    pip install toolbox-llamaindex
    
  2. Tải công cụ:

    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()
    

    Để biết hướng dẫn chi tiết hơn về cách sử dụng SDK Llamaindex Toolbox, hãy xem README của dự án.

Javascript/Typescript (Github)
Cốt lõi
  1. Cài đặt SDK Cốt lõi Toolbox:

    npm install @toolbox-sdk/core
    
  2. Tải công cụ:

    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');
    

    Để biết hướng dẫn chi tiết hơn về cách sử dụng SDK Cốt lõi Toolbox, hãy xem README của dự án.

LangChain / LangGraph
  1. Cài đặt SDK Cốt lõi Toolbox:

    npm install @toolbox-sdk/core
    
  2. Tải công cụ:

    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
  1. Cài đặt SDK Cốt lõi Toolbox:

    npm install @toolbox-sdk/core
    
  2. Tải công cụ:

    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
  1. Cài đặt SDK ADK Toolbox:

    npm install @toolbox-sdk/adk
    
  2. Tải công cụ:

    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');
    

    Để biết hướng dẫn chi tiết hơn về cách sử dụng SDK ADK Toolbox, hãy xem README của dự án.

Go (Github)
Cốt lõi
  1. Cài đặt SDK Go Toolbox:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Tải công cụ:

    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)
    }
    

    Để biết hướng dẫn chi tiết hơn về cách sử dụng SDK Go Toolbox, hãy xem README của dự án.

LangChain Go
  1. Cài đặt SDK Go Toolbox:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Tải công cụ:

    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, &paramsSchema)
    
      // Use this tool with LangChainGo
      langChainTool := llms.Tool{
        Type: "function",
        Function: &llms.FunctionDefinition{
          Name:        tool.Name(),
          Description: tool.Description(),
          Parameters:  paramsSchema,
        },
      }
    }
    
    
Genkit
  1. Cài đặt SDK Go Toolbox:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Tải công cụ:

    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
  1. Cài đặt SDK Go Toolbox:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Tải công cụ:

    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
  1. Cài đặt SDK Go Toolbox:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Tải công cụ:

    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, &paramsSchema)
    
      // Use this tool with OpenAI Go
      openAITool := openai.ChatCompletionToolParam{
        Function: openai.FunctionDefinitionParam{
          Name:        tool.Name(),
          Description: openai.String(tool.Description()),
          Parameters:  paramsSchema,
        },
      }
    
    }
    
ADK Go
  1. Cài đặt SDK Go Toolbox:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Tải công cụ:

    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)
      }
    }
    

    Để biết hướng dẫn chi tiết hơn về cách sử dụng SDK Go Toolbox, hãy xem README của dự án.


Tính năng bổ sung

Kiểm tra công cụ với Giao diện người dùng Toolbox

Để khởi chạy giao diện người dùng tương tác của Toolbox, hãy sử dụng cờ --ui. Điều này cho phép bạn kiểm tra các công cụ và bộ công cụ với các tính năng như tham số được ủy quyền. Để tìm hiểu thêm, hãy truy cập Giao diện người dùng Toolbox.

./toolbox --ui

Đo lường từ xa

Toolbox phát ra các truy vết và số liệu qua OpenTelemetry. Sử dụng --telemetry-otlp=<endpoint> để xuất sang bất kỳ backend tương thích OTLP nào như Google Cloud Monitoring, Agnost AI, hoặc các backend khác. Xem tài liệu đo lường từ xa để biết chi tiết.

Tạo Kỹ năng Tác nhân

Lệnh skills-generate cho phép bạn chuyển đổi một bộ công cụ thành một Kỹ năng Tác nhân tương thích với đặc tả Kỹ năng Tác nhân. Điều này hữu ích để phân phối các công cụ dưới dạng các gói kỹ năng di động.

toolbox --config tools.yaml skills-generate \
  --name "my-skill" \
  --toolset "my_toolset" \
  --description "A skill containing multiple tools"

Sau khi được tạo, bạn có thể cài đặt kỹ năng vào Gemini CLI:

gemini skills install ./skills/my-skill

Để biết thêm chi tiết, hãy xem hướng dẫn Tạo Kỹ năng Tác nhân.


Phiên bản hóa

MCP Toolbox cho Cơ sở dữ liệu tuân theo Phiên bản hóa Ngữ nghĩa.

API Công khai bao gồm Máy chủ Toolbox (CLI, tệp kê khai cấu hình và các bộ công cụ dựng sẵn) và SDK Máy khách.

  • Phiên bản chính được tăng lên đối với các thay đổi phá vỡ, chẳng hạn như thay đổi CLI hoặc tệp kê khai không tương thích.
  • Phiên bản phụ được tăng lên đối với các tính năng mới, bao gồm sửa đổi đối với các bộ công cụ dựng sẵn hoặc các tính năng beta.
  • Phiên bản vá được tăng lên đối với các bản sửa lỗi tương thích ngược.

Để biết thêm chi tiết, hãy xem Chính sách Phiên bản hóa Đầy đủ của chúng tôi.


Đóng góp

Chúng tôi hoan nghênh các đóng góp. Vui lòng xem hướng dẫn ĐÓNG GÓP để bắt đầu.

Để biết chi tiết kỹ thuật về việc thiết lập môi trường để phát triển chính Toolbox, hãy xem hướng dẫn NHÀ PHÁT TRIỂN.

Xin lưu ý rằng dự án này được phát hành với Quy tắc Ứng xử Người đóng góp. Bằng cách tham gia vào dự án này, bạn đồng ý tuân thủ các điều khoản của nó. Xem Quy tắc Ứng xử Người đóng góp để biết thêm thông tin.


Cộng đồng

Tham gia cộng đồng Discord của chúng tôi để kết nối với các nhà phát triển của chúng tôi!