MCP Toolbox for Databases

resmi

Server MCP sumber terbuka yang mengkhususkan diri pada alat yang mudah, cepat, dan aman untuk Basis Data.

Apa yang bisa Anda lakukan dengan Toolbox For Databases MCP?

  • Jelajahi skema database — Minta asisten AI Anda untuk mencantumkan tabel dan memeriksa detail skema menggunakan tool bawaan list_tables.
  • Jalankan kueri SQL — Kueri data Anda dalam bahasa sehari-hari melalui tool bawaan execute_sql di berbagai database yang didukung.
  • Hubungkan melalui klien MCP — Konfigurasikan server di mcp.json atau claude_desktop_config.json agar dapat digunakan dari Gemini CLI, Claude Code, Codex, atau klien MCP lainnya.
  • Tentukan tool kustom — Buat tool SQL terstruktur dengan parameter di file tools.yaml untuk mengekspos kueri tertentu kepada agen dengan aman.
  • Kelompokkan tool ke dalam toolset — Atur tool terkait ke dalam toolset dan muat semuanya sekaligus untuk agen atau aplikasi tertentu.

Dokumentasi

logo

MCP Toolbox for Databases

googleapis%2Fmcp-toolbox | Trendshift

Lisensi: Apache
2.0 Docs Discord Medium

Python SDK JS/TS SDK Go SDK Java SDK

MCP Toolbox for Databases adalah server Model Context Protocol (MCP) sumber terbuka yang menghubungkan agen AI, IDE, dan aplikasi Anda langsung ke database perusahaan.

architecture

Server ini memiliki dua fungsi:

  1. Server MCP siap pakai (Waktu Build): Hubungkan Gemini CLI, Google Antigravity, Claude Code, Codex, atau klien MCP lainnya ke database Anda secara instan menggunakan alat generik siap pakai kami. Berinteraksilah dengan data Anda, jelajahi skema, dan buat kode tanpa menulis kode boilerplate.
  2. Kerangka Kerja Alat Kustom (Waktu Runtime): Kerangka kerja tangguh untuk membangun alat AI khusus yang sangat aman bagi agen produksi Anda. Tentukan kueri terstruktur, pencarian semantik, dan kemampuan NL2SQL dengan aman dan mudah.

README ini memberikan gambaran singkat. Untuk detail lengkap, lihat dokumentasi lengkap.

[!IMPORTANT]
Pembaruan Nama Repositori: Repositori genai-toolbox telah resmi berganti nama menjadi mcp-toolbox. Agar lingkungan lokal Anda menggunakan nama baru, Anda dapat memperbarui remote: git remote set-url origin https://github.com/googleapis/mcp-toolbox.git

[!NOTE] Solusi ini awalnya bernama “Gen AI Toolbox for Databases” (github.com/googleapis/genai-toolbox) karena pengembangan awalnya mendahului MCP, tetapi namanya diubah agar selaras dengan kompatibilitas MCP.

Daftar Isi


Mengapa MCP Toolbox?

  • Akses Database Langsung: Alat generik siap pakai untuk menjelajahi data secara instan (misalnya, list_tables, execute_sql) langsung dari IDE atau CLI Anda.
  • Kerangka Kerja Alat Kustom: Bangun alat siap produksi dengan logika yang telah ditentukan sendiri, serta pastikan keamanan melalui Akses Terbatas, Kueri Terstruktur, dan Pencarian Semantik.
  • Pengembangan Lebih Sederhana: Integrasikan alat ke dalam Agent Development Kit (ADK), LangChain, LlamaIndex, atau agen kustom Anda dengan kurang dari 10 baris kode.
  • Performa Lebih Baik: Menangani pengumpulan koneksi, autentikasi terintegrasi (IAM), dan observabilitas menyeluruh (OpenTelemetry) secara langsung.
  • Keamanan yang Ditingkatkan: Autentikasi terintegrasi untuk akses data yang lebih aman.
  • Observabilitas Menyeluruh: Metrik dan pelacakan siap pakai dengan dukungan bawaan untuk OpenTelemetry.

Mulai Cepat: Alat Siap Pakai

Hentikan perpindahan konteks dan jadikan asisten AI Anda rekan pengembang sejati. Dengan menghubungkan IDE ke database menggunakan MCP Toolbox, Anda dapat mengueri data dalam bahasa sehari-hari, mengotomatiskan penemuan dan pengelolaan skema, serta membuat kode yang memahami database.

Anda dapat menggunakan Toolbox di IDE atau klien apa pun yang kompatibel dengan MCP (misalnya, Gemini CLI, Google Antigravity, Claude Code, Codex, dll.) dengan mengonfigurasi server MCP.

Alat siap pakai juga tersedia dengan mudah melalui Google Antigravity MCP Store dengan pengalaman instalasi sekali klik.

  1. Tambahkan konfigurasi berikut ke file konfigurasi MCP klien Anda (biasanya mcp.json atau claude_desktop_config.json):

    {
      "mcpServers": {
        "toolbox-postgres": {
          "command": "npx",
          "args": [
            "-y",
            "@toolbox-sdk/server",
            "--prebuilt=postgres",
            "--stdio"
          ]
        }
      }
    }
    
  2. Tetapkan variabel lingkungan yang sesuai untuk menghubungkan, lihat Referensi Alat Siap Pakai.

Saat menjalankan Toolbox dengan flag --prebuilt=<database>, Anda langsung mendapatkan akses ke alat standar untuk berinteraksi dengan database tersebut. Anda juga dapat menentukan set alat tertentu menggunakan sintaks --prebuilt=<database>/<toolset> (misalnya, --prebuilt=postgres/data untuk memuat alat SQL saja).

Database yang saat ini didukung meliputi:

  • Google Cloud: AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (sebelumnya dikenal sebagai Dataplex).
  • Database Lainnya: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino, dan lainnya.

Untuk daftar lengkap alat yang tersedia beserta kemampuannya di semua database yang didukung, lihat Referensi Alat Siap Pakai.

Lihat bagian Instal dan Jalankan server Toolbox untuk berbagai metode eksekusi, seperti Docker atau biner.

[!TIP] Bagi pengguna yang mencari solusi terkelola, Google Cloud MCP Servers menyediakan pengalaman MCP terkelola dengan alat siap pakai; pelajari selengkapnya tentang perbedaannya di sini.


Mulai Cepat: Alat Kustom

Toolbox juga dapat digunakan sebagai kerangka kerja untuk alat yang disesuaikan. Cara utama untuk mengonfigurasi Toolbox adalah melalui file tools.yaml. Jika Anda memiliki beberapa file, Anda dapat memberi tahu Toolbox file mana yang harus dimuat dengan flag --config tools.yaml.

Anda dapat menemukan dokumentasi referensi yang lebih terperinci untuk semua jenis resource di Resources.

Sumber

Bagian sources pada tools.yaml menentukan sumber data yang dapat diakses oleh Toolbox Anda. Sebagian besar alat memiliki setidaknya satu sumber untuk menjalankan operasi.

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

Untuk detail selengkapnya tentang cara mengonfigurasi berbagai jenis sumber, lihat Sources.

Alat

Bagian tools pada tools.yaml menentukan tindakan yang dapat dilakukan agen: jenis alat, sumber yang dipengaruhinya, parameter yang digunakannya, dan sebagainya.

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

Untuk detail selengkapnya tentang cara mengonfigurasi berbagai jenis alat, lihat Tools.

Set Alat

Bagian toolsets pada tools.yaml memungkinkan Anda menentukan kelompok alat yang ingin dimuat bersama. Ini berguna untuk menentukan kelompok yang berbeda berdasarkan agen atau aplikasi.

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

Prompt

Bagian prompts pada tools.yaml menentukan prompt yang dapat digunakan untuk berinteraksi dengan 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"

Untuk detail selengkapnya tentang cara mengonfigurasi prompt, lihat Prompts.

Resource

Bagian resources dan resourceTemplates pada tools.yaml menentukan konten, file, atau pohon direktori berparameter yang bersifat hanya-baca dan dapat ditemukan serta diambil oleh klien MCP:

kind: resource
name: database_schema_ddl
type: text
description: "Core table definitions and constraints."
mimeType: text/x-sql
text: |
  CREATE TABLE customers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL
  );
---
kind: resource
name: database_schema
type: file
description: "PostgreSQL schema definition."
path: "./schema.sql"
---
kind: resourceTemplate
name: server_logs
type: file
description: "Application log files."
uriTemplate: "file:///var/log/{path}"
allowedPaths:
  - "/var/log"

Untuk detail selengkapnya tentang cara mengonfigurasi resource dan templat resource, lihat Resources.


Instal dan Jalankan server Toolbox

Anda dapat menjalankan Toolbox secara langsung dengan file konfigurasi:

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

Perintah ini menjalankan versi terbaru server Toolbox dengan file konfigurasi Anda.

[!NOTE] Metode ini dioptimalkan untuk kemudahan, bukan performa. Untuk instalasi yang lebih standar dan andal, gunakan biner atau image container seperti yang dijelaskan di Instal dan Jalankan server Toolbox.

Instal Toolbox

Untuk versi terbaru, periksa halaman rilis dan ikuti petunjuk berikut sesuai OS dan arsitektur CPU Anda.

Biner

Untuk menginstal Toolbox sebagai biner:

Linux (AMD64)

Untuk menginstal Toolbox sebagai biner di Linux (AMD64):

# lihat halaman rilis untuk versi lainnya
export VERSION=1.16.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
macOS (Apple Silicon)

Untuk menginstal Toolbox sebagai biner di macOS (Apple Silicon):

# lihat halaman rilis untuk versi lainnya
export VERSION=1.16.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox
chmod +x toolbox
macOS (Intel)

Untuk menginstal Toolbox sebagai biner di macOS (Intel):

# lihat halaman rilis untuk versi lainnya
export VERSION=1.16.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
Windows (Command Prompt)

Untuk menginstal Toolbox sebagai biner di Windows (Command Prompt):

:: lihat halaman rilis untuk versi lainnya
set VERSION=1.16.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"
Windows (PowerShell)

Untuk menginstal Toolbox sebagai biner di Windows (PowerShell):

# lihat halaman rilis untuk versi lainnya
$VERSION = "1.16.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"
Windows ARM64 (Command Prompt)

Untuk menginstal Toolbox sebagai biner di Windows ARM64 (Command Prompt):

:: lihat halaman rilis untuk versi lainnya
set VERSION=1.16.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"
Windows ARM64 (PowerShell)

Untuk menginstal Toolbox sebagai biner di Windows ARM64 (PowerShell):

# lihat halaman rilis untuk versi lainnya
$VERSION = "1.16.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
Image container Anda juga dapat menginstal Toolbox sebagai container:
# see releases page for other versions
export VERSION=1.16.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew

Untuk menginstal Toolbox menggunakan Homebrew di macOS atau Linux:

brew install mcp-toolbox
Kompilasi dari sumber

Untuk menginstal dari sumber, pastikan Anda memiliki versi terbaru Go yang terinstal, lalu jalankan perintah berikut:

go install github.com/googleapis/mcp-toolbox@v1.16.0
Gemini CLI Lihat [ekstensi Gemini CLI](https://geminicli.com/extensions/) untuk menginstal alat siap pakai bagi database tertentu seperti AlloyDB, BigQuery, dan Cloud SQL langsung ke 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

Berinteraksilah dengan alat kustom Anda menggunakan bahasa alami melalui Gemini CLI.

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

Jalankan Toolbox

Konfigurasikan tools.yaml untuk menentukan alat Anda, lalu jalankan toolbox untuk memulai server:

Biner

Untuk menjalankan Toolbox dari biner:

./toolbox --config "tools.yaml"

ⓘ Catatan
Toolbox mengaktifkan pemuatan ulang dinamis secara default. Untuk menonaktifkannya, gunakan flag --disable-reload.

Image container

Untuk menjalankan server setelah mengambil image 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"

ⓘ Catatan
Flag -v memasang tools.yaml lokal Anda ke dalam container, sedangkan -p memetakan port container 5000 ke port 5000 pada host Anda.

Sumber

Untuk menjalankan server langsung dari sumber, buka direktori root proyek lalu jalankan:

go run .

ⓘ Catatan
Perintah ini menjalankan proyek dari sumber dan lebih sesuai untuk pengembangan serta pengujian. Perintah ini tidak mengompilasi biner ke dalam $GOPATH Anda. Jika ingin mengompilasi biner, lihat Dokumentasi Developer.

Homebrew

Jika Anda menginstal Toolbox menggunakan Homebrew, biner toolbox tersedia di jalur sistem Anda. Anda dapat memulai server dengan perintah yang sama:

toolbox --config "tools.yaml"
NPM

Untuk menjalankan Toolbox secara langsung tanpa mengunduh biner secara manual (memerlukan Node.js):

npx @toolbox-sdk/server --config tools.yaml
Gemini CLI Setelah menginstal [ekstensi Gemini CLI](https://geminicli.com/extensions/), alat bawaan akan tersedia saat digunakan.
# Run Gemini CLI
gemini

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

Anda dapat menggunakan toolbox help untuk melihat daftar lengkap flag! Untuk menghentikan server, kirim sinyal penghentian (ctrl+c di sebagian besar platform).

Untuk dokumentasi lebih terperinci tentang penerapan di berbagai lingkungan, lihat sumber daya di bagian Deploy Toolbox


Menghubungkan ke Toolbox

Setelah server Toolbox aktif dan berjalan, Anda dapat memuat alat ke klien atau aplikasi yang kompatibel dengan MCP.

Klien MCP

Tambahkan konfigurasi berikut ke konfigurasi klien MCP Anda:

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

Jika Anda ingin terhubung ke toolset tertentu, ganti url dengan "http://127.0.0.1:5000/mcp/{toolset_name}".

SDK Toolbox: Integrasikan dengan Aplikasi Anda

SDK Klien Toolbox menyediakan komponen dasar yang mudah digunakan dan fitur lanjutan untuk menghubungkan aplikasi kustom Anda ke server MCP Toolbox. Berikut daftar SDK Klien untuk menggunakan berbagai framework:

Python (Github)
Core
  1. Instal SDK Toolbox Core:

    pip install toolbox-core
    
  2. Muat alat:

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

Untuk petunjuk lebih terperinci tentang penggunaan SDK Toolbox Core, lihat README proyek.

LangChain / LangGraph
  1. Instal SDK Toolbox LangChain:

    pip install toolbox-langchain
    
  2. Muat alat:

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

    Untuk petunjuk lebih terperinci tentang penggunaan SDK Toolbox LangChain, lihat README proyek.

LlamaIndex
  1. Instal SDK Toolbox Llamaindex:

    pip install toolbox-llamaindex
    
  2. Muat alat:

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

    Untuk petunjuk lebih terperinci tentang penggunaan SDK Toolbox Llamaindex, lihat README proyek.

Javascript/Typescript (Github)
Core
  1. Instal SDK Toolbox Core:

    npm install @toolbox-sdk/core
    
  2. Muat alat:

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

    Untuk petunjuk lebih terperinci tentang penggunaan SDK Toolbox Core, lihat README proyek.

LangChain / LangGraph
  1. Instal SDK Toolbox Core:

    npm install @toolbox-sdk/core
    
  2. Muat alat:

    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. Instal SDK Toolbox Core:

    npm install @toolbox-sdk/core
    
  2. Muat alat:

    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. Instal SDK Toolbox ADK:

    npm install @toolbox-sdk/adk
    
  2. Muat alat:

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

    Untuk petunjuk lebih terperinci tentang penggunaan SDK Toolbox ADK, lihat README proyek.

Go (Github)
Core
  1. Instal SDK Toolbox Go:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

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

    Untuk petunjuk lebih terperinci tentang penggunaan SDK Toolbox Go, lihat README proyek.

LangChain Go
  1. Instal SDK Toolbox Go:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    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. Instal SDK Toolbox Go:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    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. Instal SDK Toolbox Go:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    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. Instal SDK Toolbox Go:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    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. Instal SDK Toolbox Go:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

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

    Untuk petunjuk lebih terperinci tentang penggunaan SDK Toolbox Go, lihat README proyek.


Fitur Tambahan

Menguji alat dengan UI Toolbox

Untuk meluncurkan UI interaktif Toolbox, gunakan flag --ui. Ini memungkinkan Anda menguji alat dan toolset dengan fitur seperti parameter yang diotorisasi. Untuk mempelajari lebih lanjut, kunjungi UI Toolbox.

./toolbox --ui

Telemetri

Toolbox mengirimkan trace dan metrik melalui OpenTelemetry. Gunakan --telemetry-otlp=<endpoint> untuk mengekspor ke backend apa pun yang kompatibel dengan OTLP, seperti Google Cloud Monitoring, Agnost AI, atau lainnya. Lihat dokumentasi telemetri untuk detailnya.

Membuat Agent Skills

Perintah skills-generate memungkinkan Anda mengonversi toolset menjadi Agent Skill yang kompatibel dengan spesifikasi Agent Skill. Fitur ini berguna untuk mendistribusikan alat sebagai paket skill portabel.

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

Setelah dibuat, Anda dapat menginstal skill tersebut ke Gemini CLI:

gemini skills install ./skills/my-skill

Untuk detail selengkapnya, lihat panduan Membuat Skills. Untuk menyajikan skill yang sudah Anda miliki melalui MCP, lihat Menyajikan Skills melalui MCP.

Repositori ini juga menyertakan Agent Skills siap pakai (misalnya, alur kerja pemelihara). Lihat skills/ untuk katalog dan petunjuk instalasi.


Pembuatan Versi

MCP Toolbox for Databases mengikuti Semantic Versioning.

API Publik mencakup Toolbox Server (CLI, manifes konfigurasi, dan toolset bawaan) serta SDK Klien.

  • Versi mayor dinaikkan untuk perubahan yang tidak kompatibel, seperti perubahan CLI atau manifes yang tidak kompatibel.
  • Versi minor dinaikkan untuk fitur baru, termasuk modifikasi pada toolset bawaan atau fitur beta.
  • Versi patch dinaikkan untuk perbaikan bug yang kompatibel dengan versi sebelumnya.

Untuk detail selengkapnya, termasuk Kebijakan Penandaan Container, lihat Kebijakan Pembuatan Versi Lengkap.


Berkontribusi

Kontribusi sangat kami harapkan. Silakan lihat panduan CONTRIBUTING untuk memulai.

Untuk detail teknis tentang menyiapkan lingkungan untuk mengembangkan Toolbox, lihat panduan DEVELOPER.

Harap diperhatikan bahwa proyek ini dirilis dengan Kode Etik Kontributor. Dengan berpartisipasi dalam proyek ini, Anda setuju untuk mematuhi ketentuannya. Lihat Kode Etik Kontributor untuk informasi selengkapnya.


Komunitas

Bergabunglah dengan komunitas Discord kami untuk terhubung dengan para pengembang!